1、特殊目录
. 表示此层目录
.. 表示上层目录
- 表示前一个工作目录
~ 表示“当前用户身份”目录
~wang 表示wang用户的家目录
2、cd:切换目录命令
3、pwd:显示当前所在的目录
输入:[root@linux ~]# pwd [-p]
参数:
-p:显示出实际路径,而非食用连接路径。
输入:[root@linux ~]# cd /var/mail
输入:[root@linux ~]# pwd
显示:/var/mail
输入:[root@linux ~]# pwd -p
显示:/var/spool/mail #因为/var/mail是连接文件,连接到/var/spool/mail
4、mkdir:建立新目录
输入:[root@linux ~]# mkdir [-mp] 目录名
参数:
-m:设置文件的权限
-p:直接建立递归目录
输入:[root@linux ~]# cd /tmp
输入:[root@linux ~]# mkdir test
输入:[root@linux ~]# mkdir -p test1/test2/test3
输入:[root@linux ~]# mkdir -m 711 test2
5、rmdir:删除“空”目录
输入:[root@linux ~]# rmdir [-p] 目录名
参数:
-p:与上层“空”目录也一起删除
例子:
输入:[root@linux ~]# cd /tmp
输入:[root@linux ~]# mkdir test
输入:[root@linux ~]# mkdir -p test1/test2/test3
输入:[root@linux ~]# mkdir -m 711 test2
输入:[root@linux ~]# rmdir test
输入:[root@linux ~]# rmdir -p test1/test2/test3 (test1、test2、test3都会被删除)
如果目录不为空,也要删除的话,就必须使用:rm -rf test来强制删除了。
6、执行文件的路径
添加路径/root到环境变量PATH中:
[root@linux ~]# PATH="$PATH":/root
7、ls:查看文件和目录
[root@linux ~]# ls [-aAdfFhilRs] 目录名
[root@linux ~]# ls [--color={none,auto,always}] 目录名
[root@linux ~]# ls [--full-time] 目录名
参数:
-a:全部文件,与隐藏文件(开头为.)一起列出来;
-A:全部文件,与隐藏文件,但不包括.与..这两个目录,一起列出来;
-d:仅列出目录本身,而不是列出目录内的文件
-f:直接列出结果,而不进行排序(ls默认会以文件名排序)
-F:根据文件、目录等信息,附加数据结构,例如:
*:表示可执行文件;/:表示目录;=:表示套接字文件;|:表示FIFO文件。
-h:列出文件大小
-i:罗列出inode位置,而非列出文件属性;
-l:列出长数据串,包含文件的属性;
-n:列出UID与GID而非用户与用户组的名称
-r:将排序结果反向输出,例如:原文件名由小到大,反向则由大到小;
-R:与子目录内容一起列出来;
-S:按文件大小排序
-t:按时间排序
--color=never :不要按照文件属性用不同颜色显示;
--color=always :显示颜色;
--color=auto :让系统自行按照设置来判断是否使用颜色;
--full-time :以完整时间模式输出
--time={atime,ctime} :输出访问时间或改变权限属性的时间(ctime),而非内容更改时间
注:ls -l (它的简写等价形式为ll)
8、cp(复制文件或目录)
[root@linux ~]# cp [-adfilprsu] 源文件(source) 目标文件(destination)
[root@linux ~]# cp [options] source1 source2 ... directory
参数:
-a:相当于-pdr;
-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身;
-f:强制的意思,若有重复或其他疑问时,不会询问用户,而强制复制;
-i:若目标文件已经存在,则覆盖时会先询问是否真要执行操作;
-l:建立硬连接的连接文件,而非复制文件本身;
-p:与文件的属性一起复制,而非使用默认属性;
-r:递归持续复制,用于目录的复制操作;
-s:复制成符号连接文件,即“快捷方式”文件;
-u:若目标文件比源文件旧,更新目标文件
注:若源文件有两个以上,则随后一个目的文件一定是目录。
9、rm:删除文件或目录
[root@linux ~]# rm[-fir] 文件或目录
参数:
-f:就是force的意思,强制删除;
-i:交互模式,在删除前会询问用户是否操作;
-r:递归删除,常用在删除目录中
10、mv:移动文件与目录,或重命名
[root@linux ~]# mv[-fiv] source destination
[root@linux ~]# mv [options] source1 source2 .... directory
参数:
-f:强制的意思,若有重复或其他疑问时,不会询问用户,而强制复制;
-i:若目标文件已经存在,则覆盖时会先询问是否真要执行操作;
-u:若目标文件比源文件旧,更新目标文件
11、直接查看文件内容
1)cat
[root@linux~]# cat [-AEnTv]
参数:
-A:相当于 -vET的整合参数,可列出一些特殊字符;
-E:将结尾的换行符$显示出来;
-n:显示行号;
-T:将[tab]按键以^I显示出来;
-v:列出一些看不出来的特殊字符。
2)tac:反向显示
从最后一行到第一行的顺序显示文件内容
3)nl:显示时添加行号
[root@linux~]# nl [-bnw] 文件
参数:
-b:指定行号指定的方式:主要有两种:
-b a :表示不论是否为空行,也同样列出行号
-b t :如果有空行,空行不要列出行号
-n:列出行号表示的方法,主要有3种:
-n ln :行号在屏幕的最左方显示
-n rn :行号在字段的最右方显示,且不加0
-n rz :行号在字段的最右方显示,且加0
-w: 行号字段占用的位数
12、翻页查询
1)more(一页一页翻动)
more之后,可以用一下命令继续查看:
空格键:向下翻页;
enter:向下翻一行;
/字符串:向下搜索“字符串”;
:f:立刻显示文件名以及当前显示的行数;
q:离开more,不再显示文件内容
2)less
空格键:向下翻页;
[pagedown]:向下翻页;
[pageup]:向上翻页;
enter:向下翻一行;
/字符串:向下搜索“字符串”;
?字符串:向上搜索“字符串”;
n:重复前一个搜索(与/或?有关);
N:反向重复前一个搜索(与/或?有关);
q:离开more,不再显示文件内容
13、数据选取
1)head:取出前几行
[root@linux ~]# head [-n number] 文件
参数:
-n:后面接数字,表示几行的意思。
2)tail:取出后几行
[root@linux ~]# tail [-n number] 文件
参数:
-n:后面接数字,表示几行的意思。
注:若要取出文件~/.bashrc的第11-20行,怎么办?
A:[root@linux ~]# head -n 20 ~/.bashrc |tail -n 10
即先取出前20行,再从中取出后10行
14、od:读取非纯文本文件
纯文本文件是指:ASCII格式的文件
[root@linux ~]# od [-t TYPE] 文件
参数:
-t:后面可以接各种类型的输出,如:
a :使用默认的字符来输出
c :所使用ASCII字符来输出
d[size]:使用十进制来输出数据,每个整数占用size个字节
f[size]:使用浮点数值来输出数据,每个数占用size个字节
o[size]:使用八进制来输出数据,每个整数占用size个字节
x[size]:使用十六进制来输出数据,每个整数占用size个字节
15、每个linux下面都会记录3个主要的修改时间:
1)modification time(mtime):当该文件的内容数据更改时,就会更新这个时间
2)status time(ctime):当文件的“状态”,如权限与属性,更改时,就会更新这个时间
3)access time(atime):当读取文件内容时,就会更新这个读取时间。
16、touch:修改文件时间与建立文件
[root@linux ~]# touch [-acdmt] 文件
参数:
-a:仅修改access time
-c:仅修改时间,而不建立文件
-d:后面可以接日期,也可以使用--date==“日期或时间”
-m:修改mtime
-t:后面可以接时间,格式为[YYMMDDhhmm]
[root@linux ~]# touch testtouch #若testtouch存在,则更新它的3个时间;若不存在,则新建这个文件,内容为空
17、umask:文件和目录的默认权限
[root@linux ~]# umask
0022
[root@linux ~]# umask -S
u=rwx,g=rx,o=rx
第一种方式是数字方式:0022:第一数字0表示特殊权限的;第二个数字0表示减去0,即7-0=7,所以u=rwx;第三个数字2表示减去2,即7-2=5
,所以g=rx;第四个数字2表示减去2,即7-2=5,所以o=rx。
建立文件或目录时,默认情况下:
-建立文件:-rw-rw-rw-
-建立目录:drwdrwdrwx
而对于用户来说,默认情况下,访问权限要减去022:
-建立文件:(-rw-rw-rw-) - (-----w--w-) == -rw-r--r--
-建立目录: (drwdrwdrwx) - (d----w--w-) == drwxr-xr-x
例1:如果希望建立的文件能让同用户组的人可写,即编写出来的文件应为:-rw-rw-r--,则需要设置减去的权限为002:[root@linux ~]#
umask 002
例2:假设umask为003,使用该umask,建立的文件与目录权限是什么?
A:umask为003,所以去掉的属性为--------wx,因此:
文件:(-rw-rw-rw-) - (--------wx) == -rw-rw-r--
目录:(drwxrwxrwx) - (--------wx) == drwxrwxr--
18、chattr:设置文件隐藏属性
[root@linux~]# chattr [+-=][ASacdistu] 文件或目录名
参数:
+ :增加某个特殊参数,其他原本存在的参数不动
- :删除某个特殊参数,其他原本存在的参数不动
= :设置一定,且仅有后面接得参数
A :当设置了A属性时,这个文件或目录的访问时间atime将不能被修改,例如可避免手提电脑有磁盘I/O错误的情况发生
S :这个功能有点类似sync,就是将数据同步写入磁盘中,可以有效地避免数据流失
a :设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性
c :这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储
d :当执行dump(备份)程序的时候,设置d属性将可使该文件或目录具有转储功能
i :i的作用很大,它可以让一个文件不能被删除、改名、设置连接,也无法写入或新增数据,连root也没有办法
j :当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中,但是,当文件设置参数为data=journalled时,由于已
经设置了日志,所以这个属性无效
s :当文件设置了s参数时,它将会从这个硬盘空间完全删除
u :与s相反,当使用u来设置文件时,数据内容还存在于磁盘中
19、lsattr:显示文件的隐藏属性
[root@linux~]# lsattr [-aR] 文件或目录
参数:
-a:将隐藏文件的属性页显示出来
-R:连同子目录的数据也一起显示
20、文件的特殊权限
1)SUID(set user ID)
当s权限在user的x时,也就是类似-r-s--x--x,称为Set UID,简称为SUID,这个UID表示user的ID。
2)SGID(set group ID)
当s的权限时再用户组时,就是Set GID,简称为SGID。SGID可以用在两个方面:
-文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行那个该程序的时候,它的有效用户组将会变成该程序的用户组所有者。
-目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。
3)SBIT(strictly bit)
SBIT当前只针对目录有效,对文件没有效果。SBIT对目录的作用是:在具有SBIT的目录下,用户若在该目录下具有w及x权限,则当用户在该目
录下建立文件或目录时,只有文件拥有者与root才有权利删除。
4)SUID/SGID/SBIT权限设置
SUID:4
SGID:2
SBIT:1
组合数字放在权限数字的前面。如:
[root@linux~]# cd /tmp
[root@linux~]# touch test
[root@linux~]# chmod 4755 test;ls -l test
-rwsr-xr-x 1 root root 0 Jul 20 11:27 test
[root@linux~]# chmod 6755 test;ls -l test
-rwsr-sr-x 1 root root 0 Jul 20 11:27 test
[root@linux~]# chmod 1755 test;ls -l test
-rwxr-xr-t 1 root root 0 Jul 20 11:27 test
[root@linux~]# chmod 7666 test;ls -l test
-rwSrwSrwT 1 root root 0 Jul 20 11:27 test
注:S、T表示空,因为SUID表示拥有文件拥有者的权限,但现在文件拥有者也没有了w的权限,所以用户更不可能有了,所以为空。
21、file:文件类型
利用file命令可以知道文件的基本信息
[root@linux~]# file ~/.bashrc
22、搜索文件
1)which:寻找执行文件
[root@linux~]# which [-a] command
参数:
-a:将所有可找到的命令均列出,而不仅仅列出第一个找到的命令名称
2)whereis:寻找特定文件
[root@linux~]# whereis [-bmsu] 文件或目录名
参数:
-b:只找二进制文件
-m:只找在帮助文件manual路径下的文件
-s:只找源文件
-u:没有帮助文件的文件
3)locate
[root@linux~]# locate filename
4)find
[root@linux~]# find [PATH] [option]