Linux命令

目录

一、Linux基本命令使用

1.su命令:切换身份

2、ls命令:查看目录下文件

​3、man命令:可以打开man手册,了解该命令的详细说明

5、cd命令:切换当前路径

​6、clear命令:清楚终端信息(清屏)​

7、uname命令:查看操作系统信息

8、whoami命令:显示当前用户用户名​

9、rebot命令:重启操作系统

10、shutdown命令:关闭操作系统

11、type命令:查看一个命令是内部命令还是内部命令​

12、history命令:查看历史命令,列出最近输入的一千条命令信息

13、hostnamectl主机名命令​

查看主机名​

设置静态和瞬态主机名​

设置灵活主机名

查看静态和瞬态

二、Linux文件命令

1、目录管理

目录的创建mkdir与删除rmdir命令

1.1、mkdir命令

1.2、rmdir命令 (删除的必须是空目录)

2、文件管理

文件的创建touch与删除rm命令

2.1、touch命令

2.2、rm命令

3、cp命令:复制操作

4、mv命令:剪切和重命名操作

剪切操作:把文件剪切到其他文件夹中

剪切操作:把文件夹剪切到其他文件夹中

重命名操作

5、Linux打包操作

 -cvf选项:将多个文件进行打包

-cvf:将文件夹进行打包

-tf选项:查看tar包中的文件信息

-uf选项:如果还想往tar包中更新或追加内容都可以通过-u选项

-xf选项:释放打包文件中的文件

6、打包并压缩(重点)

对文件打包并压缩

对文件夹打包并压缩

7、对压缩包进行解压

解压文件压缩包

解压文件夹压缩包

8、zip压缩与upzip解压缩

8.1、zip压缩

8.2、upzip解压缩

解压文件夹到当前目录

解压文件夹到指定路径下

9、VIM编辑器的使用

简单使用的操作步骤:

第一步、vim命令:打开文件

第二步:vim编辑器保存文件

第三步:vim编辑器强制退出不保存

1、命令模式

1.1、命令模式下的相关操作(重点)

如何进入命令模式?

移动光标到首行或末行(重点)

复制/粘贴(重点)

剪切/删除(重点)

撤销/恢复(重点)

翻屏

set nu命令:显示行号

2、末行模式

保存/退出(重点)

查找/搜索(重点)

文件内容的替换(重点)

3、编辑模式或输入模式

4、可视化模式(了解)CTRL+v

如何进入到可视化模式

可视化模式复制操作

为配置文件添加#多行注释(重点)

为配置文件去除#多行注释(重点)

10、查看文件的内容命令

10.1、cat命令:正序输出文件的内容

10.2、tac命令:倒序输出文件的内容

10.3、head命令:查看一个文件的前n行,如果不指定n,则默认显示前10行

10.4、tail命令:查看一个文件的最后n行,如果不指定n,则默认显示最后10行

10.5、tail -f命令:动态查看一个文件内容的输出信息

10.6、more命令:分屏显示文件内容(了解)

10.7、less命令:分屏显示文件内容(重点)

10.8、cat命令、more命令、less命令的区别

11、wc命令和du命令:文件统计命令

11.1、wc命令

11.2、du命令:查看文件或目录(会递归显示子目录)占用磁盘空间大小

12、文件处理命令

12.1、find命令:查找文件

12.2、grep命令:在文件中找到包含指定关键词的那些行,并把高亮显示

12.3、echo命令:在终端中输入指定的文本内容

12.4、>和>>输出重定向

三、用户管理命令

1、用户组group操作命令

1.1、添加 groupadd

1.2、修改groupmod

1.3、删除groupdel

2、用户user操作命令

2.1、添加 useradd

2.2、修改usermod

2.3、删除userdel

2.4、id命令:用户信息查询

2.5、与用户相关的用户文件/etc/

​2.6、passwd命令:为用户设置密码(添加或修改)

3、su命令:切换用户的账号

4、管道命令

4.1、过滤(筛选)功能

4.2、统计功能(重点)

4.3、xargs命令

四、Linux网络管理命令

五、权限管理命令

1、三大文件权限r、w、x

2、三大类用户和一个特殊用户

2.1、三大类用户

2.2、特殊用户

3、普通权限命令

3.1、ls -l命令:查看文件权限

3.2、chmod命令:文件或文件夹权限设置(数字和字母)

用字母形式设置文件或文件夹权限

用数字形式设置文件或文件夹权限

奇葩权限

3.3、文件拥有者以及文件所属组设置命令

ls -l命令:文件拥有者与所属组的查看

chown和chgrp命令:文件拥有者与所属组的更改

4、设置特殊权限命令(扩展)

4.1、设置位S(针对二进制文件)

4.2、suid sgid sticky 设置特殊权限

4.3、沾滞位T(针对文件夹)

5、ACL访问控制

5.1、getfacl命令:获取某个文件的ACL权限

5.2、setfacl命令:给某个文件设置ACL权限

6、隐藏权限

7、umask命令(了解,不要更改!!!)


此章纯命令使用及敲写,无其他理论概念


一、Linux基本命令使用

1.su命令:切换身份

2、ls命令:查看目录下文件

ls(完整写法=>list show)列出,列表

用法一: 列出当前路径下的文件名称
#ls 
用法二:列出指定路径下的文件名称
#ls+绝对路径   或者  #ls+相对路径
用法三:列出指定路径下的文件名称并以指定的格式进行展示 

#ls+参数+路径
   参数:-l    表示list,以详细列表的形式进行展示
             -a    表示all,显示所有文件/文件夹,包含了隐藏文件/文件夹
             -h     表示以较高可读性(文件大小) 形式进行展示     
  可把参数合并使用
用法三:将ls -l进行简写,用在终端即可,写脚本此命令无用
#ll   
扩展:
绝对路径:以“/”为路径的一级级往下
相对路径:以当前路径为路径一级级往下
在Linux 中隐藏文档一般都是以"."开头
注意第一列的第一个字符,该位表示文档类型,“d”表示文件夹,“-”表示是文件 文件&文件夹在ls结果中所表示的颜色是不一样的,文件夹的颜色一般都是蓝色的,文件 一般都是黑色的(所说的颜色均是指在终端中的默认颜色)     
#ls -R 目录名      递归查询目录及其子目录内容
"."表示当前路径
".."表示上级路径(相对当前路径)        

#ls --help   命令帮助,在命令后使用--help,可以呼出帮助系统,带你了解该命令的详细说明


3、man命令:可以打开man手册,了解该命令的详细说明

#man ls


4、pwd命令:显示当前路径

5、cd命令:切换当前路径

cd (change directory,改变目录)
用法一:切换到当前用户的家目录
#cd 或者 #cd ~
用法二:切换到上一级目录
#cd ../
用法三:切换到上一次目录(返回上一次目录)
#cd -
用法四:切换到/usr/local/目录下
#cd /usr/local/
用法五:切换到根目录
#cd /

路径是可以写也可以不写,写路径的话则表示切换到指定路径,如果不写的话表示切换到当前登录用户的家目录中,就是用法一。


6、clear命令:清楚终端信息(清屏)

7、uname命令:查看操作系统信息

用法一:获取系统名称
#uname
用法二:获取全部的系统信息(如类型、全部主机名、内核版本、发布时间、开源计划等)
#uname -a 或 --all        (-接单单词;--接长单词完整单词)

8、whoami命令:显示当前用户用户名

9、rebot命令:重启操作系统

相当于Windons的重启电脑

10、shutdown命令:关闭操作系统

用法一:使系统在60秒后关机
#shutdown
用法二:延时关机,使系统在某个时间后关机,如果数字为0,即立即关机,其他数字的话,默认时间单位为分钟
#shutdown -h 数字
用法三:延时重启,使系统在某个时间后重启,如果参数是now,即立即重启,其他数字的话,默认时间单位为分钟
#shutdown -r 数字
用法四:取消重启
#shutdown -c
用法五:立即关机
#shutdown now  或
#init 0
扩展:
halt命令:在实际应用中,我们也可以直接使用halt命令进行关机操作
#halt -p    此命令相当于“shutdown -h 0”,代表立即关机


11、type命令:查看一个命令是内部命令还是内部命令

12、history命令:查看历史命令,列出最近输入的一千条命令信息

13、hostnamectl主机名命令

用法一:查看主机名信息
#hostnamectl 
用法二:设置主机名名称  (此设置同时影响静态和瞬态主机名)
hostnamectl set-hostname 主机名
用法三:设置灵活主机名
hostnamectl --pretty set-hostname 主机名

查看主机名

设置静态和瞬态主机名

设置灵活主机名

查看静态和瞬态


 



二、Linux文件命令

1、目录管理

目录的创建mkdir与删除rmdir命令

1.1、mkdir命令

mkdir = make directory

用法一:根据目录的名称创建目录
#mkdir 目录名称
用法二:-p 递归创建目录,从左边的路径一级一级创建目录,直到路径结束
# mkdir -p /usr/local/look1/look2
用法三:在当前目录下同时创建多个目录
#mkdir  目录名称1 目录名称2 目录名称3 ...... 

1.2、rmdir命令 (删除的必须是空目录)

rmdir = remove directory ,移除目录

用法一:删除空目录
#rmdir 目录名称
用法二:-p 递归删除空目录,从右向左一级一级删除空目录

#rmdir 目录名称1/目录名称2/目录名称3 ..
用法三:在当前目录下,同时删除多个空目录
#rmdir 目录名称1 目录名称2 目录名称3 ..

2、文件管理

文件的创建touch与删除rm命令

2.1、touch命令

用法一:创建文件
#touch 文件名称
用法二:同时创建多个文件
# touch 文件名称1 文件名称2 文件名称3 ...
用法三:{1..5}根据序号创建多个文件  (根据提供的开始序号~结束序号,一个一个创建文件)
# touch 文件名称{开始序号..结束序号}

2.2、rm命令

用法一:删除文件或文件夹
#rm [选项] 文件或文件夹的名称
   选项说明:  

  • -r:针对文件夹删除,代表递归删除,先把文件夹下的所有文件删除,然后删除文件夹,若该文件夹不是空目录就删除不了。(确认删除前会有提示是否删除该文件或文件夹)
  • -f:强制删除文件,没有提示直接删除,初学者一定要慎重
    也可组合使用-rf强制递归删除,删除非空的文件夹,不提示。

用法二:
#​​​rm -rf /*,一定要慎重
# rm -rf /* => 代表删除根目录下的所有文件(如果没有备份,恢复的几率不高)
rm :删除
-r :递归删除(无论文件夹是否为空)
-f :强制删除不提示
/ :代表根分区
* :所有

执行rm -rf/*前进行快照备份

#rm -rf /*

也无法关闭客户机

用快照进行恢复,恢复成rm -rf/*命令前的终端位置

命令又可以正常使用了

3、cp命令:复制操作

cp = copy复制

用法一:复制文件复制到指定文件夹中

#cp 源文件名称  目标文件夹的路径

用法二:复制并重命名文件

#cp [选项]  源文件或文件夹名称  目标文件夹的路径/命名新文件或文件夹名称

用法三:复制文件夹到指定路径

#cp  -r  源文件夹名称  目标路径/

选项说明:

              -r:递归复制,主要针对文件夹

复制操作 
这里会有vim命令使用,第三节会详细讲解。

复制并重命名操作

可以用#cat /tmp/file33命令查看文件内容

[root@cloud ~]# cat /tmp/file33
fu zhi yi ge wen jian bing chong ming ming  <==查看结果

复制文件夹操作

4、mv命令:剪切和重命名操作

mv = move,剪切、移动

用法一:剪切文件或文件夹到指定目标中
#mv 源文件或文件夹  目标文件夹的路径/
用法二:给一个文件或文件夹更改名称

#mv 源文件或文件夹名称  新文件或文件夹的名称

剪切操作:把文件剪切到其他文件夹中
剪切操作:把文件夹剪切到其他文件夹中

重命名操作

5、Linux打包操作

用法一:

# tar    [选项]    打包后的名称.tar    多个文件或文件夹

       选项说明:

                      -c :打包

                      -f :filename,打包后的文件名称

                     -v :显示打包的进度

                     -u :update缩写,更新原打包文件中的文件(了解)

                      -t :查看打包的文件内容(了解)

                     -x :释放
        选项可合并使用

 -cvf选项:将多个文件进行打包

-cvf:将文件夹进行打包

-tf选项:查看tar包中的文件信息

#tar  -tf  打包后的文件名称

-uf选项:如果还想往tar包中更新或追加内容都可以通过-u选项

#tar  -uf  打包后的文件名称

-xf选项:释放打包文件中的文件

#tar -xf 打包文件名称

6、打包并压缩(重点)

用法:
# tar   [选项]   压缩后的压缩包名称   要压缩的文件或文件夹

      选项说明:
               -cvf :对文件或文件夹进行打包并显示压缩进度
                -z :使用gzip压缩工具把打包后的文件压缩为.gz
                 -j :使用bzip2压缩工具把打包后的文件压缩为.bz2
                -J :使用xz压缩工具把打包后的文件压缩为.xz

对文件打包并压缩

对文件夹打包并压缩

7、对压缩包进行解压

就是把压缩的参数中的c换成x就可以实现解压缩了。

解压文件压缩包

  • 使用gzip压缩工具把打包后的文件压缩为.gz后缀名的解压要用z。

  • 使用bzip2压缩工具把打包后的文件压缩为.bz2后缀名的解压要用j

  • 使用xz压缩工具把打包后的文件压缩为.xz后缀名的解压要用J

解压文件夹压缩包

跟解压文件类似命令

8、zip压缩与upzip解压缩

Linux下已经有gzip、bzip2以及xz压缩命令了,为什么还需要使用zip压缩呢?

答:zip格式在Windows以及Linux中都是可以正常使用的。

8.1、zip压缩

用法:
#zip  [选项]  压缩后的文件名称.zip    文件或文件夹

     选项说明:
                -r:递归压缩,主要针对的是文件夹

压缩文件夹

压缩文件

8.2、upzip解压缩

用法:
#unzip 压缩包名称 => 解压到当前目录
#unzip 压缩包名称 -d 指定路径 => 解压到指定路径下

解压文件和解压文件夹类似操作

解压文件夹到当前目录

解压文件夹到指定路径下

9、VIM编辑器的使用

查看虚拟机是否安装vim编辑器
已安装的话输入vim命令,终端会出现图一效果;

未安装的话系统会提示“command not found”,在有网的前提下,可以使用yum工具对vim编辑器进行安装,在终端输入“#yum install vim - y”命令

图一
图一

详解图

简单使用的操作步骤:

第一步、vim命令:打开文件

用法:
#vim 文件名 
① 如果文件已存在,则直接打开
② 如果文件不存在,则vim编辑器会自动在内存中创建一个新文件

第二步:vim编辑器保存文件

在任何模式下,连续按两次Esc键 ,即可返回命令模式。然后按冒号:,进入到末行模式,输入wq,代表保存并退出。

第三步:vim编辑器强制退出不保存

在任何模式下,连续按一次或两次Esc键,即可返回到命令模式。然后按冒号:,进入到 末行模式,输入q!,代表强制退出但是不保存文件。

1、命令模式

使用VIM编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行① 移动光标 ② 复制 粘贴 ③ 剪切 粘贴 删除 ④ 撤销与恢复的操作。

1.1、命令模式下的相关操作(重点)
  • 如何进入命令模式?

在Linux操作系统中,当我们使用vim命令直接打开某个文件时,默认进入的就是命令模式。

如果我们处于其他模式(编辑模式、可视化模式以及末行模式)可以连续按两次Esc键也可以返回命令模式。

  • 移动光标到首行或末行(重点)

gg:移动光标到首行
G:移动光标到末行
行号 + G:快速定位光标到指定行

  • 复制/粘贴(重点)

①复制当前行(光标所在那一行) 按下yy键
    粘贴:在想要粘贴的地方按下p 键【将粘贴在光标所在行的下一行】,
    如果想粘贴在 光标所在行之前,则按下大写P键

② 从当前行开始复制指定的行数,如复制5行,按下5yy键,再按p键5yy 粘贴
     在想要粘贴的地方按下p 键【将粘贴在光标所在行的下一行】,
     如果想粘贴在 光标所在行之前,则使用P键

  • 剪切/删除(重点)

在VIM编辑器中,剪切与删除都是dd 。
如果剪切了文件,但是没有使用p进行粘贴,就是删除操作。
如果剪切了文件,然后使用p进行粘贴,这就是剪切操作。

① 剪切/删除当前光标所在行
按键:dd (删除之后下一行上移)
粘贴:p
注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

② 剪切/删除多行(从当前光标所在行开始计算) 特殊用法
按键:数字dd
粘贴:p

③ 剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)

  • 撤销/恢复(重点)

撤销:u(undo)
恢复:ctrl + r 恢复(取消)之前的撤销操作【重做,redo】

  • 翻屏

向上 翻屏,按键: ctrl + b (before) 或 PgUp
向下 翻屏,按键: ctrl + f (after) 或 PgDn
向上翻半屏,按键: ctrl + u (up)
向下翻半屏,按键: ctrl + d (down)

  • set nu命令:显示行号

2、末行模式

  • 保存/退出(重点)

:w => 代表对当前文件进行保存操作,但是其保存完成后,并没有退出这个文件。
:q => 代表退出当前正在编辑的文件,但是一定要注意,文件必须先保存(先:w保存),然后才能退出。
:wq => 代表文件先保存后退出(保存并退出) 如果一个文件在编辑时没有名字,则可以使            用:wq 文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出。
:q! => 代表强制退出但是文件未保存(不建议使用)。

  • 查找/搜索(重点)

切换到末行模式,然后输入斜杠/,输入要查找或搜索的关键词,然后回车会出现高亮,取消高亮就输noh。

如果在一个文件中,存在多个满足条件的结果。
在搜索结果中切换上/下一个结果:N/n (大写N代表上一个结果,小写n代表next),如果需要取消高亮,则需要在末行模式中输入 :noh【no highlight】。

  • 文件内容的替换(重点)

第一步:首先要进入末行模式(在命令模式下输入冒号:)
第二步:根据需求替换内容
            ① 只替换光标所在这一行的第一个满足条件的结果(只能替换1次)
                :s/要替换的关键词/替换后的关键词 + 回车


            ② 替换光标所在这一行中的所有满足条件的结果(替换多次,只能替换一行)
                 :s/要替换的关键词/替换后的关键词/g   (g=global全局替换)


            ③ 针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果
                 :%s/要替换的关键词/替换后的关键词


            ④ 针对整个文档中的所有关键词进行替换(只要满足条件就进行替换操作)                                  :%s/要替换的关键词/替换后的关键词/g  (g=global全局替换)

  • set paste模式(了解)
    为什么要使用paste模式?
    问题:在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。
    在粘贴数据之前,输入下面命令开启paste模式
              :set paste 粘贴完毕后,
    输入下面命令关闭paste模式
               :set nopaste

3、编辑模式或输入模式

进入:在命令模式下输入小写字母a或小写字母i即可进入编辑模式,在该模式下可以对文件的内容进行编辑。

退出:在编辑模式中,直接按Esc,即可从编辑模式退出到命令模式。

4、可视化模式(了解)CTRL+v

可以做一些列选操作(通过方向键选择某些列的内容)

  • 如何进入到可视化模式

进入:在命令模式中,直接按ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑ ↓ ← →方向键来选中需要复制的区块,按下y 键进行复制(不要按下yy),最后 按下p 键粘贴。

退出:退出可视模式按下Esc。

  • 可视化模式复制操作

第一步:在命令模式下,直接按小v,进入可视化模式
第二步:使用方向键↑ ↓ ← →选择要复制的内容,然后按y键
第三步:移动光标,停在需要粘贴的位置,按p键进行粘贴操

  • 为配置文件添加#多行注释(重点)

第一步:按Esc退出到命令模式,按gg切换到第1行
第二步:然后按Ctrl+v进入到可视化区块模式(列模式)
第三步:在行首使用上下键选择需要注释的多行
第四步:按下键盘(大写)“I”键,进入插入模式(Shift + i)
第五步:输入#号注释符
第六步:输入完成后,连续按两次Esc即可完成添加多行注释的过程

  • 为配置文件去除#多行注释(重点)

第一步:按Esc退出到命令模式,按gg切换到第1行
第二步:然后按Ctrl+v进入可视化区块模式(列模式)
第三步:使用键盘上的方向键的上下选中需要移除的#号注释
第四步:直接按Delete键即可完成删除注释的操作

10、查看文件的内容命令

10.1、cat命令:正序输出文件的内容

用法:
#cat 文件名称

10.2、tac命令:倒序输出文件的内容

用法:
# tac 文件名称

10.3、head命令:查看一个文件的前n行,如果不指定n,则默认显示前10行

用法:
#head -n 文件名称

10.4、tail命令:查看一个文件的最后n行,如果不指定n,则默认显示最后10行

用法:
#tail -n 文件名称

10.5、tail -f命令:动态查看一个文件内容的输出信息

(主要用于将来查询日志文件的变化)

Linux 系统日志中最重要的日志文件当属 /var/log 目录下的日志文件,该目录包括了系统产生的大部分日志信息。
/var/log/messages 文件:messages 日志文件是最重要的日志文件之一,它包含了系统启动信息、服务部署信息、网络配置信息、运行状态以及各种错误信息。这个文件通常要用 root 权限来查看和编辑。日志文件详情介绍

用法:

#tail -f 文件名称

10.6、more命令:分屏显示文件内容(了解)

特别注意:
more命令在加载文件时并不是一点一点进行加载,而是打开文件时就已经把文件的全部内容加载到内存中了。如果打开文件较大,则可能会出现卡顿情况。

用法:

# more 文件名称

10.7、less命令:分屏显示文件内容(重点)

特别注意:
less命令不是加载整个文件到内存,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。
另外:less可以通过上下方向键显示上下内容,退出时不会在Shell中留下刚显示的内容,按q退出

用法:

#less 文件名称

10.8、cat命令、more命令、less命令的区别

11、wc命令和du命令:文件统计命令

11.1、wc命令

用法:

# wc  [选项]  文件名称

         选项说明:

                    -l:表示lines,行数(以回车/换行符为标准)

                   -w:表示words,单词数 依照空格来判断单词数量

                    -c:表示bytes,字节数(空格,回车,换行)

扩展:
wc  [选项]  文件的名称     
可以统计一个文件的信息,实际情况下,我们选项还可以一起使用

-l选项操作

-w选项操作

-c选项的操作

选项合并使用,结果都是一样的,顺序不重要

11.2、du命令:查看文件或目录(会递归显示子目录)占用磁盘空间大小

用法:
# du   [选项]   统计的文件或文件夹

         选项说明:
                    -s :summaries,只显示汇总的大小,统计文件夹的大小

                    -h :以较高的可读性显示文件或文件夹的大小,(KB/MB/GB/TB)

12、文件处理命令

12.1、find命令:查找文件

用法:

# find  搜索路径  [选项] 

选项说明:

                -name:指定要搜索文件的名称,支持*星号通配符(Shift + 8)

                -type:代表搜索的文件类型,f代表普通文件,d代表文件夹=>加快检索速度

扩展功能:

             find实现模糊查询(必须结合通配符)

* :通配符,代表任意个任意字符。如*.log代表以.log结尾的文件,apache*代表搜索以apache开头的文件信息

特别注意:在实际工作中,尽量减少全盘搜索,比较消耗资源。

模糊查询

12.2、grep命令:在文件中找到包含指定关键词的那些行,并把高亮显示

单位:行,一行一行向下搜索。

用法:

# grep  [选项]  要搜索的关键词  搜索的文件名称

选项说明:

         -n :代表显示包含关键词的行号信息

扩展语法:

在多个文件中查找包含指定关键词的那些行,并高亮显示出来

# grep 要搜索的关键词 多个文件的名称

在多个文件中查找包含指定关键词的那些行,并高亮显示

12.3、echo命令:在终端中输入指定的文本内容

用法:

#echo "文本内容"

12.4、>和>>输出重定向

场景:
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。

> :标准输出重定向 : 覆盖输出,会覆盖掉原先的文件内容

>>:追加重定向 : 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

三、用户管理命令

Linux操作系统用户和组的基本概念 

1、为什么需要了解用户和组 

服务器要添加多账户的作用 :

  1. 针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源 
  2. 提高系统的安全性 
  3. 帮助系统管理员对使用系统的用户进行跟踪 

2、用户和组的关系
理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。
主组只能拥有一个,但是附属组或附加组可以同时拥有多个 => 亲爹,干爹 (多个)

1、用户组group操作命令

1.1、添加 groupadd

用法:
#groupadd  [选项]    用户组和组名称

选项说明:

         -g:代表用户组的组ID编号,自定义组必须从1000开始,不能重复


1.2、修改groupmod

# groupmod [选项 选项的值] 原来组的组名称

选项说明:  
          -g :gid缩写,设置一个自定义的用户组ID数字,1000以后

          -n :name缩写,设置新的用户组的名称


1.3、删除groupdel

用法:
#groupdel 用户组的名称

2、用户user操作命令

2.1、添加 useradd

用法:

#useradd   [选项 选项的值]    用户名称

选项说明:

          -g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)

          -s :代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。

/bin/bash => 给人使用的(运维工程师)  /sbin/nologin => 给软件使用的

         -G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)

          -c :代表用户的备注信息,

          -u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)

          -d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改

          -n :取消建立以用户名称为名的群组(了解)

-g操作和-G操作

useradd的-g是给其他用户(通过id编号来定位用户)作为主组来创建附属组用户,
useradd的-G是给其他用户(通过id编号来定位用户)作为附属组来创建主组用户

-c操作

-s操作

问题1:我们并没有为linuxuser账号指定所属的主组,可以成功创建账号么?
答:可以,因为在创建账号时,如果没有明确指定用户所属的主组,默认情况下,系统会自动在用户组中创建一个与用户linuxuser同名的用户组,这个组就是这个用户的主组。

问题2:刚才创建的linuxuser账号能不能用于登录操作系统
答:不行,因为Linux的登录账号必须要求有密码,如果一个账号没有密码是无法登录操作系统的

2.2、修改usermod

用法:
# usermod [选项 选项的值] 用户名称

选项说明:

          -g :修改用户所属的主组的编号

           -l :login name修改用户的名称

          -s :修改用户可以使用的Shell类型,如/bin/bash => /sbin/nologin

扩展:

-L:锁定用户,锁定后用户无法登陆系统lock

-U:解锁用户unlock 了解

-G :修改用户附属组的编号信息

-d :修改用户的家目录

-c :修改用户的备注信息

-l操作

-s :修改用户可以使用的Shell类型


2.3、删除userdel

用法:

#userdel   [选项]    用户名称

选项说明:

          -r :删除用户的同时,删除用户的家目录

扩展:

当我们想要删除某个账号时,系统提示当前账号被某个进行所使用。

解决方案:

第一种方案:找到登录的这个用户,然后将其注销

第二种方案:

# kill [-9] 进程的ID编号

选项说明: 

           -9代表强制结束某个进程

主要功能:用于结束某个进程的继续运行

-9的操作


2.4、id命令:用户信息查询

用法:查询某个指定的用户信息

 #id 用户名称

uid:用户编号

gid:用户所属的主组的编号

groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息


2.5、与用户相关的用户文件/etc/

组:/etc/group文件

用户:/etc/passwd文件,每创建一个用户,其就会在此文件中追加一行


2.6、passwd命令:为用户设置密码(添加或修改)

用法一:修改当前用户的密码

# passwd 

用法二:给普通用户设置密码

# passwd 用户名称

只有root用户能修改普通用户的密码,普通用户不能修改普通用户的密码,只能修改自己的密码。

用法三:修改密码的两种方式——交互式修改和非交互式修改

#passwd 用户名称     ===>交互式

#echo "string" | passwd --stdin 用户名  ===>非交互式

--stdin 将标准输入作为用户密码的令牌

用法四:查看用户密码信息/etc/shadow

3、su命令:切换用户的账号

用法:

# su  [-]  root

选项:

      - :横杠(减号),代表切换用户的同时,切换目录到用户的家目录

从超级管理员切换到普通用户,root=> linux,不需要输入linux的密码

从普通账号切换到超级管理员,linux=>root,需要输入root的密码

从普通账号切换到普通账号,linux=>fq,需要输入fq的密码

4、管道命令

"|",竖线 作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。

4.1、过滤(筛选)功能

用法:
 #前一个命令 | 后一个命令

4.2、统计功能(重点)

回顾:wc命令,word count,文件统计功能

# wc [选项] 文件名称

选项说明:
          -l : 统计总行数

         -w : word,总单词数

          -c : 统计总字节数

案例:用户在计算机中有一个配置文件(/etc/passwd),一般情况下,一个用户会占用一行配置,请你使用现学的管道统计当前计算机中一共有多少个用户就多少个信息(一个用户一行)

4.3、xargs命令

由于很多命令不支持 | 管道来传递参数,而日常工作中这些命令又需要管道来穿参数,所以就有了xargs这个命令。 xargs命令实际就是对管道进行了扩展,让所有命令都支持管道。

四、Linux网络管理命令

1、获取计算机的网络信息

#ifconfig

ifconfig命令操作解析

2、查询计算机的网络状态

#systemctl status network

systemctl=system + control

Active:active(正常) inactive

#systemctl status network命令操作

3、sytemctl启动/重启/停止 服务

#systemctl start network 启动网络服务

#systemctl stop network 停止网络服务

#systemctl restart netowrk 重启网络服务

4、网卡配置文件

Linux远程连接与文件传输

为什么需要远程连接?

用于windows系统电脑远程连接到linux系统

SSH协议

简单说,SSH是一种网络协议,用于计算机之间的加密登录。

sshd服务

当我们在计算机中安装了sshd软件,启动后,就会在进程中产生一个sshd进程,其遵循计算机的SSH协议。默认情况下,sshd服务随系统自动安装的。

#systemctl status sshd

sshd服务的端口号

SSH协议,其规则了远程连接与传输的端口号,所以sshd服务启动后,就会占用计算机的22号端口。
端口号解决什么问题呢?
答:能让我们的计算机区分出不同的服务。

远程连接工具

五、权限管理命令

权限的基本概念 

在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。
在Linux 中分别有读、写、执行权限
为什么要设置权限 

1)服务器中的数据价值 
2)员工的工作职责和分工不同
3)应对自外部的攻击(挂马) 
4)内部管理的需要

1、三大文件权限r、w、x

读r(read)、写(write)、执行(execute)

2、三大类用户和一个特殊用户

Linux 系统一般将文件权限分为3 类: 

read(读) 

write(写) 

execute(执行) 

对文件有读,写,执行的权限呢?

答:针对三大类用户

2.1、三大类用户

user文件拥有者:
默认情况下,谁创建了这个文件谁就是文件的拥有者。
文件的拥有者可以进行更改并不是一成不变的。
裴凯 => linux.txt,默认情况下,裴凯就是linux.txt文件的拥有者

group文件所属组内用户:
group所属组内用户代表与文件的所属组相同的组内用户。
张三创建了一个文件1.txt,然后李四与张三同处于一个用户组,那么李四就是文件1.txt的所属组内用户

other其他用户:
other其他用户代表这些人既不是文件的拥有者,也不是文件所属组内的用户,我们把这些人就称之为other其他用户。

2.2、特殊用户

特殊用户root:
在Linux操作系统中,root拥有最高权限(针对所有文件),所以权限设置对root账号没有效果。

3、普通权限命令

3.1、ls -l命令:查看文件权限

用法:
#ls -l或# ll

文件类型+权限解析

Linux一共有7种文件类型,分别如下:

-:普通文件

d:目录文件

l: 软链接(类似Windows的快捷方式)

(下面四种是特殊文件)

b:block,块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如猫(上网猫)等串口设备)

s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)

3.2、chmod权限命令:文件或文件夹权限设置(数字和字母)

ch = change mod简单理解权限

  • 用字母形式设置文件或文件夹权限

用法:

#chmod  [选项]  权限设置  文件或目录的名称

选项说明:

-R:递归设置,针对文件夹(目录)

重点:字母设置并不难,重点看三方面

第一个:确认要给哪个身份设置权限,u、g、o、ugo(a)

第二个:确认是添加权限(+)、删除权限(-)还是赋予权限(=)

第三个:确认给这个用户针对这个文件或文件夹设置什么样的权限,r、w、x

  • 用数字形式设置文件或文件夹权限

经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为数字形式权限。 文件权限与数字的对应关系,我们会发现没有7这个数字

案例1:
给readme.txt文件设置权限,文件的拥有者rwx,组内用户rw,其他用户r
rwx=7 rw=6 r=4
#chmod 764 readme.txt
案例2:
给shop文件夹设置777权限
#chmod -R 777 shop

  • 奇葩权限

问题:用超级管理员设置文档的权限命令是# chmod 731 ream.txt,请问这个命令有没有什么不合理的地方?
答:731权限进行拆解
7=4+2+1=rwx
3=2+1=wx
1=x
问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开之后才可以写,因此必须需要具备可读权限,因此此权限设置不合理。

注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",一般情况下,单独出现2、3的权限数字一般都是有问题的权限。

特殊权限说明:

在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所 在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)。

3.3、文件拥有者以及文件所属组设置命令

文件拥有者:属主 

文件所属组:属组 

什么是属主与属组 ?

属主:所属的用户,文档所有者,这是一个账户,这是一个人 

属组:所属的用户组,这是一个组 

  • ls -l命令:文件拥有者与所属组的查看

了解文件的拥有者与文件所属组来源 

在Linux操作系统中,每个文件都是由Linux系统用户创建的。 

在Linux操作系统中,每个用户都具有一个用户名称以及一个主组的概念
[fq@cloud ~]$ touch readme.txt 

[fq@cloud ~]$ ll readme.txt 

-rw-rw-r--. 1 fq fq 0 May 25 20:54 readme.txt 

用法:
#ls -l或 #ll

  • chown和chgrp命令:文件拥有者与所属组的更改

chown命令:即可以修改文件的所有者,也可以修改文件的所属组

ch=change ,own=owner

用法:
 #chown [选项] 新文件拥有者名称 文件名称

选项说明:

-R:代表递归修改,主要针对文件夹

chown同时修改属主与属组

用法:

#chown [选项] 文件拥有者名称:文件所属组名称 文件名称

#chown [选项] 文件拥有者名称.文件所属组名称 文件名称

选项说明:

-R:代表递归修改,主要针对文件夹

chgrp命令:只能修改文件的所属组

ch = change , group ==> chgrp

用法:

 #chgrp [选项] 新文件所属组名称 文件名称

选项说明:

-R:代表递归修改,主要针对文件按夹

4、设置特殊权限命令(扩展)

4.1、设置位S(针对二进制文件):为了让一般使用者临时具有该文件所属主/组的执行权限。


例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

添加S位权限 # chmod u+s /usr/bin/passwd 或者 # chmod 4755 /usr/bin/passwd

去除S位权限 # chmod u-s /usr/bin/passwd 或者 # chmod 0755 /usr/bin/passwd

4.2、suid sgid sticky 设置特殊权限

4.3、沾滞位T(针对文件夹):只允许文件的创建者和root用户删除文件(防止误删除权限位)

用法一:添加粘滞位

# chmod -R o+t /test 或 # chmod -R 1777 /test

用法二:移除粘滞位

# chmod -R o-t /tmp 或 # chmod -R 0777 /tmp


#chmod -R o+t 文件夹的名称 或 #chmod -R 1777 文件夹的名称

案例:/test 文件夹,拥有最高权限777,比如fq创建了一个文件在此目录, zhangsan用户可以对其进行删除操作,这种显然不太合适

案例:使用ll -d命令查看指定文件的权限
#ll -d /test

5、ACL访问控制

为什么需要ACL?

5.1、getfacl命令:获取某个文件的ACL权限

用法一:获取某个文件的ACL权限

# getfacl 文件或目录名称

5.2、setfacl命令:给某个文件设置ACL权限

# setfacl  [选项]   u:用户:权限   文件或文件夹名称

选项说明:

        -m : 设置ACL权限

         -x : 去掉某个用户或者某个组的权限(单个删除)

         -b : 删除所有的ACL权限(批量删除)

         -R :递归,通常用在文件夹(递归删除或添加)

-m设置ACL权限

-x删除单个ACL权限

-b批量删除ACL权限

-R递归删除或添加文件夹ACL权限

6、隐藏权限

7、umask命令(了解,不要更改!!!)

什么是umask 

umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限) 

 root用户下,touch a ,文件a的默认权限是644 

普通用户下,touch b ,文件b的默认权限是664 

644和664我们并没有设置,其中的关键因素就是umask 

扩展:

实际上我们root创建一个普通文件默认权限是666。  (需要转换成字母的方式去理解)

而创建一个文件夹默认权限是777。 

实际文件权限 = 最高(默认)权限 -umask的值

umsak码的作用:
限制用户创建文件呵目录的默认权限

用法一:获取用户的umask值

#umask 0022

注:0022中第一位0代表特殊权限位,可以不设置。 umask的默认值,在root和普通用户下是不一样的,分别是022和002

为什么文件在root下创建就是644,在fq下创建是664

root:666-022=644 fq:66-002=664

用法二:临时修改(重启后失效)

#umask 002

用法二:永久修改

# vim ~/.bashrc

① 在文件末尾添加umask 002

② 保存退出

③ su切换用户则立即生效

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗穎呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值