Linux命令合集有这一份就够了(爆肝超详细)

目录

1.磁盘分区

将sdb1做成ext4格式,再将sdc1做成swap格式

挂载分区sdb1

卸载分区sdb1

编辑系统配置文件格式

2.系统服务,重启,关机,注销以及安全

5分钟后重启

查询防火墙服务器状态

查询防火墙服务器状态

关闭防火墙服务

3.显示目录与切换目录

查询根目录下的全部文件

查询根目录下的全部文件,包括隐藏文件

递归查询/root目录

查询根目录下的全部目录

查询本目录下全部以c开头的文件

跳转到根目录

跳转到mnt下的cdr

4.历史记录与缓存

查询缓存

再次执行缓存中的17号命令

5.创建与删除目录或文件

创建一个名叫abc的目录

创建一个名叫abc的目录,并指定权限为622

创建一个名叫abc的目录,并在其下再建立一个123的子目录

删除一个名叫abc的文件,且不需要确认

删除一个名叫123的目录,且不需要确认

创建一个名叫123的文件

输出字符“123456789”到屏幕上

创建一个名叫123的文件,并在其中输入字符“123456789”

6.文件编辑,创建以及查看

将文本文件中的“123”全部替换成“abc”

将文本文件中的“ABC”和“abc”全部替换成“123”

将文本文件中光标指定行的“123”全部替换成“abc”

将文本文件中光标指定行的第1个“123”替换成“abc”

将文本文件中第11行和第22行的“123”全部替换成“abc”

使所有用户vim都自动开启行号

使用户abc的vim自动开启行号

查看一个叫123的文件

分屏显示123文件

从正数第4行开始查看名叫123的文件

将 df -h命令的输出结果从正数第2行开始查看

从倒数第4行开始查看名叫123的文件

将 df -h命令的输出结果从倒数第2行开始查看

去掉正数前3行开始查看名叫123的文件

查看123文件的文件类型

查询/mnt下的f1文件的详细信息

7.复制,移动和链接

复制一个名叫123的文件到/mnt下

复制一个名叫123的目录到/mnt下

复制一个名叫123的目录到/mnt下,并复制权限

移动一个名叫123的文件到/mnt下,并改名叫abc

给文件123创建一个abc的软连接

给文件123创建一个abc的硬连接

再次给文件123创建一个abc的软连接,并删除之前的abc文件

8.查找

查找123文件

在根目录下查找一个名叫123的目标

在根目录下查找所有以.gz结尾的目标

在根目录下查找大小为1024KB的目标

在根目录下查找所有的软链接文件

在根目录下查找权限为777的目标

在根目录下查找到名为abc的目标后直接删除不确认

9.字符管理

在文件123下查找关键字abc所在的行,并忽略大小写

在/root目录下查找所有包含关键字abc所在的行

将命令df -h 的输出结果去掉关键字abc并统计行数

查找文件123的第5行

在文件123中查询关键字abc所在的行

将命令df -h 的输出结果取第4,7列查看

将文件123的内容以第4列的字母为基准正序排序

将文件123的内容以第2列的数字为基准反序排序

统计df -h 命令输出结果的行数

将文件123的内容截取第5行

将文件123的内容截取第2,5行

将文件123的内容中的abc全部删除

将文件123中的abc全部替换成000

查找文件123中含有关键字abc的行

10.lvm

创建sdb和sdc的pv

创建sdb1和sdb2的pv

删除sdb的pv

添加一个名为raid且pe大小为1KB并含有pv:sdb sbc的vg

移除上述vg中的pv:sdb

为上述vg添加一个pv:sdd

删除名为raid的vg

在一个名为raid的vg下创建一个大小为5GB的lv,lv名为linux

将lv:linux扩容至20GB

将lv:linux扩容大小为5GB的空间

删除名为linux的lv

在一个名为raid的vg下创建一个大小为5GB,条带数量为3,条带块数大小为128K,名为windows的条带lv

在一个名为raid的vg下,为一个名为linux的lv创建一个镜像,镜像调用pv空间为pv:sde

11.软件包安装与卸载

查询系统内全部安装包

安装一个名为gpm的软件包

将gpm软件包升级

查询ssh软件包安装信息

查询ssh命令的配置文件

查询telnet命令的安装包

创建1个名为123的yum源配置文件,源文件名称为abc,注释为“linux”,源路径为http:///www.baidu.com,不开启gpg密匙检测,并且开启源文件

12.用户账户与组

创建一个名叫123的新用户,并且设定其家目录为/root123,且其初始化组为root,UID为10086

为123用户设定密码,密码为123456

将用户123的密码清空

为用户123改名为abc

删除用户abc并清空其所有数据

创建一个名为abc的组,并指定gid为10086

将组abc改名为123

删除组123

为组abc创建密码123456

将当前用户的私有组临时切换到组abc

13.权限管理

将目录123以及其下的子目录abc的权限修改为777

将目录123以及其下的子目录abc的属主属组从123:456改成abc:efg

显示目录123以及其下的子目录abc的隐藏属性

将目录123以及其下的子目录abc的隐藏属性修改为只读

从管理员切换到用户123并使用123的shell

从管理员切换到用户123并使用root的shell

对文件123的权限777设置suid权限

对文件123的权限777设置sgid权限

对目录123的权限777设置sticky权限

使用户123可以cat查看/etc/shadow且只可以查看/etc/shadow

使用户123可以查看root用户的家目录以及其子目录

查看文件123的acl信息

14.打包,压缩与备份

把文件f1,f2,f3打包,包名为abc,并在打包后删除源文件

把文件f4追加到包abc.tar中

将包文件abc.tar解包到/root下

把包文件123.tar到包abc.tar中

把包文件abc.tar中的f2解包

把包文件abc.tar中的f1删除

将文件f1 f2 f3打包并使用gzip压缩,压缩包名abc

将xz格式压缩包123解压缩并解包

将文件f1以bzip2格式压缩

将gzip格式压缩包123解压缩

将目录/root压缩

15.系统备份

将目录/mnt完全备份到硬盘sdc上,同时记录备份时间信息

将目录/mnt差异备份到硬盘sdc上,同时记录备份时间信息

将目录/mnt增量备份到硬盘sdc上,同时记录备份时间信息

显示备份信息

查看备份文件

恢复文件f1

恢复所有备份文件

16.系统资源管理

查询目录/root占用的磁盘空间信息并人性化显示

查询目录/root占用的磁盘空间信息并只显示目录占用空间的总和

显示所有分区的格式化类型

显示所有分区使用情况并人性化显示

显示所有ext4分区使用情况并人性化显示

显示所有分区i节点使用情况并人性化显示

显示当前用户的所有进程以及其所有者,进程号和父进程号并列式完整信息

显示当前终端下所有用户的进程并显示进程的uid

显示该系统下所有用户以及所有终端的全部进程并显示进程的uid

强制删除uid号为110的进程

强制删除jobs编号为3的进程

把ping命令的进程切换到后台运行

把后台的ping进程掉回前台运行

把ping命令的进程挂起

把挂起的ping进程掉回后台运行

17.计划任务

编辑计划任务,在1111年1月1日1点1分重启设备

执行at队列中的第3条任务

删除at队列中的第7条任务

为当前用户创建计划任务在每天0点0分重启系统

删除当前用户的第4个计划任务

为用户abc创建计划任务,在每周1的0点0分重启系统

18.shell

在本级shell声明变量a

在全局shell声明变量a

取消变量a的赋值

临时修改变量a的赋值为123

利用if语句编辑脚本实现:

利用case语句编辑脚本实现:

利用while语句编辑脚本实现:

利用until语句编辑脚本实现:

利用for语句编辑脚本实现:

利用select语句嵌套case语句并搭配while语句编辑脚本实现:

利用特殊语句read循环将当前目录下的文件f1的所有内容逐行显示

利用特殊语句read循环将当前目录下的文件f1的第1 3 5列内容逐行显示

19.系统启动与排故


1.磁盘分区

以树状结构查询磁盘信息

lsblk

无重启添加scsi硬盘

echo “scsi add-single-device a b c d” >/proc/scsi/scsi

无重启移除scsi硬盘

echo “scsi remove-single-device a b c d” >/proc/scsi/scsi

磁盘系统文件

/proc/scsi/scsi

制作文件系统

mkfs -t 文件类型 设备文件绝对路径 或 mkfs.文件类型 设备文件绝对路径

查询挂载信息

mount

挂载分区

mount 设备文件绝对路径 挂载点

取消挂载

umount 设备文件绝对路径

制作swap分区

mkswap 设备文件绝对路径

开启swap功能

swapon 设备文件绝对路径

关闭swap功能

swapoff 设备文件绝对路径

使系统配置重启后依旧生效

vim /etc/fstab

系统配置文件

/etc/fstab

↑具体例子:

将sdb1做成ext4格式,再将sdc1做成swap格式

mkfs.ext4 /dev/sdb1

mkswap /dev/sdc1

swapon /dev/sdc1

挂载分区sdb1

mkdir /mnt/sdb1

mount /dev/sdb1 /mnt/sdb1

卸载分区sdb1

umount /dev/sdb1

编辑系统配置文件格式

第一列 /dev/sdb1(系统文件绝对路径)

第二列 /mnt/sdb1(挂载点)

第三列 ext4 (文件格式)

第四列 defaults (权限)

第五列 0或1 (是否启用系统备份dump,0为关闭,1为开启)

第六列 0或1或2(是否启用开机磁盘检查,0为关闭,1为主分区开启,2为非主分区开启)

fdisk

交互式磁盘分区工具

语法格式:fdisk 设备文件名绝对路径

g

建立gpt分区表(默认为msdos分区表)

d

删除分区

n

新增分区

w

保存退出

q

不保存退出

p

打印分区表

t

确认分区格式编号

l

查询分区格式编号

o

建立 msdos 分区表

↑具体例子:略

2.系统服务,重启,关机,注销以及安全

查询selinux状态

getenforce

停用selinux

vim /etc/selinux/config

selinux 配置文件

/etc/selinux/config

↑具体例子:略

重启

reboot

关机(数字代表延迟多少分钟)

shutdown -h 数字

注销

exit

↑具体例子:

5分钟后重启

shutdown -h 5

systemctl

7.0或7.0以上版本linux的系统服务命令

语法格式:systemctl 动作 进程名

启动

statr

重启

restart

停止

stop

状态查询

status

开机自动关闭服务

enable

开机自动开启服务

disable

↑具体例子:

查询防火墙服务器状态

systemctl status firewalld

service

7.0以下版本linux的系统服务命令

语法格式:service 进程名 动作

启动

start

重启

restart

停止

stop

状态

status

↑具体例子:

查询防火墙服务器状态

service firewalld status

chkconfig

7.0以下版本linux的系统服务命令

语法格式:chkconfig 进程名 动作

开机自动关闭服务

off

开机自动开启服务

on

↑具体例子:

关闭防火墙服务

chkconfig firewalld off

3.显示目录与切换目录

ls

显示目录的列式

语法格式:ls 参数 目录的绝对/相对路径

参数 -a

显示目标目录下的所有文件,包括隐藏文件

参数 -R

递归显示目标目录下所有文件

参数 -d

显示目标目录以及其子目录

参数 -d X*

显示本目录下所有以“X”开头的文件

↑具体例子:

查询根目录下的全部文件

ls /

查询根目录下的全部文件,包括隐藏文件

ls -a /

递归查询/root目录

ls -R /root

查询根目录下的全部目录

ls -d /

查询本目录下全部以c开头的文件

ls -d c*

cd

切换目录

语法格式:cd 目录的绝对/相对路径

cd ..

回到上一级目录

cd -

回到上一次的目录

cd 绝对路径或者相对路径

切换到指定目录

↑具体例子:

跳转到根目录

cd /

跳转到mnt下的cdr

cd /mtn/cdr

4.历史记录与缓存

查看缓存中的历史命令

history

再次执行缓存中记录的命令

!编号数字

清空缓存

history -c

↑具体例子:

查询缓存

history

再次执行缓存中的17号命令

!17

5.创建与删除目录或文件

mkdir

创建目录

语法格式:mkdir 参数 目录或文件的绝对/相对路径

参数 -p

创建多层子目录

参数 -m 权限数字

创建一个目录并指定目录的权限

↑具体例子:

创建一个名叫abc的目录

mkdir abc

创建一个名叫abc的目录,并指定权限为622

mkdir -m 622 abc

创建一个名叫abc的目录,并在其下再建立一个123的子目录

mkdir -p abc/123

rm

删除目录或文件

语法格式:rm 参数 目录或文件的绝对/相对路径

参数 -f

删除文件,不需要确认

参数 -r

删除目录及子目录,需要确认

↑具体例子:

删除一个名叫abc的文件,且不需要确认

rm -f abc

删除一个名叫123的目录,且不需要确认

rm -rf 123

touch

更改文件访问时间,如果文件不存在,则会创建该文件

语法格式:touch 文件的绝对/相对路径

↑具体例子:

创建一个名叫123的文件

touch 123

echo

字符输出,加以输出重定向可以创建文件

语法格式:echo 字符 或 echo 字符 输出重定向 文件的绝对/相对路径

↑具体例子:

输出字符“123456789”到屏幕上

echo 123456789

创建一个名叫123的文件,并在其中输入字符“123456789”

echo 123456789 > f1

6.文件编辑,创建以及查看

vim

文档编辑器

语法格式:vim 选项 文件的绝对/相对路径

- b

编辑二进制文本

命令模式下 G

移动光标到文本末尾

命令模式下 gg

移动光标到文本开头

命令模式下 数字gg

移动光标到指定数字的行

命令模式下 yy

复制当前所在的一行

命令模式下 p

粘贴到下一行

命令模式下 u

撤销上一步操作,可以重复使用

命令模式下ctrl+r

取消撤销的操作

命令模式下 J

将下一行和当前行合并

命令模式下 %

配对光标选中的符号

命令模式下 .

重复上一次的操作

命令模式下 /关键字

查找目标

命令模式下 ZQ

不保存退出

命令模式下 ZZ

保存退出

命令模式下 i

进入插入模式

命令模式下 o

进入插入模式并把光标定在下一行

插入模式下 esc

退出插入模式并回到命令模式

命令模式下 :

进入末行模式

末行模式下 wq!

强制保存退出

末行模式下 q!

强制退出不保存

末行模式下 w!

强制保存,不退出

末行模式下 set nu

显示行号

末行模式下 set nonu

去掉行号

末行模式下 /关键字

查找目标

末行模式下 w 文件名或路径

保存到新的文件

↑具体例子:略

末行模式下替换

语法格式:范围 命令 /替换目标/新字符/参数

范围 %

所有的行

范围 $

文件最后一行

范围 .

光标所在的当前行

范围 数字,数字

从指定数字行到指定数字行

命令 s

查找

参数 g

替换所有目标

参数 i

忽略目标大小写

↑具体例子:

将文本文件中的“123”全部替换成“abc”

% s/123/456/g

将文本文件中的“ABC”和“abc”全部替换成“123”

% s/abc/123/gi

将文本文件中光标指定行的“123”全部替换成“abc”

. s/123/abc/g

将文本文件中光标指定行的第1个“123”替换成“abc”

. s/123/abc/

将文本文件中第11行和第22行的“123”全部替换成“abc”

11,22 s/123/abc/g

使系统内所有用户都遵从相同的vim设定

vi或vim或nano /etc/vimrc

使系统内指定用户遵从指定vim设定(文件可能需要创建)

vi或vim或nano /home/用户/.vimrc

↑具体例子:

使所有用户vim都自动开启行号

vim /etc/vimrc 最后一行加入set nu

使用户abc的vim自动开启行号

vim /home/abc/.vimrc 最后一行加入set nu

cat

文本查看工具

语法格式:cat 参数 文件的绝对/相对路径

↑具体例子:

查看一个叫123的文件

cat 123

less

分屏查看且支持回翻

语法格式:less 文件的绝对/相对路径 或 命令 | less

↑具体例子:

分屏显示123文件

less 123

head

文本查看工具

语法格式:head 参数 文件的绝对/相对路径 或 命令 | head 参数

参数 -n 数字

从正数第几行开始查看

↑具体例子:

从正数第4行开始查看名叫123的文件

head -n 4 123

将 df -h命令的输出结果从正数第2行开始查看

df -h | head -n 2

tail

文本查看工具

语法格式:tail 参数 文件的绝对/相对路径 或 命令 | tail 参数

参数 -n 数字

从文件倒数第几行查看

参数 -n +数字

去掉文件正数前几行开始查看

↑具体例子:

从倒数第4行开始查看名叫123的文件

tail -n 4 123

将 df -h命令的输出结果从倒数第2行开始查看

df -h | tail -n 2

去掉正数前3行开始查看名叫123的文件

tail -n +3 123

查看二进制文件

strings 文件的绝对/相对路径

查看文件类型

file 文件的绝对/相对路径

查看文件或目录的详细信息

stat 文件的绝对/相对路径

↑具体例子:

查看123文件的文件类型

file 123

查询/mnt下的f1文件的详细信息

sata /mnt/f1

7.复制,移动和链接

cp

复制目录或文件

语法格式:cp 参数 源文件相对/绝对路径 目标地相对/绝对路径

参数 -r

复制目录

参数 -p

复制文件以及权限

↑具体例子:

复制一个名叫123的文件到/mnt下

cp 123 /mnt

复制一个名叫123的目录到/mnt下

cp -r 123 /mnt

复制一个名叫123的目录到/mnt下,并复制权限

cp -rp 123 /mnt

mv

移动文件或目录

语法格式:mv 源文件相对/绝对路径 目标地相对/绝对路径

↑具体例子:

移动一个名叫123的文件到/mnt下,并改名叫abc

mv 123 /mnt/abc

ln

创建硬链接或软连接

语法格式:ln 参数 源文件相对/绝对路径 链接文件相对/绝对路径

参数 -s

软链接

参数 -f

创建链接时,会删除重复名称的文件

↑具体例子:

给文件123创建一个abc的软连接

ln -s 123 abc

给文件123创建一个abc的硬连接

ln 123 abc

再次给文件123创建一个abc的软连接,并删除之前的abc文件

ln -sf 123 abc

8.查找

whereis

快速查找,范围有限,只能查找2进制程序,文档和源码

语法格式:whereis 参数 关键字

参数 -b

只用于查找二进制文件

↑具体例子:

查找123文件

whereis 123

find

最强的查找工具,功能极度彪悍檎

语法格式:find 查找范围 参数 关键字

参数 -name

查找带有指定关键字的目标

参数 -size

查找指定大小的目标

参数 -links 数字

查找指定硬链接数的目标

参数 -name 目标 -exec 命令 {}\;

查找带有指定关键字的目标后直接执行命令

参数 -name 目标

-ok 命令 {}\;

查找带有指定关键字的目标后先确认再执行命令

参数 -user

查找指定用户下的目标

参数 -name 目标 -fstype 文件格式

在指定文件类型下查找带有指定关键字的目标

参数 -type 文件格式

查找指定文件类型的目标

参数 -perm 权限数字

查找指定权限数值的目标

↑具体例子:

在根目录下查找一个名叫123的目标

find / -name 123

在根目录下查找所有以.gz结尾的目标

find / -name *.gz

在根目录下查找大小为1024KB的目标

find / -size 1024K

在根目录下查找所有的软链接文件

find / -type l

在根目录下查找权限为777的目标

find / -perm 777

在根目录下查找到名为abc的目标后直接删除不确认

find / -name abc -exec rm -rf {}\;

9.字符管理

grep

通过正则表达式查找关键字所在的行

语法格式:grep 参数 关键字 目录或文件的绝对/相对路径 或 命令 | grep 参数 关键字

参数 -i

查询关键字所在的行,并忽略大小写

参数 -r

在指定目录下查询关键字所在的行

参数 -v

查询关键字所在的行,并取反

参数 -w

以单词为标准查询关键字所在的行

↑具体例子:

在文件123下查找关键字abc所在的行,并忽略大小写

grep -i abc 123

在/root目录下查找所有包含关键字abc所在的行

grep -r abc /root

将命令df -h 的输出结果去掉关键字abc并统计行数

df -h | grep -vc abc

awk

通过正则表达式查找关键字所在的行或者列

语法格式:awk 参数 关键字 文件的绝对/相对路径 或 命令 | awk 参数 关键字

参数 NR==数字

查询指定数字的行

参数‘/关键字/’

查询关键字所在的行

参数‘{print $数字}’

查询指定数字的列(标准分隔情况下)且可以查询多列

参数-F “分隔符”

用于非标准格式列的分隔符定义

↑具体例子:

查找文件123的第5行

awk NR==5 123

在文件123中查询关键字abc所在的行

awk /abc/ 123

将命令df -h 的输出结果取第4,7列查看

df -h | awk -F “分隔符” {print $4,$7}

sort

内容排序且默认按字母正序排序

语法格式:sort 参数 文件的绝对/相对路径 或 命令 | sort 参数

参数 -k 数字

选取指定列为基准进行排序

参数 -r

反序排序

参数 -n 数字

按数字基准进行排序

参数 -t “分隔符”

非标准列格式下定义分隔符

↑具体例子:

将文件123的内容以第4列的字母为基准正序排序

sort -t 分隔符 -k 4 123

将文件123的内容以第2列的数字为基准反序排序

sort -t 分隔符-nr -k 2 123

wc

语法格式:wc 参数 文件的绝对/相对路径 或 命令 | wc 参数

不加参数

统计行数,单词数,字节数

参数 -l

只统计行数

参数 -w

只统计单词数

参数 -c

只统计字节数

↑具体例子:

统计df -h 命令输出结果的行数

df -h | wc -l

sed

通过正则表达式完成关键字的过滤,截取,修改

语法格式:sed 参数 关键字/动作命令 文件的绝对/相对路径 或 命令 | sed 参数 关键字/动作命令

参数 -n

取消默认输出,只截取处理后的结果

参数 -i

重新定向到源文件

参数 -e

多点编辑源文件

动作命令d

代表删除

动作命令s

代表查找

动作命令g

代表替换

动作命令p

打印模式空间中的行

↑具体例子:

将文件123的内容截取第5行

sed -n 5 123

将文件123的内容截取第2,5行

sed -ne 2 -ne 5 123

将文件123的内容中的abc全部删除

sed -n s/abc/d 123

将文件123中的abc全部替换成000

sed -n s/abc/000/gp

查找文件123中含有关键字abc的行

sed -n /abc/p

10.lvm

pv

物理卷

添加pv

pvcretae 磁盘系统文件绝对路径

删除pv

pvremove 磁盘系统文件绝对路径

↑具体例子:

创建sdb和sdc的pv

pvcreate /dev/sdb /dev/sdc

创建sdb1和sdb2的pv

pvcreate /dev/sdb1 /dev/sdb2

删除sdb的pv

pvremove /dev/sdb

vg

卷组(pv的集合)

添加vg

vgcretae vg名 pv绝对路径

添加vg并指定pe大小

vgcretae -s 大小单位 vg名 pv绝对路径

参数 -s

指定pe大小,单位(K,M,G,T)

删除vg

vgremove vg名

移除vg中的指定pv

vgreduce vg名 pv绝对路径

添加pv到vg中(扩容)

vgextend vg名 pv绝对路径

↑具体例子:

添加一个名为raid且pe大小为1KB并含有pv:sdb sbc的vg

vgcreate -s 1K raid /dev/sd[b,c]

移除上述vg中的pv:sdb

vgreduce raid /dev/sdb

为上述vg添加一个pv:sdd

vgextand raid /dev/sdd

删除名为raid的vg

vgremove raid

lv

vg上的虚拟磁盘

在指定vg下添加指定大小的lv

lvcreate -L 大小单位 -n lv名 vg名

参数 -L

指定lv的大小,单位(K,M,G,T)

参数 -n

lv名

删除lv

lvremove lv绝对路径

添加指定大小空间到指定lv中

lvextend -L +数字单位 -fr lv绝对路径

将指定lv添加到指定大小

lvextend -L 数字单位 -fr lv绝对路径

参数 -L +数字单位

指定添加的空间大小,单位(M,G,T)

参数 -L 数字单位

指定要达到的空间大小,单位(M,G,T)

参数 -fr

将加入的新空间强行格式化到旧空间的格式

在指定vg下建立指定空间大小的条带lv

lvcreate -l 数字单位 -i 数字 -I 数字单位 -n lv名 vg名

参数 -n

lv名

参数 -l

条带lv的大小,单位(K,M,G,T)

参数 -i 数字

参与条带的pv数量

参数 -I 数字单位

条带块的大小,单位(K)

在指定vg下建立指定lv的镜像

lvconvert -m数字 lv绝对路径 pv绝对路径

参数 -m数字

镜像开关,0代表关闭,1代表开启

↑具体例子:

在一个名为raid的vg下创建一个大小为5GB的lv,lv名为linux

lvcreate -L 5G -n linux raid

将lv:linux扩容至20GB

lvextand -L 20G -fr /dev/raid/linux

将lv:linux扩容大小为5GB的空间

lvextand -L +5G -fr /dev/raid/linux

删除名为linux的lv

lvremove /dev/raid/linux

在一个名为raid的vg下创建一个大小为5GB,条带数量为3,条带块数大小为128K,名为windows的条带lv

lvcreat -l 5G -i 3 -I 128K -n windows raid

在一个名为raid的vg下,为一个名为linux的lv创建一个镜像,镜像调用pv空间为pv:sde

lvcreate -m1 /dev/raid/linux /dev/sde

11.软件包安装与卸载

查询指定软件的配置文件

rpm -qc 命令名

安装指定软件并自动安装依赖关系的软件

yum install 参数 命令名

yum 配置文件

/etc/yum/repos.d

参数-y

安装时不确认

升级指定软件

yum update 命令名 或 yum upgrade 命令名

查询指定软件的安装信息

yum info 命令名

查询系统内安装的全部软件

yum list

清除yum缓存

yum clean all

重新建立yum缓存

yum makecache

查找指定命令的安装包

yum search 命令名

↑具体例子:

查询系统内全部安装包

yum list

安装一个名为gpm的软件包

yun install -y gpm

将gpm软件包升级

yun update/upgrade gpm

查询ssh软件包安装信息

yum info ssh

查询ssh命令的配置文件

rpg -qc ssh

查询telnet命令的安装包

yum search telnet

yum源配置文件格式

格式:源配置文件名.repo

源文件名

[源文件名]

注释

name=注释

源路径

baseurl=file:///路径 或 http: 或 ftp:

是否开启源

enabled=1 或者0(1开启,0关闭)

gpg密匙检测

gpgcheck=0 或者 1(1开启,0关闭)

gpg路径

gpgkey=file:///(如果启用gpg监测,此处才添加gpg路径)

↑具体例子:

创建1个名为123的yum源配置文件,源文件名称为abc,注释为“linux”,源路径为http:///www.baidu.com,不开启gpg密匙检测,并且开启源文件

vim 123.repo

第一行[abc]

第二行name=linux

第三行baseurl=http:///www.baidu.com

第四行enabled=1

第五行gpgcheck=0

12.用户账户与组

/etc/passwd

用户信息

格式: 1:2:3:4:5:6:7 ,7列,用“:”分隔

1

账户名

2

密码

3

uid

4

gid

5

账户信息

6

用户家目录

7

使用的shell以及其所在路径

↑具体例子:略

/etc/shadow

用户密码

格式: 1:2:3:4:5:6:7:8:9,用“:”分割

1

账户名

2

密码

3

密码自新纪元开始到前一次修改密码的天数

4

距离下次修改密码的天数

5

密码最大有效时间

6

密码失效前多少天提示用户

7

密码最大宽限天数

8

帐号有效期

9

保留

↑具体例子:略

useradd或adduser

添加用户

语法格式:useradd 参数 用户名 或 adduser 参数 用户名

参数 -d

指定新用户的家目录

参数 -g

指定新用户的初始化组

参数 -G

指定新用户的其他组资格

参数 -s

指定新用户使用的shell

参数 -u

指定新用户的uid

↑具体例子:

创建一个名叫123的新用户,并且设定其家目录为/root123,且其初始化组为root,UID为10086

useradd  -d /root123 -g root -u 10086 123

passwd

修改密码

语法格式:passwd 参数 用户名

-d

清空密码

↑具体例子:

为123用户设定密码,密码为123456

passwd 123

123456

123456

将用户123的密码清空

passwd -d 123

usermod

更改用户

语法格式:usermod 参数 用户名

-aG

添加到指定的标准组

-l

改名 先写新用户名 后写旧用户名

-dm

移动用户主目录到新的目录

↑具体例子:

为用户123改名为abc

usermod -l abc 123

userdel

删除用户

语法格式:userdel 参数 用户名

-r

清除用户的所有数据

↑具体例子:

删除用户abc并清空其所有数据

userdel -r abc

显示当前登陆的用户

w

显示当前登陆的用户以及信息

who

显示当前使用账户信息

whoami

显示当前账户最后登陆时间

last

显示所有用户最后的登陆时间

lastlog

查询当前主机名

hostname

↑具体例子:略

etc/group

组信息

格式: 1:2:3:4,用“:”分隔

1

组名

2

组密码

3

gid

4

组成员

↑具体例子:略

etc/gshadow

组密码

格式: 1:2:3:4,用“:”分隔

1

组名

2

组密码

3

组管理员

4

组成员资格

↑具体例子:略

groupadd

添加组

语法格式:groupadd 参数 组名

-g

指定gid

↑具体例子:

创建一个名为abc的组,并指定gid为10086

groupadd -g 10086 abc

groupmod

修改组

语法格式:groupmod 参数 组名

-n

改组名 先写新组名 再写旧组名

↑具体例子:

将组abc改名为123

groupmod -n 123 abc

groupdel

删除组

语法格式:groupdel 参数 组名

↑具体例子:

删除组123

groupdel 123

gpasswd

改组密码

语法格式:gpasswd 参数 组名

↑具体例子:

为组abc创建密码123456

gpasswd abc

123456

123456

newgroup

临时切换组

语法格式:newgroup 新组名

↑具体例子:

将当前用户的私有组临时切换到组abc

newgroup abc

13.权限管理

chmod

更改文件或目录的权限

语法格式:chmod 参数 权限数字 目标文件/目录的绝对/相对路径

-R

递归修改

↑具体例子:

将目录123以及其下的子目录abc的权限修改为777

chmod -R 777 /123

chown

更改目录或文件的属组以及属主

语法格式:chown 参数 属主/.属组/属主:属组 目标文件/目录的绝对/相对路径

-R

递归修改

↑具体例子:

将目录123以及其下的子目录abc的属主属组从123:456改成abc:efg

chown -R abc:efg /123

lsattr

显示文件或目录的隐藏属性

语法格式:lsattr 参数 目标文件/目录的绝对/相对路径

-aR

递归显示所有目录或文件的隐藏属性

↑具体例子:

显示目录123以及其下的子目录abc的隐藏属性

lsattr -aR /123

chattr

修改文件或目录的隐藏属性

语法格式:chattr 参数 运算符 属性 目标文件/目录的绝对/相对路径

-R

递归修改所有目录或文件的隐藏属性

运算符

+,-,=

属性i

只读

属性a

可追加内容,不可修改,不可删除,不可改名

↑具体例子:

将目录123以及其下的子目录abc的隐藏属性修改为只读

chattr -R + i /123

切换用户并使用新用户的shell

su - 切换的新用户名

切换用户并使用原用户的shell

su 切换的新用户名

↑具体例子:

从管理员切换到用户123并使用123的shell

su - 123

从管理员切换到用户123并使用root的shell

su 123

set 位

特殊的权限标识

格式: set位 权限数字

suid

对可执行程序设置

权限字母表示为s

意义为使其他用户以属主的身份执行该文件

权限数字表示为4

sgid

对可执行程序设置

权限字母表示为s

意义为使其他用户以属组的身份执行该文件

权限数字表示为2

sticky

对目录设置

权限字母表示为t

意义为使目录仅有属主可以操作

权限数字表示为1

无set位权限

数字表示为0

↑具体例子:

对文件123的权限777设置suid权限

chmod 4777 /123

对文件123的权限777设置sgid权限

chmod 2777 /123

对目录123的权限777设置sticky权限

chmod 1777 /123

sudo

使非root用户以root身份执行命令

格式:普通用户名 当前主机名=命令的绝对路径

配置文件

/etc/sudoers

修改配置文件

visudo -f /etc/sudoers(需要root才可以修改)

↑具体例子:

使用户123可以cat查看/etc/shadow且只可以查看/etc/shadow

visudo -f /etc/sudoers

在## Allows people in group wheel to run all commands下添加一行

123 admin=/usr/bin/cat /etc/shadow

acl

访问控制列表

语法格式:setfacl 参数 u:用户名:权限/g:组名:权限数字 目标文件/目录的绝对/相对路径

查看目标acl信息

getfacl 目标

参数 -m

对目标设定acl(必填参数)

参数 -R

对目标递归设定acl(必须写在最前)

参数 -d

使目标下所有子目录以及文件默认继承目标acl设定

参数 -x

删除目标的指定acl设定

参数 -b

完全删除目标的所有acl设定

↑具体例子:

使用户123可以查看root用户的家目录以及其子目录

setfacl -Rm u:123:7 /root

查看文件123的acl信息

getfacl 123

14.打包,压缩与备份

tar

文件打包

语法格式:tar 参数 包名.tar 打包目标 追加动作

参数 c

新建包文件

参数 f

使用归档文件(必填参数)

参数 x

解包

参数 t

查看包内文件

参数 -C

指定解包路径

参数 A

将包文件追加到另一个包文件

参数 r

将文件追加到包文件

追加动作 --remove-files

打包并删除源文件

追加动作 --get

提取包内指定文件

追加动作 --delete

删除包内指定文件

参数 z

打包并压缩,指定压缩格式为gzip

参数 j

打包并压缩,指定压缩格式为bzip2

参数 J

打包并压缩,指定压缩格式为xz

↑具体例子:

把文件f1,f2,f3打包,包名为abc,并在打包后删除源文件

tar cf abc.tar f1 f2 f3 --remove-files

把文件f4追加到包abc.tar中

tar fr abc.tar f4

将包文件abc.tar解包到/root下

tar xf abc.tar -C /root

把包文件123.tar到包abc.tar中

tar fA abc.tar 123.tar

把包文件abc.tar中的f2解包

tar fx abc.tar f2 --get

把包文件abc.tar中的f1删除

tar f abc.tar f1 --delete

将文件f1 f2 f3打包并使用gzip压缩,压缩包名abc

tar cfz abc.tar.gz f1 f2 f3

将xz格式压缩包123解压缩并解包

tar xfJ 123.tar.xz

gzip格式压缩

gzip 参数 目标

gzip 格式解压缩

gunzip 参数 目标

bzip2 格式压缩

bzip2 参数 目标

bzip2 格式解压缩

bunzip2 参数 目标

xz 格式压缩

xz 参数 目标

xz 格式解压缩

unxz 参数 目标

zip 格式压缩

zip 参数 包文件名 目标

参数 -r

压缩目录

zip 格式解压缩

unzip 目标

↑具体例子:

将文件f1以bzip2格式压缩

bzip2 f1

将gzip格式压缩包123解压缩

gunzip 123.gz

将目录/root压缩

zip -r root.zip /root

15.系统备份

完全备份

将数据整体全部备份

增量备份

仅备份和上次备份有变化的数据

差异备份

仅备份和上次完全备份数据有变化的数据

↑具体例子:略

dump

文件备份

语法格式:dump 备份级别数字参数 存储备份文件的设备文件绝对路径 需要备份的文件绝对/相对路径

参数 -W

显示备份信息

参数 -f

指定用于备份的设备(必备参数)

参数 -u

备份文件的同时记录备份的时间信息

备份级别数字

用于确定备份方式,从0到9

↑具体例子:

将目录/mnt完全备份到硬盘sdc上,同时记录备份时间信息

dump -0uf /dev/sdc /mnt

将目录/mnt差异备份到硬盘sdc上,同时记录备份时间信息

dump -1uf /dev/sdc /mnt

将目录/mnt增量备份到硬盘sdc上,同时记录备份时间信息

dump -2uf /dev/sdc /mnt

显示备份信息

dump -W

restore

文件还原

语法格式:restore 参数 存储备份文件的设备文件绝对路径 需要还原的文件名

参数 -f

指定用于还原的备份设备(必备参数)

参数 -r

指定还原操作

参数 -x

还原备份中的指定文件

参数 -t

显示备份中的具体文件

↑具体例子:

查看备份文件

restore -tf /dev/sdc

恢复文件f1

restore -frx /dev/sdc f1

恢复所有备份文件

restore -fr /dev/sdc

16.系统资源管理

du

查询文件或目录使用磁盘空间情况

语法格式:du 参数 目标文件/目录的绝对/相对路径

参数 -h

人性化显示大小单位

参数 -s

只显示目录占用空间的总和

↑具体例子:

查询目录/root占用的磁盘空间信息并人性化显示

du -h /root

查询目录/root占用的磁盘空间信息并只显示目录占用空间的总和

du -hs /root

df

查询分区使用情况

语法格式:df 选项 参数

参数 -h

人性化显示大小单位

参数 -i

查询i节点使用情况

参数 -t

指定格式化类型

参数 -T

显示所有分区文件类型

↑具体例子:

显示所有分区的格式化类型

df -T

显示所有分区使用情况并人性化显示

df -h

显示所有ext4分区使用情况并人性化显示

df -h -t ext4

显示所有分区i节点使用情况并人性化显示

df -ih

ps

查看进程详情

语法格式:ps 参数

参数 e

显示所有进程

参数 f

列式完整信息

参数 l

显示进程所属者,进程号和父进程号

参数 a

显示当前终端下所有用户的所有进程

参数 x

显示非当前终端下的所有进程

参数 u

显示进程的uid或者用户

↑具体例子:

显示当前用户的所有进程以及其所有者,进程号和父进程号并列式完整信息

ps elf

显示当前终端下所有用户的进程并显示进程的uid

ps au

显示该系统下所有用户以及所有终端的全部进程并显示进程的uid

ps aux

kill

通过pid或jobs编号控制进程

语法格式:kill 参数 pid 或 kill 参数 %数字

参数 -l

查询所有的kill信号

参数 -9

信号9,代表强制删除进程

参数 %数字

删除进程,数字代表jobs编号数字

↑具体例子:

强制删除uid号为110的进程

kill -9 110

强制删除jobs编号为3的进程

kill -9 %3

top

任务管理器

内置命令 q

退出top

内置命令 空格

立即刷新结果

内置命令 s

设置刷新时间

内置命令 M

根据内存使用情况排序

内置命令 P

根据CPU使用情况排序

内置命令 b

高亮显示

内置命令 x

开启/关闭 高亮序排列(需要先开启b)

内置命令 shift >

高亮列右移

内置命令 shift <

高亮列左移

↑具体例子:略

前后台以及挂机

后台运行

命令 & 或 bg 命令

查看后台情况

jobs

挂起或后台进程掉回前台

fg 数字编号(jobs编号)

挂起

命令 ctrl+z

挂起掉回后台

bg 数字编号(jobs编号)

↑具体例子:

把ping命令的进程切换到后台运行

bg ping 10.195.0.1 或者ping 10.195.0.1 &

把后台的ping进程掉回前台运行

fg 2

把ping命令的进程挂起

ping 10.195.0.50 ctrl+z

把挂起的ping进程掉回后台运行

bg 2

查询内存使用情况并人性化显示

free -h

查询cpu使用情况

sar 数字(刷新间隔)数字(显示次数)

显示被进程打开的文件

lsof

显示系统不间断运行时间以及1,5,15分钟时的负载情况

uptime

↑具体例子:略

17.计划任务

at

一次性的计划任务

格式:

at 参数(日期MMDDYY)(时间HH:MM)

at > 命令

ctrl+d 结束

查看qt队列

atq 或 /var/spool/at

执行at队列中的任务

at -c 数字编号(atq队列编号)

删除at队列中的任务

atrm 数字编号(atq队列编号)

↑具体例子:

编辑计划任务,在1111年1月1日1点1分重启设备

at 01011111 01:01

at > reboot

ctrl+d

执行at队列中的第3条任务

at -c 3

删除at队列中的第7条任务

atrm 7

at 限制文件与规则

/etc/at.deny 和 /etc/at.allow

当2个文件都在时,看allow文件,只有文件中有的用户才可以执行at命令

当只有deny文件在时,看deny文件,只有文件中没有的用户才可以执行at命令

如果2个文件都不在,则只有root用户才可以执行at命令

↑具体例子:略

cron

周期性的计划任务

语法格式:crontab 参数

参数 -e

编辑计划任务

参数 -l

查看计划任务

参数 -r

删除计划任务

参数 -u

指定用户名的计划任务(仅root用户可以操作)

编辑格式

星期

命令的绝对路径

↑具体例子:

为当前用户创建计划任务在每天0点0分重启系统

crontab -e

0 0 * * * /usr/sbin/reboot

删除当前用户的第4个计划任务

crontab -r 4

为用户abc创建计划任务,在每周1的0点0分重启系统

crontab -e -u abc

0 0 * * 1 /usr/sbin/reboot

cron 限制文件与规则

/etc/cron.deny 和 /etc/cron.allow

当2个文件都在时,看allow文件,只有文件中有的用户才可以执行cron命令

当只有deny文件在时,看deny文件,只有文件中没有的用户才可以执行cron命令

如果2个文件都不在,则只有root用户才可以执行crom命令

↑具体例子:略

18.shell

系统的变量控制文件

/etc/bashrc和/etc/profile

用户的变量控制文件

/用户家目录/.bashrc和/用户家目录/.bash-profile

优先选择用户的环境变量控制文件参数

查看所有环境变量

set

查看系统环境变量

env

取消指定环境变量值

unset 变量名

本级shell声明环境变量

set 变量名

全局shell声明环境变量

export 变量名

临时修改环境变量

变量名 =

永久修改环境变量

vim /etc/profile 或 /etc/bashrc

↑具体例子:

在本级shell声明变量a

set a

在全局shell声明变量a

export a

取消变量a的赋值

unset a

临时修改变量a的赋值为123

a=123

判断语句

if

语法格式:如下

if [ 条件1 ];

如果为真时

then

命令

内容

elif [ 条件2 ];

如果条件1不为真且条件2为真时(可重复多次判断)

then

命令

内容

else;

如果所有条件都不为真时

命令

内容

fi

结束标志

↑具体例子:

利用if语句编辑脚本实现:

当输入aaa时显示123

当输入bbb时显示456

当输入为其他时显示789

#!/bin/bash

echo “请输入aaa或bbb”

read a

if [ $a = aaa ];

then

echo “123”

elif [ $a = bbb ];

then

echo “456”

else

echo “789”

fi

判断语句

case

语法格式:如下

case 变量名 in

在变量中选择多组匹配值

匹配1)

匹配值1时

命令

内容

;;

结束

匹配2)

匹配值2时(可匹配所有变量的值)

命令

内容

;;

结束

不匹配)

所有值都不匹配时

命令

内容

;;

结束

esac

结束标志

↑具体例子:

利用case语句编辑脚本实现:

当输入1的时候显示aaa

当输入2的时候显示bbb

当输入3的时候显示ccc

当输出其他的时候显示no

#!/bin/bash

echo “请输入1或2或3”

read a

case $a in

1)

echo “aaa”

;;

2)

echo “bbb”

;;

3)

echo “ccc”

;;

*)

echo “no”

esac

循环语句

while

语法格式:如下

while [ 条件 ]

条件为真时,开始循环,条件为假时,停止循环

do

命令

内容

done

结束标识

↑具体例子:

利用while语句编辑脚本实现:

只有当输入小于3的整数时显示yes

#!/bin/bash

echo “请输入一个小于3的整数”

read a

while ((a<3))

do

ehco “yes”

break

done

循环语句

until

语法格式:如下

until [ 条件 ]

条件为假时,开始循环,条件为真时,停止循环

do

命令

内容

done

结束标识

↑具体例子:

利用until语句编辑脚本实现:

只有当输入小于3的整数时显示yes

#!/bin/bash

echo “请输入一个小于3的整数”

read a

until ((a>=3))

do

ehco “yes”

break

done

循环语句

for

语法格式:如下

for 变量名 in 关键字

在变量中选取指定关键字依次匹配,全部关键字匹配完后,停止循环

do

命令

内容

done

结束标识

↑具体例子:

利用for语句编辑脚本实现:

输入任意3个字符再把3个字符后加hello并显示

#!bin/bash

echo “请输入任意第一个字符”

read a

echo “请输入任意第二个字符”

read b

echo “请输入任意第三个字符”

read c

for b in $a $b $c

do

ehco $b hello

done

循环语句

select

语法格式:如下

select 变量名 in 关键字

在变量中选取指定关键字做交互菜单选择匹配,一般嵌套case使用

do

命令

内容

done

结束标识

↑具体例子:

利用select语句嵌套case语句并搭配while语句编辑脚本实现:

输入1时显示a

输入2时显示b

输入3时显示c

输入4时退出

#!/bin/bash

b=1

while [ $b -eq 1 ]

do

select a in 1 2 3 4

do

case $a in

1)

echo “a”

2)

echo “b”

3)

echo “c”

4)

b=2

esac

break

done

done

特殊循环语句:read循环

s

仅针对标准列格式文件循环处理

语法格式:如下

while read 变量名

指定一个变量,代表一次读取一行,读取全部的列,若指定多个变量,则代表一次读取一行,读取指定的列

do

命令

内容

done < 目标绝对路径

固定格式,代表需要处理的目标

↑具体例子:

利用特殊语句read循环将当前目录下的文件f1的所有内容逐行显示

#!/bin/bash

while read a

do

echo $a

done <./f1

利用特殊语句read循环将当前目录下的文件f1的第1 3 5列内容逐行显示

#!/bin/bash

while read a b c d e f

do

echo $a,$c,$e

done <./f1

特殊语句:

sleep 数字单位

代表延迟多久执行一次,单位s m h d n,对应秒 分 小时 天和具体时间

read 参数 变量名

将键盘输入内容赋值给制定变量

参数 -n 数字

输入的字符数最多为指定数字

参数 -s

输入时屏幕不显示输入内容

双小括号 ((   ))

代表其中的值做数学运算,括号内的变量不需要加$也可以提取值

变量名=$((   ))

给变量赋值,其数值为数学计算结果

${变量名%%字符*}

删除第一个“字符”右侧的所有值

${变量名##*字符}

删除最后一个“字符”左侧的所有值

break

自动跳出循环

bash 脚本名

使用/测试 脚本

↑具体例子:略

控制语句:

字符串 = 字符串

字符串等于时为真

字符串 ! = 字符串

字符串不等于时为真

-z 字符串

字符串长度为0时为真

-n 字符串

字符串长度不为0时为真

-e 文件绝对路径

文件存在时为真

-d 目录绝对路径

目录存在时为真

-eq 数字

数值等于时为真

-ne 数字

数值不等于时为真

-gt 数字

数值大于时为真

-ge 数字

数值大于等于时为真

-lt 数字

数值小于时为真

-le 数字

数值小于等于时为真

↑具体例子:略

19.系统启动与排故

grubz中切换启动级别

开机

选择需要启动的系统

按e

找到linux16语句

在语句末尾空格并添加systemd.unit=resuce.targer

ctrl+x退出

重启

进入安全模式

切换运行级别

systemctl set-default-......

reboot重启

↑具体例子:略

破解root密码

开机

选择需要启动的系统

按e

找到linux16语句中的ro

把ro改成rwinit=/sysroot/bin/sh

或者语句末尾空格加rd.break

ctrl+x退出

输入mount -o remount,rw/sysroot切换到/sysroot

输入chroot/sysroot/bin/bash     注1:

passwd 输入新密码

exit退出

reboot重启

注1:如果selinux未关闭

则需要在/sysroot下创建.autorelabel

touch /.autorelabel

↑具体例子:略

为grub加密(明文)

修改 /etc/grub.d/00_header

在文件末位新起一行开始写入

cat << EOF

set superusers=“abc”

password abc 123456     注1:

EOF

退出编辑

再重新生成grub.cfg

输入grub2-mkconfig >/boot/grub2/grub.cfg

注1:如果需要密文加密

则生成密文密码grub2-mkpasswd-pbkdf2

再将生成的密文粘贴到密码处

↑具体例子:略

猜你喜欢

转载自blog.csdn.net/m0_72264240/article/details/130280408