1.文件权限
1.1.chown
改变所有者
1.2.chmod
修改权限,一个文件一般的权限结构如下
文件类型+所有者权限+组权限+其他人的权限
比如
-rwxr--r-x
第一位代表这是一个文件,rwx代表该用户对该文件有读,写和执行的权限,该组队改文件只有读的权限,其他人对该文件有读和执行的权限,一般r的权值是4,w是2,x是1
假如有如下这个文件,默认新建之后它的权限如下
image.png
假如我们执行了以下命令
chmod 777 test.txt
那么文件的权限就变成了
image.png
1.3.chgrp
修改文件或者文件夹所属的用户组
2.目录
2.1cd
cd - //切换到上一个目录
cd ~ // 切换到当前用户的目录
cd .. // 切换到上一层目录
2.2pwd
列出当前目录,这里要注意的是假如是link的文件,可以使用pwd -P显示具体的路径
2.3mkdir
创建目录,如果要给目录赋权限,可以使用-m,如果要创建一个不存在的多级目录,可以使用-p
2.4rmdir
删除目录
3.文件内容查询
3.1 cat
一次性从上到下打印出文件内容,可以打印行号等
3.2 tac
一次性从下到上打印文件内容,和cat相反
3.3 nl
带序号从上到下打印文件内容
3.4 more
一页一页打印文件内容,只能往下翻
3.5 less
一页一页打印文件内容,可以上翻也可以下翻,另外还可以使用/关键字向下搜索关键字,使用?关键字向上搜索关键字
3.6 head
显示前几行数据,可以按照以下命令来执行
head -n 3 test.txt
代表显示前三行数据
3.7 tail
显示后几行数据,与head雷同,只是显示方向相反
// 显示十一行到二十行的数据为以下命令
head -n 20 test.txt | tail -n 10
3.8 od
可以以二进制输出文件,没深究
3.9 touch
用于创建文件以及mtime和atime,修改时间没深究
4 权限
4.1 umask
一般情况下,文件夹的权限是777,文件的权限是666,如果umask为002,则文件夹的权限就变成了775,文件的权限变成了664,可以直接执行umask 222修改umask的值
这里要注意,文件只有666,并没有e的值,所以加入umask为003时,权限为663,按照这样的话肯定是-rw-rw--wx,这很明显有问题的,因为一开始就没有了x,后来居然出了x,所以这样是不对的,那么应该怎么算呢,我做了个测试
665 666
664 664
663 664
662 662
661 662
660 660
从上面可以看出,是按照最大来取值的,这个一定要注意
4.2 chattr
这个命令用来设置文件的隐藏属性,有好多,具体可查鸟哥的私房菜,主要讲讲个,+i和+a
chattr +i 文件名
上面的命令,设置该文件不能删,不能改,反正啥都不能做
chattr +a 文件名
上面的命令,设置该文件不能删,只能增加内容
另外还有lsattr,可列出隐藏属性
5 搜索
5.1 which
查找系统命令位置,只在$PATH环境变量中查找,并且默认只返回第一个查找结果,如果要查找所有结果,可以使用
which -a keyword
image.png
5.2 whereis
whereis命令用于定位可执行文件、源代码文件、帮助文件在系统中的位置
参数:
-b 查找二进制文件
-m 查找说明文件
-s 查找源代码文件
-u 查找非上述3种文件的其他文件
例:whereis -b php
PS:whereis默认从数据库文件(Linux将所有的文件都记录在一个数据库文件,但并不实时更新,一般一天更新一次)中查找指定文件,因此whereis比其他从硬盘查找的命令,效率高很多
5.3 locate
此命令和find / -name类似,但是它是从数据库文件(Linux将所有的文件都记录在一个数据库文件,但并不实时更新,一般一天更新一次)中查找指定文件,因此效率比find快得多
参数:
-i 忽略大小写
-r 使用正则表达式做匹配条件
例:locate demo.php
5.4 find
find是从硬盘去检索文件,因此效率并不高,但是find的功能是最广,最强大的
5.5 总结
一、5个查找命令中,find、locate、whereis是用来查找具体的文件,which、type是用来查找命令(which也相当于查找文件,但是只查找命令位置)
二、whereis只查找3种类型的文件:二进制文件、说明文件、源代码文件
三、whereis和locate都是从数据库文件查找,所以效率最高
四、使用优先级:
1、区分命令,使用type
2、查找命令位置,使用which、whereis、type(优先使用whereis)
3、通过文件名称查找,优先使用locate,找不到时,updatedb
4、其他查找条件、或者因数据库文件未更新,使用whereis、locate查找不到时,使用finde
bak
修改密码
sudo passwd root
killall -u user 杀死指定用户的所有进程
-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程
网友评论