1. 文件/目录的存取权限
ls –l/etc #长格式显示所有内容(相当于ll命令)
★ 补充此选项的第一列内容(存取权限)
前十位表示文件/目录的:
u 第1位若为“d”表示目录,“-”表示普通文件,“b”表示设备(块文件);
u 2~4位表示文件所有者的权限;5~7位表示群组内其他成员的权限;8~10位表示组外其他所有人的权限;
u 三位为一组,顺序分别是rwx,其中r表示读,w表示写,x表示执行;
u 2~10位若为“-”表示0,若为字母表示1,如“-rw-rw-rw-”表示此为文件,且存取权限为666;
【注意】Linux系统中规定了4种不同的用户:文件所有者、组群、组外其他用户和超级用户root,一般情况下,root对所有的文件和目录拥有所有权限。
【例1】-rwxrw-r--:表示这是一个文件,其读写权限为764,文件的所有者具有读、写和执行的权限;组群内其他人具有读和写权限,没有执行权限;组外其他人只有读权限,没有写和执行的权限。
【例2】若要求某文件的读写权限为文件所有者具有所有权限,其他所有人只有读和执行权限,则该文件的为多少?-rwxr-xr-x,111 101 101
答:755
2. 管道
管道:将前一条命令的输出(结果)作为后一条命令的输入,“|”
① ls /etc|grepab
查看/etc目录下的内容,并筛选出包含“ab”字符串的内容
② ls /etc和ls /etc|more的输出做对别
3. touch:创建空文件,更改文件的时间
touch 【-acfm】【-d<日期时间>】【-r<参考文件或目录>】【-t<日期时间>】【文件】
u -c:假设目的文件不存在,不创建新文件
u -f:不使用,与UNIX兼容而保留
u -r:使用参考档的时间
u -t:设定文件的修改时间,日期格式为“MMDDHHmm”
① touch file file1 file2 #创建文件“file”、“file1”和“file2”
② stat file #查看file的修改时间,其中access表示访问时间,modify表示修改时间,change表示状态改变时间。
③ touch –t 10010900 file #把file文件的时间修改为10月1日9点
touch –t 10012600 file #错误!时间格式不对,没有“26”时
④ stat file #再查看file的修改时间
⑤ touch –c –t 10100100 file #把ff文件的修改时间修改为10月10日1点,但若file文件不存在,则不创建此文件
⑥ touch –r file1 file #把file的时间改为file1的时间(以file1为参考)
statfile file1
4. mkdir:创建目录
mkdir 【选项】【目录名】
u -p:后跟路径名,若路径中某些目录不存在,则系统将自动创建这些目录,即一次可以创建多个目录
u -m:对新建目录设置存取权限,不加此选项时,默认权限为755
① mkdir a
② mkdir a/b
③ mkdir a/b/c/d #错误!
mkdir –p a/b/c/d
④ ls –dl a #使用“-d”参数,查看目录a本身的详细信息;
★ 对比ls –l a # ls –l a查看目录a里面的内容,而ls –dl a查看的是目录a本身;
mkdir –m 777 b #创建目录b,权限为777;
ls –dl b #查看目录b的详细信息;
5. rmdir:删除空目录
u -p:递归删除。当子目录删除后其父目录为空时,也一同被删除;
① rmdir a/b/c #错误!
rmdira/b/c/d
② mkdir a/b/c/d
③ rmdir –p a/b/c/d
⑤ mkdir –p a/b/c/d
⑥ rmdir /home/rjxy/a/b/c/d #绝对路径删除
6. rm:删除文件和目录,但对于链接文件,只是断开连接,原文件不变
u -f:忽略不存在的文件,即强制删除
u -r:删除全部目录和子目录
u -i:交互式删除
① rm a/aaa #删除文件
② rm –r b/a #删除目录
③ mkdir –p a/b/c/d/e/f/g
rm-ri a/b/c/d #交互式删除
rm-rf a/b #非交互式,不提示,直接删除
7. cp:复制文件和目录
如果同时指定两个以上的文件或目录,且最后的目的地是一个已存在的目录,则此命令会把前面指定的所有文件或目录复制到该目录中。
u -l:不做拷贝,只是链接文件
★ 若用cp –l a/aaa b,则在b目录中的文件aaa仍是a/aaa,并非在b中生成了一个名为“aaa”的文件,即此时b中的aaa只是a/aaa的一个链接文件。若此时运行“cp a/aaa b”则会提示“a/aaa和b/aaa是同一个文件”
u -r:若源文件是目录,则递归复制该目录下所有子目录和文件
① mkdir a b
touch a/aaa
cp –l a/aaa b #复制链接
cp a/aaa b #再次复制时,提示两者是同一个文件
③ cp a/aaa b/ddd #把a/aaa复制到b目录下,并改名为ddd
④ mkdir –p a/b/c/d/e
mkdir w
cp a b #略过目录
cp –r a b #复制a到b
cp –r a/b w #把a下的b目录复制到w目录
⑤ cp /etc/*.conf a #把/etc目录下所有后缀为conf的文件复制到a目录
8. mv:文件和目录改名,移动文件和目录路径
u -i:交互式,覆盖已存在的文件时会提示
u -f:禁止交互式,强制覆盖
① mv –i a/asound.conf b #把asound.conf移至b中,a中不再有此文件
② mv –i b/asound.conf a/a.c #把asound.conf移至a中并改名为a.c
③ mv –i a/b b #把目录a/b移至b中
④ mv –i a/b b/x #把目录a/b移至b中并改名为x
9. more分页显示文本文件
u -num:一次显示的行数
u -s:多个空白行替换为一个空白行
u +num:从第num行开始显示
① more -s file2
② more -20 +10 file2 #从第10行开始,每次显示20行
10. less回卷显示文本文件
▲ 作用和more类似,但允许往回卷动,按“q”退出
① less file2 #滚动到底后可回滚
11. cat显示文本
u -n:由1开始对所有行编号
u -b:空白行不编号
u -s:两个以上的空白行替换为1行显示
用gedit命令创建file和file1file内容为 11 12 13 file1内容为 a b c d
① cat –n file1
② cat –b file1
③ cat –s file1
④ cat -ns file1
cat -bs file1
⑤ cat –n file1 > file2
把file1的内容加上行号输入文件file2中,文件file2不存在,将自动创建;
cat –n file file2
先显示file,再显示file2,一起编号
⑥ cat –b file >>file2
file文件加行号(空白行不加)后,附加到file2的末尾
★ 注意“>”和“>>”的区别
12. head显示指定文件前若干行
u -n:显示的行数,默认是10行
u -v:显示文件名
u -q:不显示文件名
① head -8 file2 #显示文件file2的前8行
② head -v -10 file2
head -10 -v file2 #//对比两个命令,一对一错
13. tail查看文件根数据
u -n:从距文件尾n行处开始,默认为10行
① tail -6 file1
② tail和head并用
head -10 file1 | tail-6 # “head -10 file1”表示file1文件的前10行,“tail -6”表示在上一步的基础上读最后6行,最后结果是读取源文件的5~10行