Linux常用命令:文件与目录
目录与路径
cd:切换目录
例如:cd ~willhua,则回到用户willhua的主文件夹
cd ~或者cd,则表示回到自己的的主文件夹
cd -,则表示回到上个目录
pwd:显示目前所在目录
参数:
- -p,显示当前路径,而非使用连接路径
mkdir:新建新目录
参数:
- -m:直接配置文件的权限,而不管默认权限umask,比如mkdir -m 711 test1,则test1的权限为711
- -p:帮助你直接将所需要的目录递归创建起来,比如mkdir -p test1/test2/test3,则系统将递归创建test1,test2,test3
rmdir:删除空目录
参数:
- -p:连同上层的空目录一起删除,这里的空目录的意思是:目录只含有删除路径中的文件夹而不能含有其他文件或者文件夹
例如:rmdir -p test1/test2/test3,若该文件夹链中含有其他文件则会删除失败
文件与目录管理
ls:查看文件目录
参数:
- -a:列出全部文件,连同隐含文件
- -d:仅列出文件本身,而不是列出目录内的文件,和pwd差不多
- -l:列出长数据串,包含文件的的属性与权限等数据,大部分版本中ll即相当于ls -l
cp:复制文件,cp 参数 源文件 目标文件
参数:
- -a:相当于-pdr
- -i:若目标文件存在时,会询问是否覆盖操作
- -r:递归复制,用于目录的复制
例如:cp -r /temp/test /temp/test2,则表示吧test目录递归复制到test2中
cp -r /temp/test test.txt /etc/test3 /temp/test2,则把test,test.txt,test3都复制到test2中
rm:移除文件或目录
参数:
- -f:强制删除,忽略不存在的文件,不出现警告信息
- -i:会询问是否删除
- -r:递归删除文件夹
mv:移动文件或目录,或更名
参数:
- -f:如果目标文件已存在,则直接覆盖而不询问
- -i:会询问是否覆盖
- -u:若目标文件已经存在,则只有源文件比较新才会更新
例如:mv test test2,若test2存在,则把test移动到test2中,若test2不存在,则相当于把test重命名为test2
文件内容查阅
cat:从第一行开始显示文件内容
参数:
- -A:列出一些特殊字符,而不是空白而已
- -n:打印出行数,且包括空白行,而-b则不包含空白行
例如:cat -An /etc/my.txt,则表示从第一行开始显示my.txt文件,且将打印特殊字符,显示行号
tac:从最后一行开始显示文件
nl:显示文件内容,并自动加上行号
参数:
- -b a:即使是空行也列出行号
- -b t:不列出空行的行号,默认值
- -n ln:行号在屏幕的最左方显示
- -n rz:行号在字段的最右边显示,且加0补齐行号位数
- -w n:行号位数,n表示位数
例如:nl -b a -n rz -w 5 my.txt,表示以5位宽度的行号在字段右边显示行号,包括空白行
less:将文件一页一页的显示在屏幕上
操作:
- 空格键:向下翻动一页
- PageDown:同空格
- PageUp:向上翻动一页
- ?字符串:向上查询字符串
- /字符串:向下查询字符串
- q:退出
- n/N:通用的继续查询
head:只显示前面几行
例如:head -n 20 my.txt,则只显示my.txt前面20行;head -n -30 my.txt,则只显示倒数30行之前的数据;
tail:只显示后面几行
例如:tail -n 20 my.txt,则只显示my.txt后面20行;tail-n -30 my.txt,则只显示30行以后的数据;
od:显示非文本文件
参数:
-t TYPE,TYPE的可选参数有:
- a:利用默认的字符来输出
- c:使用ASCII来输出
- d:利用十进制来输出
- x:利用十六进制来输出
例如:od -t c /usr/bin/passwd,则表示将passwd以ASCII的形式显示
touch:修改文件时间或者创建新的文件
例如:touch newfile,若newfile不存在,则表示创建一个名叫newfile的文件;若newfile存在,则把newfile的mtime和atime修改为当前时间
umask:新建文件/目录时,其对应默认权限应该减去的权限值
例如:对于新建目录,默认的权限为drwxrwxrwx,如果执行:umask 022,那么默认的权限则将变为drwxr-xr-x
chattr:设置文件的隐藏属性
参数:
- +:增加一个特殊参数,其他的不变
- -:删掉一个特殊参数,其他不变
- =:仅有后面接的参数
- a:设置a属性后,这个文件只能增加数据,不能改动或者删除,只有root才能设置这个属性
- i:让文件不能被删除、改名,设置连接也无法写入或者添加数据,只有root才能设置此属性
例如:chattr +i attrtest,则attrtest文件将不能被删除、改名,设置连接也无法写入或者添加数据
file:查看文件类型
例如:file /usr/bin/passwd,则会显示出passwd这个文件是属于ASCII或者这是data或者是binary文件,有没有使用到动态函数库等信息
locate:查找文件
参数:
- -i:忽略大小写差异
- -r:后面可接正则表达式的显示方式
例如:locate passwd,则将查找所有与passwd相关的文件名,passwd表示的是部分名称。但由于locate是基于数据库的,一般数据库每天更新一次,所以可能会出现查找不到的情况,那么可以使用updatedb命令来手动更新数据库
find:查找文件,较慢,但是属于硬盘查找,都能找到
例如:find / -name passwd,则将在系统中查找文件名为passwd的文件。其中/表示查找路径,即根目录