目录
目录与路径
相对路径与绝对路径
相对路径:以当前目录为基准,. 表示当前路径;.. 表示当前目录的上一个目录
绝对路径:所有完整的路径
目录的相关操作
目录的切换与查看:cd,pwd
切换目录:cd (change directory)
显示用户当前所在目录:pwd
cd ~zhangsan/ 切换到zhangsan的家目录
cd ~/zhangsan 切换到家目录下面的zhangsan文件夹
注意:在Linux中~表示的是用户的家目录,无论在那个目录下只要使用cd命令都可以直接切换到用户的家目录中
退回到上一次所在目录:cd -
目录的创建与删除:mkdir,rmdir
创建目录:mkdir test
在父文件夹不存在的情况下,创建子文件夹:mkdir –p test1/xx
创建多个子文件夹:mkdir -p test1/{xx,yy,zz}
删除目录:rmdir test
强制递归删除:rm –rf test1/ (r表示递归,f表示强制;这个命令谨慎使用!!!)
文件路径的变量
在Linux中每一个命令实际就是存放在某个文件夹中的一个程序,但是我们在执行命令的时候并没有将命令的完整路径写出来;这是因为系统中路径变量的缘故;在我们执行一条命令的时候,系统会从默认设定的一些目录中来查找需要执行的命令,如果没有找到则会提示没有找到该命令;所以我们在执行某条命令的时候需要指明命令的路径,或者将该命令加入到系统的内置命令中去
执行文件路径的变量:$PATH
查看系统的内置路径:echo $PATH
文件与目录管理
查看文件与目录:ls
ls命令:list的意思,列出目录中的内容
ls –l :以长模式列出文件或文件夹的详细信息
ls -1:将内容逐行显示出来
ls –a:显示所有的文件,包括隐藏文件
ls –s:附带显示文件的大小
ls –sh:h显示文件大小的单位
ls –ld:d查看文件夹本身的信息
ls –R /:递归显示文件夹中所有内容 (容易消耗资源)
ls –d :查看文件夹信息
复制文件与目录:cp 源地址 目标地址
例:cp /path1/xx /path2/yy
注:如果说yy是一个文件夹的话,就将xx拷贝到yy这个文件夹下;如果yy不存在或者yy不是文件夹,则表示将xx拷贝到path2文件夹下并将文件重命名为yy
例:cp -rf /etc/ /mnt
注:强制递归将一个目录复制到另外一个目录中;r表示递归,f表示强制;默认情况下cp是不能够直接复制文件夹的
例:cp /etc/services /mnt –p
注:p参数是带有属性信息的复制,会把文件的创建时间等信息复制过去;默认情况下是不复制属性信息
例:cp –u /etc/services /mnt/services
注:u参数是带有版本检测的复制,根据时间来判断,如果前面的文件较新则覆盖,否则不覆盖
删除文件与目录:rm
rm services
注:rm –rf /* 强制删除;这个命令很强大,几乎没有不能删除的,谨慎使用!!!
剪切文件与目录:mv 源地址 目标地址
例:mv /path1/xx /path2/yy
注:如果说yy是一个文件夹的话,就将xx剪切到yy这个文件夹下;如果yy不存在或者yy不是文件夹,则表示将xx剪切到path2文件夹下并将文件重命名为yy
文件内容查阅
查看文本文件的内容:cat tac head nl tail more less od等
cat /etc/hosts
注:默认显示最后一屏,适合查看一些小文件;-n参数表示加上行号
tac /etc/hosts
注:默认从最后一条开始显示
nl /etc/hosts
注:默认加上行号,相当于cat –n
more /etc/services
注:回车逐行显示,空格逐屏显示;不过只能往后翻,不能往前翻
less /etc/services
注:回车逐行显示,空格逐屏显示;PageUp往前翻,PageDown往后翻;Home首页,End末尾
head /etc/services (默认查看前十行)
head –n 5 /etc/services (查看前五行,或者直接写成-5)
tail /etc/services (默认查看末尾10行)
tail -5 /etc/services (查看尾五行,或者直接写成-5)
tail –f /var/log/messages
注:-f属性表示查看文件并不退出,一直处于监测状态;可以用此功能来监测日志文件;tail –f就等于tailf
非纯文本文件:od, strings
od –t c /bin/ls 或者 strings /bin/ls
od -t c /bin/ls
strings /bin/ls
修改文件时间或创建新文件:touch
创建文件:touch xx
注:如果touch后面跟的这个文件不存在就会创建出一个新的文件;如果这个文件存在,就会将该文件的创建时间或修改时间更改为当前
设置指定的时间戳:touch –t 201812251428 xx
文件与目录的默认权限与隐藏权限
文件默认权限:umask
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情,umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反;我们可以把umask称为权限过滤符,在我们创建文件夹或者文件的时候本身是满权限的,可是经过umas过滤之后就不再是满权限;
举例:
修改umask值:umask 333
注:umask值设置为333之后,表示w和x的权限都要过滤;
umask -S
注:使用umask –S表示要保留的权限,即均保留只读权限,其余的都过滤
文件隐藏权限:chattr,lsattr
前面我们了解了可以用chmod来更改一个文件或者一个文件夹的权限,实际上我们还可以修改一些隐藏的权限;
增加隐藏权限:chattr
例:chattr +a xx/
注:a参数是给文件夹设置只能添加不能删除的隐藏权限;
例:chattr +i aa/
注:i参数是给文件夹添加不能添加也不能删除的隐藏权限;
查看隐藏权限:lsattr
删除隐藏权限
chattr -a xx/
chattr -i aa/
注:更多的使用方法请查看帮助信息
文件特殊权限:SUID、SGID、SBIT
SUID:特殊权限表示为s,作用在可执行文件的文件所有者owner上面,该权限表示任何拥有执行该文件权限的人,在执行的过程时都临时拥有该文件所属人的权限
例:chmod u+s xx
注:当一个文件在其所有者位置上加上s位权限之后,表示系统中其他用户在使用这个文件的时候将具有该文件所有者的权限
例如:passwd
注:Linux中通过passwd命令来更改用户的密码信息,虽然这个命令的所有者为root,但是由于加上了s位,普通用户就可以获得所有者(root)的权限,进而通过passwd命令来修改自己的密码
说明:上图中的 ls -l `which passwd`命令
在Linux中当一个命令嵌套在其他命令中的时候,是不会执行的;如果想要执行,需要加上反引号,或者用$();
SGID:当对一个目录作用了SGID权限之后,则该目录下创建的所有文件或者目录所有的权限都继承该组的权限
例:chmod g+s .
注:当在所在组上增加了s位,之后在文件夹中的操作均会继承所在组的权限
SBIT:当一个命令的权限其他人位置上存在一个t,则表示该目录下的文件除了root用户和所有者之外,其他人即使有权限,也无法删除
例:chmod o+t test
注:SBIT只能作用在文件夹的其他人组
查看文件类型:file
例:file /etc/services
命令与文件的查询
脚本文件名的查询
查看命令所在路径:which
查看某个文件的位置:whereis
注:不加参数的表示将所有包含ls的信息都显示出来;b参数表示查看二进制文件,即该条命令的目录;m参数表示查找man page的帮助信息
查看文件夹:locate zhangsan
注:locate是查询所有包含关键字的文件;由于locate是从数据库中查找,所以最新创建的文件查不到;需要等第二天数据库更新之后才能查找的到;或者可以使用命令updatedb更新一下数据库,就可以查找得到
Find查找
Find 目录 -属性 值
根据文件名查找:
find / -name zhangsan 根据文件名查找
find / -iname zhangsan 根据文件名查找,忽略大小写
根据所有者查找:
find / -user zhangsan 查找所有者是张三的文件
find / -user zhangsan –group zhangsan 查找所有者、所在组都是zhangsan的文件
find / -user zhangsan -or –group zhangsan 查找所有者或者所在组是zhangsan的文件
根据文件大小查找:
find / -size 4M 查找文件大小为4M的文件
find / -size +4M 查找大于4M的文件
find / -size +2M –sieze -5M 查找大于2M小余5M的文件
根据时间查找:
find –ctime 1 查找一天内创建的文件
find –ctime +1 查找创建了超过一天的文件
find -cmin 1 查找一分钟内创建的文件
find -cmin +1 查找创建超过一分钟的文件
find -cmin -10 查找创建时间小于10分钟的文件
find –newer file1 查找比file新的文件
根据权限查找:
find /mnt –perm 222 查找权限为222的文件
find /mnt –perm +222 +号表示ugo中只要有一个w,就符合匹配条件(或的关系)
find /mnt –perm -222 -号表示ugo三个位置中必须都要有w,就符合匹配条件(和的关系)
find /mnt –perm -2 表示other中要有一个w
find /mnt –perm -22 表示other中要有一个w,group中要有一个w
find /mnt –perm -222 表示user、group、other中都要有w
原创文章,转载请注明出处