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 阅读(439)
评论(0) 编辑 收藏 所属分类:
达内学习总结