1.目录与路径
①特殊的目录:
. 代表此层目录
.. 代表上一层目录(根目录的.与..都是同一个目录)
- 代表前一个工作目录
~ 代表“目前用户身份”所在的主文件夹,如~liupeng911,代表liupeng911这个用户的主文件夹(liupeng911是账号名称)
②处理目录的命令
----pwd:显示目前所在的目录(显示当前路径)
-p参数:可以显示非食用连接(link)的路径
----mkdir:新建新目录
-m参数:强制给目录一个权限,如 mkdir -m 711 test1
-p参数:递归创建,如mkdir -p /home/test/test1
----rmdir:删除“空”目录
-p参数:连同上层的空的目录一起删除
如果需要将目录下的东西都删除:rm -r 风险较大,谨慎删除。
③关于执行文件路径的变量:$PATH(环境变量)
echo $PATH 可以查询哪些目录被定义(目录与目录用:分割)
----如root用户与普通用户的$PATH都存在/bin目录,所以用任何用户都可以执行ls命令
----如普通用户没有/sbin目录,则无法直接执行ifconfig命令,但是可以通过绝对路径执行:/sbin/ifconfig eth0
如果移动了$PATH中的目录,则会无法执行某些命令
----如把/bin/ls移动到/root下,则直接运行ls会无法执行命令,只能通过绝对路径
mv /bin/ls /root
ls 会报错
/root/ls则可以执行
可以自定义$PATH:PATH="$PATH":/root(即把/root放到PATH中),下次可直接执行ls。。。。
注意:PATH是可以修改的。
本目录.最好不要放在PATH中。
2.文件与目录管理
①查看文件与目录:ls
-a:全部文件,包括隐藏文件.开头。
-l:列出长数据串,包含文件的属性与权限等数据。
-d:仅列出目录本身,而不是列出目录内的文件数据。
----每个目录在ls后都会显示.此层目录和..上层目录。
②复制、删除与移动 :cp、rm、mv
----cp:复制文件或者目录(且可以更名)
如:cp /var/log/wtmp . ---复制文件到当前目录,注意.
cp -u ~/.bashrc /tmp/bashrc
-a:把文件的所有特性一起复制过来(如权限),复制文件不加参数,特性可能不同。(如权限不够,强制加-a还是不行的)
-i :若目标文件已经存在,覆盖时就会先询问操作的进行。
-r:递归复制,用于目录的复制行为。(目录不能直接复制,需要加上-r)
-u:当目标文件与源文件有差异时才会复制,常用于备份的工作。
----rm:移除文件或者目录
如:rm -r /tmp/etc
-r :递归删除。
----mv:移动文件与目录或者更名
如:mv bashrc mvtest 移动
mv mvtest mvtest2 重命名
③取得文件名或者目录名(写程序时判断使用)
basename /etc/sysconfig/network 取得文件名,输出:network
direname /etc/sysconfig/network 取得目录名,输出:/etc/sysconfig/
3.文件内容的查阅
①查看文件的内容
----cat:由第一行开始显示文件的内容
-n:打印行号,空白行也有行号
----tac:从最后一行开始显示
----nl:显示的时候,顺便输出行号
----more:一页一页的显示文件内容
----less:与more相似,但是比more好的是,可以向前翻页
----head:只看头几行
-n number:-n跟着数字,代表显示几行。
----tail:只看结尾几行
----od:以二进制的方式读取文件内容
②修改文件时间或者创建新文件:touch
三个时间:mtime:内容更新的时间,如文件的内容被更新
ctime:状态更新的时间,如权限与属性被更改
atime:文件内如被取用的时间,如用cat命令去读取某个文件,就会更新atime时间
如:touch testtouch
则:如果touch后面跟着一个文件名,如果文件存在,则会把文件的三个时间更新为目前的时间;
如果文件不存在,则会创建一个新的空的文件;
4.文件的默认权限与隐藏权限
①文件的默认权限
----查看文件的默认权限:umask ,如输出:0022(权限看后三位)
umask -S ,如输出:u=rwx,g=rx,o=rx(比较022,也就是值为需要减掉的权限,2即-w)
一般用户创建文件时,默认没有x权限,即666
一般用户创建目录时,默认所有权限放开,x与进入目录有关,即777
那如上例子,umask的分数等于“该默认值需要减掉的权限”,
如果新建文件时:(-rw-rw-rw-)-(-----w--w-)==>-rw-r--r--(新建文件时的默认权限)
如果新建目录时:(drwxrwxrwx)-(d----w--w-)==>-drwxr-xr-x(新建目录时的默认权限)
----修改文件的默认权限:如umask 002 即可(需要细细品味)
②文件的隐藏属性
----chattr 设置文件的隐藏属性
+增加属性 -删除属性 =仅有后面的参数
[+-=]a 文件只能增加数据,不能删除也不能修改数据,root的权限
[+-=]i 文件不能删除、改名,也无法写入或者添加数据(无法改动,系统安全),root权限(设置后root也无法删除)
----leattr 显示文件的隐藏属性
③文件的特殊权限(--后补--)
5.命令与文件的查询
①脚本文件名的查询 which (查找PATH内所规范的目录)
如:which ifconfig ,可以输出: /sbin/ifconfig
但是如果su -liupeng911 用户,则无法查找,因为liupeng911用户的PATH无/sbin/
②文件名的查找:
----whereis:寻找 特定文件,即用普通用户输入:whereis ifconfig 也可以 查找到,因为系统中有这个文件,
只是不再普用户的PATH中。
----locate:利用数据库寻找数据(/var/lib/mlocate),较快,因为数据库不是实时更新,有时候存在查询不到的情况,
可以手动更新数据库,直接输入命令 updatedb即可。
----find:直接硬盘查找,需要花费大量时间,但是功能强大。
---find / -mtime 0,0代表目前时间,所以意思为从现在开始到24小时前,有改动过的文件都会被列出。
find / -mtime 3 ,3天前的24小时之内被更改过的文件。
---find /etc -newer /etc/passwd:寻找/etc下的文件,如果文件日期比/etc/passwd早就列出。
---find / -nouser 查找系统中不属于任何人的文件。