随笔-159  评论-114  文章-7  trackbacks-0

touch命令

如果文件不存在,创建新文件。
文件存在,同时更新访问和修改时间。

注意文件的更新时间和访问时间不一样。

touch file1
vi file1

添加内容。

ls -lt 会看到该文件的最后修改时间。
过一些时候,执行more file参看一下该文件,也就是访问一下。
ls -lu会看到该文件最后访问的时间。

这是再touch file1,ls -lt和ls -lu会看到同样的时间。


做不了事(执行不了动作),你要检查几件事!

1.你是谁 (id命令)

openlab.tarena.ca% id
uid=25791 gid=103(tarena)

2.你在哪(pwd),你对某个文件的关系(owner group同组者 other)

3.你是否能在某目录里做事(读ls 写创建文件 执行cd),看看这个目录的权限
   
      在该目录下,执行 ls -ld,查看该目录
      注意:回上一级,执行ls -l lujl,是查看该目录下文件和子目录的权限。

ls -al lujl 可以查看隐藏文件。

ls -R 将该目录下所有文件夹递归展开

su - somebody 就是将环境变量也更换为somebody的,否则不更新,cd时回原来的用户的主目录。



一些基本命令。

mkdir -p dir6/dir7/dir8 可创建层级目录

cp -i beans apple 文件存在,会提示,-i作用

===============================
openlab.tarena.ca% cp -r dir3 dir4

注意:如果dir4不存在,那么就先建立dir4,在将dir3中内容拷贝过去,如果dir4存在,则是将整个dir3包括dir3本身,整个目录结构拷贝过去。

openlab.tarena.ca% ls
dir3   file1
openlab.tarena.ca% cp -r dir3 dir4
openlab.tarena.ca% ls -R
.:
dir3   dir4   file1

./dir3:
a.txt

./dir4:
a.txt
openlab.tarena.ca% cd dir4   
openlab.tarena.ca% rm *
openlab.tarena.ca% cd
openlab.tarena.ca% ls
dir3   dir4   file1
openlab.tarena.ca% cp -r dir3 dir4
openlab.tarena.ca% ls -R
.:
dir3   dir4   file1

./dir3:
a.txt

./dir4:
dir3

./dir4/dir3:
a.txt


mv 命令相当于给文件改名称

mv 源 目标

目标不存在,相当于给源改名称

目标存在,对于文件,覆盖
                    对于目录,移动整个目录结构到目标目录中。

openlab.tarena.ca% ls
dir3   file2
openlab.tarena.ca% mkdir dir4
openlab.tarena.ca% ls
dir3   dir4   file2
openlab.tarena.ca% mv dir3 dir4
openlab.tarena.ca% ls -R
.:
dir4   file2

./dir4:
dir3

./dir4/dir3:
a.txt

rm -r[i] directory_name(s)
rmdir只能删除空目录

题外话

      /tmp 每个系统根下都有一个临时文件夹,查看该目录权限,

      openlab.tarena.ca% cd /tmp
      openlab.tarena.ca% ls -ld
      total 64
      drwxrwxrwt   4 0        sys          753 11月 15 20:06 .
      openlab.tarena.ca% 

     看好了,那不是777,而是后面有个t,1777,它表示/tmp里,谁都能写,读,删。但是必须是该文件的owner。

     chmod 1777 dir



ln

两种链接,

硬连接和符号连接(软连接)

openlab.tarena.ca% ls -l
total 4
drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
-rw-r--r--   1 25791    tarena        13 11月 15 19:38 file2

兰色表示硬链接数,对于目录,那个数字表示该目录下文件和子目录数总和。

openlab.tarena.ca% cp file2 file2.bak
openlab.tarena.ca% ln file2 file2.ln
openlab.tarena.ca% ls -il
total 8
    858670 drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
    409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2
    409792 -rw-r--r--   1 25791    tarena        13 11月 15 20:23 file2.bak
    409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2.ln
openlab.tarena.ca%

注意硬链接后,被链接文件和链接文件的inode号,是相同的,他们是同一个inode,硬链接号加1。

=================================================
inode i节点 关键概念

   touch beans这个命令执行时,创建一个文件时到系统中申请一个i节点,如果申请不到,就不会创建成功。

  i节点保存这除文件名以外的关于这个文件的所有属性。大小,属主,属组,权限,数据块指针。

那么那个数据块(data block)指针,指向一个数据块。

一个目录也有inode,inode中数据块指针指向的数据块保存着该目录的文件名与inode的对应信息。

==================================================

软链接

ln -s beans beans.sln

openlab.tarena.ca% ls -il beans*
total 10
    409793 -rw-r--r--   1 25791    tarena         0 11月 15 20:52 beans
    409794 lrwxrwxrwx   1 25791    tarena         5 11月 15 20:53 beans.sln -> beans
openlab.tarena.ca%

注意,beans和beans.sln的inode号不同,说明是两个文件。那么beans.sln的大小是5,基本可以理解为保存着beans的名称,以便能够找到它。

这时,more beans.sln实际上 先找到beans.sln的inode-〉数据块-〉5个字母beans->more beans

系统中就有软链接的例子,

openlab.tarena.ca% cd /
openlab.tarena.ca% ls -l|grep bin
lrwxrwxrwx   1 0        root           9  5月 28  2002 bin -> ./usr/bin
drwxr-xr-x   2 0        sys         1024  5月 16  2004 sbin
openlab.tarena.ca%

可以看到 bin就是./usr/bin的软链接。



man name 查看命令
man -k function 查看函数    man -k setuid

空格
b back
f forward
q
/string search
n 查找一个

ls d??=ls dat
ls [a-f]b*

cd;ls

标准输出重定向
cal 5 2007>a.txt
cal 5 2007>>a.txt追加

ls -l /etc|more

cal 5 2007|tee cal.lst
tee是个3向头,既显示,又重定向到cal.lst文件中。

cal 5 2007|tee -a cal.lst
追加

cat /dev/null > ~/b.txt
清空文件,回收datablock

cat /etc/passwd | awk -F: '{print $1 "\t" $6}' \
|sort >~/userinfo

\是指要换行继续写命令
然后就是awk和sed有很强的文本处理能力。


tail -30 a.txt
head -30 a.txt
tail -f ServiceStartupLog.txt

more filename(s)操作和man一样!

openlab.tarena.ca% who am i
lujl       pts/2        11月 15 19:27   (219.236.137.165)

查看登陆用户

whoami显示有效用户。su后,会看到结果。

==========================================================

 VI

  底行模式 :/? 命令模式 i a o 输入模式(Esc退出)

kljh 上右下左

i插入
a后
o当前行下插入新行 大写O当前行上插入新行

vi file1

i

some words

Esc

:w!

直接输入vi

编辑到最后

Esc
:wq! file2

保存file2,并退出

不保存直接退
:q!

保存后直接退
:wq!
:x!
ZZ


命令模式下

G 最后一行
1G第一行,输入没有时间限制

当前屏幕

Shift +L 最下
Shift +H 嘴上
Shift +M中间

Ctrl D 滚下半屏
Ctrl U 滚上半屏
Ctrl F 滚下整屏
Ctrl B 滚上整屏

r 修改一个字母
cw 修改某个单词
cc 整行
C 替换光标到行尾

yw
yy
p
:1,8co6
:1,6m8

x
dw
dd
5dd
:5,10d

u UNDO

~
大小写
J 连接下一行
:set nu
:21=21G
/
?
n 继续查找
:r file2

:1,$/要替换/新串/g
g表示全部替换

:1,19/^/#/
表示1到19行开头加入#,注释掉


^表示行首,这也是为什么Shift +6回到当前行行首,(Shift+4行尾)

















posted on 2005-11-15 21:51 北国狼人的BloG 阅读(435) 评论(0)  编辑  收藏 所属分类: 达内学习总结

只有注册用户登录后才能发表评论。


网站导航: