【Linux】2.Linux常用命令详解

Linux命令的数量是非常之多的,想要全部记住不太现实。
这篇讲的是一些常用的命令,建议每条命令都亲身实践一下感受效果。不要去专门背它,而是理解、实践就能自然而然的记住

千万不要被这么多的命令吓到,其实大部分命令都很简单

由于Linux中的命令非常多(以千计),所以这篇文章会持续地更新、补充。

一.前置知识

1.命令提示符

在这里插入图片描述

登陆终端之后第一眼看到的就是上面这个界面,其中的qiuker@ubuntu:~$就是命令提示符

qiuker表示当前登陆的用户名

@是分隔符

ubuntu是当前系统主机名

:~表明当前所处目录,~表示当前用户的家目录,相当于/home/qiuker

$表明用户类型,$表示普通用户,#表示管理员

2.命令格式

命令的基本格式为:命令 [-选项] [参数]

其中[]代表可选项,也就是说选项和参数并不是必需的

命令、选项、参数间以空格作为分隔符

1)选项

选项的作用就是调整命令的功能

比如最常用的功能ls(list files)用于列出当前目录下的文件名(按字典序)

ls -t则将文件按建立的时间顺序列出

ls -a则可以显示出所有的文件(包括.开头的隐藏文件)

选项有完整选项和简化选项之分

完整选项的格式一般为--选项

简化选项的格式一般为-选项

比如-a就是--all的简化

由于平时使用的多是简化选项,所以只要知道有完整选项这回事就行,不用特意记忆

顺带一提,Linux中的命令非常多,忘记了可以--help一下就能查看信息了

2)参数

参数就是命令操作的对象,并且有默认参数

ls为例,如果没有参数则默认参数为当前目录

3)注意事项

1)不是所有命令都遵循:命令 [-选项] [参数] 的格式

有些命令可能需要多个参数

2)多个简化选项同时使用时可以组合

比如ls -a -l等价于ls -lals -al

完整选项一般不可以组合

3)命令写的太多了,可以使用ctrl+L键进行清屏或者clear命令进行清屏

4)按可以调用之前写过的命令

3.文件通配符

通配符用于模糊搜索文件,如果不知道一个文件的全名或者懒得打一个文件的全名,可以使用文件通配符代替一个或多个字符

1)星号:

*可以代表任意多个字符,即匹配任意长度的文件名字符串(包括空字符串)

例:

通过*file可以匹配fileabcfile等等
通过*B*可以匹配ABBCABCB等等

2)问号:

代表单个字符,比如ab?ndon可以匹配abandon

3)方括号:

[]代表[]之间的任一字符,比如[abc]可以匹配abc

也可以使用减号-指定一个区间,比如[0-8]可以匹配数字0到8中的任意一个,[c-f]可以匹配cdef中的任意一个

可以用^!表示取反,比如[^txt]表示不包含txt的文件

二.目录处理命令

1.ls命令

原意: list

功能: 显示文件目录

所处路径: /bin/ls

语法: ls [选项] [文件或目录]

选项:

1)ls -a

ls -a:a是all的缩写,可以显示出包括.开头的隐藏文件在内的所有文件。

隐藏文件设计的初衷就是让用户看不见一些系统文件,这些文件一般不需要改动所以干脆隐藏起来防止用户误操作。

2)ls -l

ls -l:将文件型态、权限、拥有者、文件大小等详细信息也一并列出

l是long 的缩写,可以理解为显示的信息比较长。。。

例:

在这里插入图片描述
解释:
①第一部分

第一部分有十个字符

第一个字符代表文件的类型:

常见的有:-表示普通文件,d表示目录(directory的缩写),目录其实是一种特殊的文件,可以理解为文件夹,存放的是子文件/目录的信息,l表示链接文件(link的缩写,相当于windows下的快捷方式)

Windows中的文件类型通过扩展名表示

后面九个字符代表权限:

Linux中文件和用户之间有三种关系:

1.所有者 :只能有一个,一般为文件的创建者,但是所有权是可以转让的

2.所有者的同组成员(所属组)

3.其他人

2-4个字符代表文件所有者的权限
5-7个字符代表文件所属组的权限
8-10个字符代表其他人的权限

r代表读(read)的权限
w代表写(write)的权限
x代表执行(execute)的权限
此外还有一些特殊权限

rwx代表具备读、写、执行的权限
rw-代表具备读和写的权限
r--代表只具备读的权限

也就是第一位代表读、第二位代表写、第三位代表执行,如果有权限就写上对应的字母,如果没有就用-代替

②第二部分指的是硬链接数

目录的子目录数或者文件的link数

链接之后再讲

③第三部分指的是文件的所有者

解释一下为啥需要给用户分类:我们学习时都是在个人计算机上自己使用,自己就是管理者,有最大的权限,所以用户分类似乎没有必要。但对于服务器来说,权限一定要详细分配的(比如说银行的数据,肯定不能让所有用户具有相同的权限的)

④第四部分指的是文件的所属组

所属组的成员对文件具备相同的权限

⑤第五部分指的是文件的大小

如果觉得4096、4180这种数字看起来费劲,可以使用-lh选项,4096就会显示为4k,4180就会显示为4.1k

没错-h的作用就是人性化显示,将表示内存大小的数字转化为更符合人阅读的形式

⑥第六部分指的是文件的上一次修改时间

如果没有修改过,就是创建时间了

⑦第七部分指的是文件名

文件名就是文件的名字咯

3)ls -i

ls -i:用于查看文件的索引节点(index node,简称inode)

Linux中所有文件(包括目录)都有一个独一无二的索引节点。

4)其他

ls -d:d是directory的缩写,给出当前目录的信息(这个选项一般和l搭配,单独使用毫无意义)

ls -h将文件大小用人性化的方式展示,和l一起使用

ls -t将文件按建立的时间顺序列出

ls -r将文件按相反顺序列出(默认顺序为字典序,r指reverse)

ls -R将该目录下的文件,以及文件的子文件(子目录)一并列出(这里的R指Recursively,递归)

(注意Linux严格区分大小写的规定,-r和-R不同)

ls -F将在每个文件名后面附上一个字符用以说明该文件的类型:*表示可执行的普通文件,/表示目录,@表示符号链接

2.mkdir命令

原意: make directories

功能: 创建新目录

所处路径: /bin/mkdir

语法: mkdir [-p] [目录名]

1)文件命名规则

①文件名称严格区分大小写:Aa代表两个不同的文件

②目录是特殊的文件,在同一路径下,两个文件不能同名

③文件名可以使用除/以外的任意字符,但是在Linux的命令解释器中有一些转义字符,如*(空格)、$、括号等等,应该尽量避免使用这些字符作为名字。还有一个字符\用于取消转义字符的特殊意义,取其字面值,比如\?就代表字符

④文件名最长不能超过255个字符

⑤以“.”开头的文件为隐藏文件

2) mkdir

目录名的格式为 /……/创建的目录名

例:mkdir /tmp/China 表示在/tmp/目录下创建一个新的目录,/tmp/是临时文件存放的地方,是Linux系统中本身就存在的目录,China是新创建的目录名

ps:建议初学时就在/tmp/目录下进行创建、删除的练习,避免把系统搞得一团糟

mkdir具有同时创造多个目录的功能,比如说makdir /tmp/A /tmp/B就同时在/tmp/目录下创建了两个AB两个目录

反例1:mkdir/tmp/A B,之前虽然说过文件名可以是除了/的任意字符,但是由于空格是命令中的分割符,所以系统将这句话理解为创建两个目录,一个是/tmp/A,一个是B,而且B的前面没有目录名,系统会默认其创建在当前目录下

如果想要创建名字里带空格的文件名,需要用双引号将文件名括起来,但是不建议这么写

反例2:mkdir /tmp/Cap/A是不合法的,因为Cap本身就是不存在的目录,换言之,无法通过这种方式连续创建两个目录

3)mkdir -p

选项-p用于递归创建,p是parent的缩写

下面会遇到很多递归的情况,比如递归复制cp -r,递归删除rm -r,为啥这些命令都用选项-r表示递归,mkdir要用-p呢?

个人记忆方法:对于复制和删除命令,如果不加-r就只能复制/删除文件,加上-r之后可以操作目录。-p选项则只是加上后从创建一级目录变成能创建多级目录

之前不合法的句子加上这个选项就合法了:mkdir -p /tmp/Cap/A

3.cd命令

原意: change the current directory

功能: 切换当前目录

所处路径: shell内置命令

语法: cd [目录]

~表示目录/home
.表示当前所在的目录
..表示当前所在的目录的上一级目录

cd ..等价于返回上一级目录

在这里插入图片描述

当前目录位置可以通过命令提示符看到

移动当前目录有什么意义呢?

很多命令都以目录作为参数,而每一次都打绝对路径未免太累了。

假设当前处于目录/tmp/Cap下,想要进行ls /tmp/Cap/A操作,其实可以简写为ls A,这就是相对路径

所谓绝对路径:就是从根目录/开始一直走到目的地的路径,相对路径则是从当前目录走到目的地的路径

总之怎么方便怎么来

4.cp命令

原意: copy

功能: 复制文件或目录

所处路径: /bin/cp

语法: cp -rp [原文件或目录] [目标目录]

该命令行需要至少两个参数

如果有两个以上的参数,则最后一个参数是目标目录,前面的参数都是被复制的文件/目录

选项:

1.cp -r

如果没有选项-r,cp只能复制文件,而加上选项-r后可以复制目录

r是recursively的缩写,即递归,复制目录实际上就是需要递归多次复制

cp-R在功能上和cp-r类似,但是还是不同的,具体可以看这里:传送门

2.cp -p

cp -p:p指Preserve,有维持原状的意思,指复制文件属性,即除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

所以平时拷贝文件/文件夹写成cp -rp 就行

小技巧:

如果想让/tmp/A/apple文件复制到/tmp/B目录下,同时改名为boy,可以这么写命令:

cp -pr /tmp/A/apple /tmp/B/boy

5.rm命令

原意: remove the files

功能: 删除文件

所处路径: /bin/rm

语法: rm [文件]

1.rm -r

-r这个选项已经在其他命令出现过很多次了,除了在ls中表示reverse,其他地方都是表示recursively(ls中-R表示递归)

用这个选项可以删除文件夹

Windows中删除了之后会先收进回收站,回收站中再删除才是彻底删除。而Linux里删了就没了。。。

所以不要用系统文件做练习,No zuo no die

2.rm -f

-f中是f是force的缩写,表示强制。

即便是权限为只读的文件,也无需确认就可以直接删除,建议谨慎使用

6.其他目录处理命令

1)mv命令

原意: move

功能: 剪切(移动)和改名文件、目录

所处路径: /bin/mv

语法: mv [原文件或目录] [目标目录]

mvcp用法几乎一样,也可以同时复制多个文件/目录,剪切的同时进行改名也和cp写法一样,区别在于mv命令不需要加选项就可以剪切目录

本质上来说,剪切和复制一样,无非是前者会在复制的同时删掉原文件而已

2)pwd命令

原意: print the name of the current working directory

功能: 显示当前命令

所处路径: /bin/pwd

语法: pwd

这个功能是用于打印当前所处目录的全名的

PS:可能是因为版本问题吧,我这个版本命令提示符本身就记录了当前所处命令的全名,所以这个命令对我来说有点脱裤子放屁。。。

3)rmdir命令

原意: remove the directory(ies), if they are empty.

功能: 删除空目录

所处路径: /bin/rmdir

语法: rmdir [文件名]

注意事项:

只能删除空目录,所以没啥用,用到的地方不是很多

4)总结

增:mkdir [-p]cp [rp](注:前者p表示parent 用来递归创建,后者p表示preserve维持属性、r表示recursively 递归)

删:rm [-rf]

移:mvcd

查:ls [-l]

三.文件处理命令

Linux中存在着“一切皆文件”的思想。目录本质也是文件,只不过目录中存放的数据比较特殊而已。

下面要讲的文件处理命令指的是对于普通文件的处理

(注:目录处理命令中的rmcpmv等也是可以用于处理普通文件的)

1.touch命令

功能: 用于修改文件或目录的时间属性,包括存取时间和更改时间。若文件不存在,则系统会建立一个新的文件。

所处路径: /bin/touch

语法: touch [文件名]

主要记住touch用来创建文件的功能即可

2.cat命令

原意: concatenate file(s) to standard output.

功能: 显示文件内容,从键盘读入内容到文件

所处路径: /bin/cat

语法: cat [文件名]

cat [文件名]是最简单的用法,就是显示文件里的内容

1.cat >

cat A > B可以将文件A的内容复制到文件B中(注:若文件B中本来就有数据,会被覆盖)

cat > B 命令可以从标准输入(键盘)读取内容,直到ctrl+D输入结束,并将内容存储到文件B中

可以这么理解:

由于Linux“一切皆文件”的思想,所以设备键盘其实也是文件,cat A > B这条命令需要两个文件参数,将数据从A复制到B,如果不写第一个参数,系统会默认该文件参数为键盘文件

2.cat -n

cat -n:可以对输出的行进行编号,n是number的缩写

效果如下所示:

在这里插入图片描述

3.cat -b

注意到上图对于空行也进行编号了,如果不想对空行进行编号,可以使用cat -b命令,其中b表示number-nonblank(非空行)

效果如下:

在这里插入图片描述
注意只是编号,并没有删除空白行

4.cat -s

cat -s可以将连续两行以上的空白行合并为一行,s是squeeze的缩写

3.tac命令

tac就是cat倒过来的样子,所以tac命令的意思也和tac相反,即将命令反向显示

感受到了恶趣味。。。

4.more命令

原意: A file perusal filter for CRT viewing.

功能: 分页显示文件内容,便于阅读

所处路径: /bin/more

语法: more [文件名]

和cat一样可以显示文件内容,但是对于那种内容特别多的文件,cat会将它们一次性显示出来,用户根本没法阅读

more是更适合显示文件的命令

子命令:

按空格或者F键或键进行换页

B键或键往回翻页

按回车进行换行

Q退出浏览

1)选项

more -s:当遇到有连续两行以上的空白行,就代换为一行的空白行

more -num:num为一次显示的行数

more -p:clean print, 即不以卷动的方式展示文件内容,会清除屏幕后再展示下一页(建议自己实际尝试一下)

more +num:从第num行开始显示

2)less、head、tail

除了catmore,还有其他用于查看文件的命令

less命令和more命令都是用于分屏阅读的命令,只是浏览的方式不同:

①less 和 more都可以按Q键退出浏览,空格和F都是往下翻页,B键都是往回翻页

②less可以滚动阅读,按键进行滚动。more则是键用来翻页,回车键往下滚动。

虽然more命令查看文件时,没法往回滚动,所以less的功能更多一点,less is more……,再次感受到了设计者的恶趣味

当然more也是有优点的,比如会自动在屏幕的下方显示当前所处的位置处于百分之几

③less选项和more不同:

-m:显示读取文件的百分比

-N:在每行前输出行号

——————————————————————————————

headtail命令分别用来显示文件的前几行和后几行

选项head -n num表示显示文件的前num行,tail同理

或者直接写head -num就可以达到同样的效果

(应该是因为版本更新,所以有了更简便的写法)

5.重定向符号

插播一下重定向的知识,便于理解

前面其实已经提到过重定向了,就是cat A > B,作用是将文件A的内容复制到B中

cat A的意思则是查看文件A的内容

为啥同一个命令,却有两个看起来没啥关联的效果呢?

cat的全称是concentrate file to standard output,即将文件的内容放到标准输出中。这里的标准输出其实指的就是显示屏了

而重定向符号>则可以将输出的地点变换为文件B

文件B中原先的内容会被清空,如果不想清空而是追加内容则可以使用另一个符号>>

6.sort命令

sort命令用于文件的排序,以一行为一个单位,按ASCII码值升序排列(默认情况下)

语法:sort 文件名

在这里插入图片描述
选项:

1)-o

sort的功能其实是将排序后的结果输出到屏幕上,文件本身的内容并没有被改变。而使用重定向符号虽然能将排序结果输出到文件中,但不能输出到原文件(因为会先清空原文件)

使用选项-o就可以将排序的结果保存到原文件了

2)-r

sort默认的排序方式为升序,使用-r后则为降序

3)-n

按ASCII码值比较数字时会出现10比2小的情况,因此对数字排序时需要使用选项-n

4)-u

该选项的作用是在排序结果中去掉重复行

5)-t -k

-t用于设置分隔符(默认为空格),-k用于指定排序的关键字

例:

在这里插入图片描述

-t :表示以冒号作为分隔符,-k 2表示以第二列作为排序的关键字。

一个复杂的实例:

sort -k 3nr -k 1.2 facebook.txt表示对文件facebook.txt进行排序,优先按第三列(或者说第三个域)进行降序排列,若值相同,从第一个域中的第二个字符开始比较

7.文件的压缩打包

打包和压缩的区别:

打包是将几个文件合在一起形成一个包,便于保存、运输

压缩是通过压缩算法(合并文件中相同的信息)减小文件的体积,以节省存储空间。通常压缩前需要进行打包操作

1)tar命令

tar即tape archive的缩写,作用是将某些文件进行备份并合成一个包

语法:tar [选项] [要打包的文件名]

选项-f:

该选项用于指定操作的对象,是必须要用到的选项,且和其他选项一起使用时应该排在选项的最后面

选项-cf:

c意味着create,该选项用于创建一个包

例:tar -cf bao1.tar m1 f4

将文件m1f4打包到bao1.tar

注:选项后的第一个参数是打包的“包名”,其它参数是被打包的文件名

选项-tf:

t表示list,该选项用于查看包的内容

例:tar -tf bao1.tar

选项-xf:

x表示extract(提取),该选项用于解包

例:tar -xf bao1.tar -C /tmp

表示将bao1.tar里的文件提取到/tmp中,这里的-C的作用就是指定包解压的位置,如果不指定位置则默认解压到当前目录

注意解压后包本身不会被删除

选项-uf:

u表示update,该选项用于更新包中的内容

何谓更新呢?包其实是备份文件,如果原文件发生了变化,包中的文件并不会同步更新,所以可以使用该选项进行更新

tar -uf bao.tar m1为例,据我的实验,这个更新的效果是这样的:

m1中有而包中没有的内容添加到包中,这意味着:

1)若在m1中删除某些内容,进行更新时包中的内容不会被删除。所以这不是严格意义上的更新

2)若m1是一个包中不存在的内容,则会被添加到包的末尾

选项-rf:

这个选项的作用是追加内容到包的末尾

总结:

五条主选项ctxur分别表示创建、显示、提取、更新、追加,这五个选项必须存在一个,并且至多使用一个。

其他选项的作用都是辅助性质的,比如-cvf表示在创建包后将包的内容显示到屏幕上

8.链接命令——ln命令

对链接类型的文件命令只有ln这一条(对链接文件进行删除、查看、移动等命令和普通文件一样)

之前在讲ls -l命令时,有提到_代表普通文件、d代表目录文件、l就是指的链接文件了(link的缩写)

语法:

ln [原文件][目标文件]:创建硬链接

选项-s用于创建软链接

软链接文件:

软链接,又称符号链接,类似于Windows中的快捷方式。运行软链接文件时,它会找到原文件所在位置,然后执行原文件。因此软链接文件只是提供了符号链接的指向而已

ls -l命令查看软链接文件:

在这里插入图片描述
(我在同一个文件夹创建了一个文件A,以及文件A的软链接文件,起名为a

注:

1)软链接文件的权限都是rwxrwxrwx,即所有人具备所有权限。因为对软链接文件操作并不会影响原文件,它只是一个快捷方式,所以不用在意权限全开带来的安全性问题

2)软链接文件的文件名会指向原文件

硬链接文件:

硬链接则可理解为和原文件同步更新的拷贝/备份,硬链接文件和原文件的所有属性都是一样的,包括文件的修改时间等等(就像cp -p的效果)

但是硬链接和复制有一点很大的不同,那就是可以同步更新。如果原文件发生了变动,硬链接文件也会相应变化,反之亦然。

硬链接和软链接文件的区别:

①硬链接文件和原文件共用同一个索引节点(所以才能同步更新),软链接文件则和原文件索引节点不同

②硬链接不能跨分区创建且不能为目录创建链接,但是软链接都可以

③原文件被删除时,硬链接不会被影响,所以硬链接文件相当于备份。但是原文件删除,软链接文件就失效了,因为软链接所指向的文件被删了,它就变成了死链接(dangling link)

四.文件搜索命令

1.find命令

搜索命令是比较占用系统资源的,所以在创建文件时就应该做好文件的分类与规划

语法:-find [搜索范围] [匹配条件]

这里的匹配条件指的就是不同的选项

注意搜索范围越精准越好,避免浪费计算机资源;默认为当前工作目录

1)-name

选项-name即按照文件名查找文件

并且可以使用文件通配符进行模糊搜索

例:find /tmp -name test???

效果:在目录/tmp下查找文件名长度为7,且前四个字符为test的文件

结果:

在这里插入图片描述
可以发现有很多无用的查询信息也被显示了出来,如果我们只想要查询到的符合条件的内容,可以这么写:

find /tmp -name test??? 2>/dev/null

其中/dev/null是一个Linux系统中一个特殊的文件,任何存放到该位置的文件都会被立刻丢弃,所以被称为黑洞文件

这句话后面的2>/dev/null的大概意思就是将无用的信息都丢到黑洞文件中,效果如下:

在这里插入图片描述

另外一个与之类似的选项是-iname,表示不区分大小写的查找

2)-size

根据文件大小进行查找

例:find / -size +1000000 2>/dev/null

在根目录下寻找size大于1000000的文件

+1000表示寻找大于1000的文件
-1000表示寻找小于1000的文件
1000表示寻找等于1000的文件

Linux中文件大小的单位是数据块,占0.5K字节(即512字节)

3)其他查找条件

-size:按文件的所有者进行查找

例:find /home -user qiuker

表示在目录/home下查找所有者为qiuker的文件

-group:按文件的所属组进行查找

-nogroup:不跟参数,查找所属组为空的文件

-nouser:不跟参数,查找所有者为空的文件

-type:按文件的类型进行查找

f表示普通文件,d表示目录文件,l表示符号链接文件

4)处理动作

-ls:相当于查找到文件后再对文件进行-ls命令

-delete:查找到后删除文件

-print:查找到后输出文件的路径到屏幕,这个是默认的处理动作

-fls file:将文件的长格式信息保存到file中,相当于-ls > file

2.wc命令

语法:wc file

用于统计文件file的行数、单词数、字节数

注:以空格为分隔符统计单词数、统计字节数时空格和回车也会被计算

若没有文件名,则代表从标准输入文件中获取数据(键盘输入)

可以同时统计多个文件

例:

在这里插入图片描述

五.权限管理命令

1.对于权限的理解

回忆一下文件权限的内容:

权限有rwx三种,分别表示读(read)、写(write)、执行(execute)的权限

文件和用户之间有三种关系:

1)所有者
2)所属组
3)其他人

一个用户对文件具有何种权限,要看这个用户和文件的关系。

我们可以用ls -l命令查看文件的权限,例:_rwxrw_r__代表一个普通类型的文件,所有者对该文件具有所有权限,所属组成员对该文件具有读和写的权限,其他人只具备读的权限

对于普通文件的读、写、执行权限比较好理解,那对于目录文件的读、写、执行权限又代表着什么呢?

读:列出目录中内容的权限,即ls命令

写:修改目录内容的权限,可以创建、删除目录下的文件,即touchmkdirrmdirrm命令。(这里需要注意下,有些人会觉得对普通文件有写权限就能删除权限,其实不是的,删除权限取决于是否对文件所在的目录有写权限)

执行:进入目录的权限,即cd命令

注:

如果对目录没有读权限,那对目录下的文件也没有读权限(即便对该文件有读权限)

系统会提示Permission denied

2.chmod 命令

原意: change the permissions mode of a file

功能: 用于更改某个文件/目录的权限

执行权限: 只有管理员root和所有者才能改变文件的权限

语法1: chmod [{ugoa}{±=}{rwx}] [文件/目录]

中间的选项由三部分组成:

1)第一部分在{ugoa}中选一个,指明修改权限的对象:u代表user所属者,g代表group所属组,o代表others其他人,a代表all,即同时修改所有人的权限

2)第二部分在{±=}中选一个,指明修改权限的方式:+代表加上权限,-代表减去权限,=代表赋值

3)第三部分在{rwx}中选一个,指明对哪种权限进行操作

例:chmod a+r 文件X代表给所有人加上了读取文件X的权限

chmod o=rw 文件X代表将其他人对该文件的权限变为读和写

chmod g+w,o-r 文件X:可以用逗号分割,同时进行多次改变权限的操作

更为简便的是数字表示法↓

语法2: chmod [ooo] [文件/目录]

ooo指的是三个八进制数

权限共有三种(rwx),其组合情况共有八种( 2 3 2^3 23),用一个八进制数就可以表示所有的情况,即三个二进制位:

1代表具备权限,0代表不具备

例:

7,转化为二进制111,即代表具备所有权限;

5,转化为二进制101,即代表具备读(r)和执行(x)的权限

2,转化为二进制010,即代表只具备写(w)的权限

3.chown 命令

原意: change file ownership

功能: 改变文件的所有者

执行权限: 只有管理员root(所有者也不行)

语法: chown [用户][文件或目录]

例:chown qiuker /tmp/jili

将文件jili的所有者变为qiuker

与之类似的一条命令:

chgrp 命令:

chgrp命令用于修改文件的所属组,grp是group的缩写,用法和chown命令几乎一样,不做赘述

4.umask命令

原意: the user file-creation mask

功能: 显示/设置文件的默认权限

一个文件在创建时,系统会自动给该文件设置权限,这就叫做文件的默认权限

语法1: umask -S

效果是查看文件的默认权限

在这里插入图片描述

u=rwx,g=rwx,o=rx表示文件的创建者和所属组成员具有所有权限,其他人具备读和执行的权限

此处要注意几点:

1)该默认权限指的其实是目录文件的权限

2)普通文件在创建时不会有执行权限(对所有用户都是这样的),这是出于安全性的考虑。其他默认权限与目录文件相同

3)软链接文件的默认权限就是rwxrwxrwx

语法2: umask

不需要选项-S 也可以查看权限:

在这里插入图片描述

显示0002,这和上面的u=rwx,g=rwx,o=rx是等价的,第一个0暂不解释,照理来说rwxrwxr-x翻译成数字应该是775,怎么会变成后面的002

我们可以由002777进行异或运算就得到了775
也可以理解为777-002=775

看上去很弯弯绕绕,但mask的意思就是掩码,所以umask命令查到的值是掩码,这很合理

语法3: umask 002

在umask后加上一串数字就可以将文件的默认权限修改成数字对应的权限(注意这串数字是掩码值)

但是不建议去修改文件的默认权限

六.用户管理命令

1.关于用户

所谓用户(User),也就是系统的使用者。

在Linux中不同用户是可以同时操作系统的,所以称之为一个多用户操作系统。

要使用系统资源的用户,首先要向系统管理员申请一个账号,然后以这个账号的身份进入系统。

注意系统的管理者是root,所以下面的命令都是只有管理员才有权使用的,包括:

用户账号的添加、删除与修改。
用户密码的管理。
用户组的管理。

2.切换到root用户

由于root的权力过大,为了避免误操作平常都是不用root登陆的,但是用户管理命令必须要用root来执行

切换用户的命令为:su - user

注意-一定要加,如果不加-虽然也能切换用户,但是会发现Shell环境仍然是原先的用户,当前工作目录也是原用户的工作目录

还有一种方法:

输入命令sudo su,然后再输入密码即可

在这里插入图片描述

可以从命令提示符处发现当前用户已经发生了变化

但是这种写法和su不加-是一样的

如果不想切换用户,可以在命令前加上一句sudo,则即便不是root用户在执行该条命令时也具有了root的权限

3.用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

1)useradd命令

该命令用于创建一个新的账号,并为该账号分配用户号(uid)、用户主目录(家目录)、用户的所属组、用户要登录的Shell

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值