cd pwd mkdir rmdir
pwd [-P] 显示当前的路径,而非使用连接(link)的路径
pwd 列出当前目录
mkdir [-mp] 目录名称
-m:配置文件案的权限,直接设置,不需要看默认权限。
-p:帮助你直接将所需要的目录(包含上层目录)递归创建起来。也即是创建多层目录
eg:mkdir -m 711 test2
rmdir [-p] 目录名称 删除”空“目录 -p:连同上层”空的“目录一同删除
rm -r 文件或者目录 删除文件或者目录
查看文件与目录:ls
ls [-aAdfFhilnrRst] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
参数说明:
-a:全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来(常用)
-A:列出全部的文件(连同隐藏文件,但不包括 . 与 .. 这两个目录)
-d:仅列出目录本身,而不是列出目录内的文件数据(常用)
-f:直接列出结果,而不进行排序(ls默认会以文件名排序)
-F:根据文件、目录等信息给予附加数据结构,例如:
*:代表可执行文件 /:代表目录 =:代表socket |:代表FIFO文件
-h:将文件容量以人类较为易读的方式(例如GB,KB等)列出来
-i:列出inode号码、inode的意义后面会介绍
-l:列出长数据传,包含文件的属性与权限等级数据(常用)
-n:列出UID与GID,而非用户与用户组的名称(UID与GID会在账号管理提到)
-r:将排序结果反向输出,例如:原本文件名由小到大,方向则为由大到小
-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S:以文件容量大小排序,而不是用文件名排序
-t:依时间排序,而不是用文件名
--color=never:不要依据文件特性给予颜色显示
--color=always:显示颜色
--color=auto:让系统自行依据设置来判断是否给予颜色
--full-time:以完整时间模式(包含年、月、日、时、分)输出
--time={atime,ctime}:输出访问时间或改变权限属性时间(ctime)
而非内容更改时间(modification time)
复制、删除与移动:cp,rm,mv
cp [-adfilprsu] 源文件 目标文件 默认的cp复制后的文件权限会根据命令操作者本身而变化
cp [options] source1 source2 source3 ... directory
参数
-a:相当于 -pdr的意思,至于pdr请参考后文(常用) 完全把文件的所有特性都复制过去,完全是一样的
-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身 如果不加-d参数 则会复制源文件
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件已经存在,在覆盖时会先询问操作的进行(常用)
-l:进行硬连接(hard link)的连接文件创建,而非复制文件本身 硬链接
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
-r:递归持续复制,用于目录的复制行为(常用)
-s:复制成为符号链接文件(symbolic link),即”快捷方式“文件 软连接
-u:若destination比source旧时,才更新destination
rm [-fir] 文件或目录
参数:
-f:就是force的意思,忽略不存在的文件,不会出现警告信息
-i:互动模式,在删除前会询问用户是否操作
-r:递归删除。删除该目录及目录下的所有
mv [-fiu] source destination 还有一个很大的用途用来更改文件名!!!!!
mv [options] source1 source2 source3 .... directory
参数:
-f:强制,如果目标文件已经存在,不会询问而直接覆盖
-i:如果目标文件已经存在,就会询问是否覆盖
-u:如果目标文件已经存在,且source比较新,才会更新(同cp -u)
取得路径的文件名与目录名称
basename 文件名 返回一个文件名
dirname 目录名 返回一个目录名
文件内容查阅
cat:由第一行开始显示文件内容
tac:从最后一行开始显示,可以看出tac是cat的倒写形式
nl:显示的时候顺便输出行号
more:一页一页的显示文件内容
less:与more类似,但是比more更好的是,它可以往前翻页!
head:只看头几行
tail:只看结尾几行
od:以二进制方式读取文件内容
cat [-AbEnTv] 文件名
参数:
-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已
-b:列出行号,仅针对非空白行做行号显示,空白行不标行号
-E:将结尾的断行符$显示出来
-n:打印出行号,连同空白行也会有行号,与-b的参数不同
-T:将[Tab]按键以^I显示出来
-v:列出一些看不出来的特殊字符
more
空格:向下翻一页
Enter:向下滚动一行
/字符串:在显示的内容中,向下查询“字符串”这个关键字
:f:立刻显示出文件名以及目前显示的行数
q:推出
b或者[ctrl]-b:往回翻页,不过这操作只对文件有用,对管道无用
less
空格:向下翻页
[PageDown]:向下翻动一页
[PageUp]:向上翻动一页
/字符串:向下查询“字符串”的功能
?字符串:向上查询“字符串”的功能
n:重复前一个查询(与/和?有关)
N:反向重复前一个查询(同上)
q:退出
head
参数
-n:后面接数字,代表显示几行的意思 默认显示前10行,如果要显示前20行,head -n 20 文件名
head -n -100 文件名 除了最后100行内容不显示,其余都显示出来
tail
参数
-n:后面接数字表示显示几行,默认是显示10行
-f:表示持续监测后面所接的内容,要等到输出[ctrl-c]以后才结束检测
tail -n 20 文件名 列出最后20行
tail -n +100 文件名 显示100行以后的数据
修改文件时间或创建新文件:touch
modification time(mtime)文件内容被更改了会更新这个时间
status time(ctime) 权限与属性被更改了会更新这个时间
access time(atime)文件内容被读取时会更新这个时间
ls -l 显示的时间默认是mtime
touch [-acdmt] 文件
参数
-a:仅修改访问时间
-c:仅修改文件的时间,若该文件不存在则不创建新文件
-d:后面可以接欲修改的日期而不用目前的日期,也可以使用--date=“日期或时间”
-m:仅修改mtime
-t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]
命令与文件的查询:
1. 脚本文件名查找
which [-a] command 用来寻找可执行文件
-a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的
2. 文件名查找
whereis [-bmsu] 文件名或者目录
-b:只查找二进制文件
-m:只找说明文件manual下的文件
-s:只找source文件
-u:查找不在上述三个选项中的其他特殊文件
注:以后查找某些命令找不到时,使用文件查找命令试试
locate [-ir] keyword 根据/var/lib/nlocate内的数据库记载,得出结果
-i:忽略大小写
-r:后面可接正则表达式的显示方式
注:locate更加简单,即使使用部分文件名也可以得到结果。但locate是在自己的数据库里面查找的,当你新建文件以后查找该文件是找不到的,必须手动更新以下数据库,使用updatedb命令。
文件的mtime,ctime,atime有什么区别:
文件的 Access time,atime 是在读取文件或者执行文件时更改的。
文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。
文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。
find [PATH] [option] [action]
option:有-atime,-ctime,-mtime。
-mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件
-mtime +n:列出在n天之前(不含n天本身)被更改过的文件
-mtime -n:列出在n天之内(含n天本身)被更改过的文件
-newer file:file为另一个存在的文件,列出比file还要新的文件名
权限与命令间的关系(重要):
-
用户能进入某目录成为“可工作目录”的基本权限是什么
可使用的命令:cd等切换工作目录的命令
目录所需权限:至少要由x的权限
额外需求:如果用户想用ls查阅文件名,还需要对此目录的r权限
-
用户在某个目录内读取文件的基本权限是什么
可使用的命令:例如cat,more,less
目录所需权限:用户对这个目录至少有x权限
文件所需权限:用户对文件只要需要由r权限
-
让用户可以修改一个文件的基本权限是什么
可使用的命令:vi nano
目录所需权限:所在目录要有x权限
文件所需权限:用户对该文件要有r,w权限
-
让用户可以创建一个文件的基本权限是什么
目录所需权限:用户在该目录要具有w,x的权限,重点在w
-
让用户进入某目录并执行该目录下某个命令的基本权限
目录所需权限:用户在该目录至少有x
文件所需权限:用户在该文件至少由x