linux基础

相关文章:

linux小题
客制化linux
linux_shell编程
linux基础

文件系统

/bin 存放着经常使用的命令
/sbin存放管理员使用的系统管理程序
/home存放每一个用户的目录
/root管理员的主目录
/lib系统开机所需要的动态链接库
/lost+found一般是空的,存放系统非法关机的资源
/etc各种配置/usr存放很多应用程序和文件
/boot启动linux的一些核心文件
/proc虚拟目录,系统内存的映射【不能动】
/srv存放系统启动后的一些数据【不能动】
/sys存放2.6内核新出现的文件【不能动】
/tmp临时文件/dev设备管理器
/media系统自动识别的设备
/mnt临时挂载系统
/opt系统安装软件
/usr/local 給另一个主机安装软件的目录*
/var不断扩充的东西
/selinux安全子系统,控制程序访问特定的文件

特殊字符

&.在Linux中,&符号是一个特殊字符,用于将命令放入后台执行。当在命令末尾加上&符号时,该命令将在后台运行,而不会阻塞终端。这意味着你可以继续在终端上输入其他命令,而不必等待该命令执行完毕。

nohup命令
在命令的末尾加个&符号后,程序可以在后台运行,但是一旦当前终端关闭(即退出当前帐户),该程序就会停止运行。那假如说我们想要退出当前终端,但又想让程序在后台运行,在这种情况下,我们就可以使用nohup命令。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:

1
>nohup ./test &

; 符号:用于将多个命令放在同一行上执行,每个命令之间用分号分隔。例如:
command1 ; command2 ; command3

&& 符号:用于将多个命令放在同一行上执行,但只有前一个命令执行成功后才会执行下一个命令。例如:
command1 && command2 && command3

|| 符号:用于将多个命令放在同一行上执行,但只有前一个命令执行失败后才会执行下一个命令。例如:
command1 || command2 || command3

| 符号:用于将一个命令的输出作为另一个命令的输入。例如:
command1 | command2
这将把command1的输出传递给command2作为输入。这个符号也被称为管道符号。

有一些特殊命令不接受管道:cp rm .通过xargs进行传递

[sunnyli@sunnyli ~]$ touch 1.txt [sunnyli@sunnyli ~]$ ll | grep 1.txt -rw-rw-r--. 1 sunnyli sunnyli 0 2月 25 20:23 1.txt [sunnyli@sunnyli ~]$ echo 1.txt |xargs rm [sunnyli@sunnyli ~]$ ll | grep 1.txt

vim

vim

命令模式

gg 回到第一行
G 最后一行
n+enter n 为数字。光标向下移动 n 行
dd 剪切一行yy 复制一行
/关键字 搜索
方向键+数字 实现行或者字符的跳转

p粘贴

v进入可视模式,可以通过光标进行选取范围

输入模式

iIaAoOrR任意一个进入输入模式

命令行模式

:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!

:set paste 粘贴模式

linux开机重启注销

shutdown -h now 立刻关机
shutdown -h 1 1分钟后关机
shutdown -r now 立刻重启
reboot 重启
sync 同步内存到磁盘

运行级别

init [0123456]
0 :关机
1:单用户(找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

帮助

man 不懂得命令 例如:man ls

目录和文件

1.显示当前所在路径

pwd (显示的是绝对路径)

2.显示该目录的文件内容

ls (隐藏文件以.开头)
ls -a 显示所有文件,包括隐藏
ls -l 列表显示
ls -h 用常规形式显示

3.cd命令

cd ~ 回到家目录
cd .. 回到上一层

4.新建目录

mkdir 目录名 (不能创建多级目录)
mkdir -p 目录名 (创建多级目录)

5.删除目录

rmdir 只能删除空目录
rm options name

参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。

6.统计字数

wc [-clw][–help][–version][文件…]
参数:
-c或–bytes或–chars 只显示Bytes数。
-l或–lines 显示行数。
-w或–words 只显示字数。
–help 在线帮助。
–version 显示版本信息。

7.复制

cp 文件名/目录 目标路径
\cp 文件名/目录 目标路径 (强制覆盖不提醒)
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
$ cp –r test/ newtest

8.移动

mv 文件名 目标路径
(新旧路径相同的话是重命名)

将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/runoob/* .

6.创建空文件

touch 文件名

9.查看文件

cat 文件名*
cat 文件名 |more
*more 文件

Enter 向下n行,需要定义。默认为1行
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
V 调用vi编辑器
q 退出more
less 文件
less
tail 文件(默认10行)用来实时追踪
head 文件 (默认10行)

10.输入

echo 选项 文字

11.追加和重定向
重定向
12.软链接

ln -s 文件名 软连接名

树状显示目录 /opt

tree /opt (如果没有安装使用 yum Install tree 安装)

13.硬链接

ln 源文件名称 链接文件名称

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建

不同的文件系统指的是不同的磁盘分区或不同的文件系统类型。在Linux中,每个磁盘分区或文件系统类型都有自己的根目录,因此不同的文件系统之间是可以存在多个根目录的。当硬链接创建在不同的文件系统之间时,它会自动转换为软链接,因为硬链接只能在同一个文件系统中才能工作。软链接可以跨越不同的文件系统,因此在这种情况下,系统会将硬链接自动转换为软链接,以保证链接的正确性。
一个计算机上可能会有多个硬盘或分区,每个硬盘或分区都可以格式化为不同的文件系统类型,如ext4、NTFS等。每个文件系统类型都有自己的根目录,例如,/是ext4文件系统的根目录,而D:/是NTFS文件系统的根目录。因此,在Linux系统中可以存在多个根目录,每个根目录都代表了不同的文件系统。

权限
less
less
less

更改文件权限

chmod
less
less
如果想要操作一个文件,必须要先可以访问文件所在的文件夹

修改文件所有者

chown 用户名 文件名

修改文件目录所在组

chgrp 新组 文件

setfacl

setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。

1
2
3
4
5
6
7
8
setfacl 参数
-m:设置后续acl参数
setfacl -m 对象:对象名:权限 文件
-x:删除后续acl参数
-b:删除全部的acl参数
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-d:设置默认acl

getfacl

getfacl 文件

特殊位:suid进行提权,临时获得属于者权限

chmod u+s cat 进行提权

chattr 文件属性

a:让文件或目录仅供附加用途。b:不更新文件或目录的最后存取时间。c:将文件或目录压缩后存放。d:将文件或目录排除在倾倒操作之外。i:不得任意更动文件或目录。s:保密性删除文件或目录。S:即时更新文件或目录。u:预防意外删除。

用chattr命令防止系统中某个关键文件被修改:

1
chattr +i /etc/resolv.conf

umask

 在 Linux 系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask 命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw-,创建目录的默认权限 drwxrwxrwx ,而 umask 值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。

 umask 默认值一般都是 0002,其中第一个 0 与特殊权限有关,可以暂时不用理会,后三位 002 则与普通权限(rwx)有关,其中 002 中第一个 0 与用户(user)权限有关,表示从用户权限减 0,也就是权限不变,所以文件的创建者的权限是默认权限(rw),第二个 0 与组权限(group)有关,表示从组的权限减 0,所以群组的权限也保持默认权限(rw),最后一位 2 则与系统中其他用户(others)的权限有关,由于 w=2,所以需要从其他用户默认权限(rw)减去 2,也就是去掉写( w )权限,则其他人的权限为 rw - w = r,则创建文件的最终默认权限为 -rw-rw-r– 。

历史命令

history

history
案例1:显示所有的历史命令
history 10
案例2:显示最近使用过的10个指
!5
案例3:执行历史编号为5的指令

时间和日期

查询时间

date
date +%Y-%m-%d
date “+%Y-%m-%d %H:%M:%S”(不加引号的话,中间的空格会让系统认为是两段,报错)

设置时间

date -s “2022-5-31 12:24:45”

显示日历

cal

实时查看

watch -n1 ‘more log.txt’

每隔1s查看一次log

查找和定位

find 范围 选项
find
locate 文件名(注意:执行之前需要先执行updatedb)
find
which 指令名 该指令用来查找指令在什么地方
grep 参数 需要查找的字符串,查找的字符串所在的文件(一般需要与其他配合)
-i忽略大小写 -n显示行号 -v 排除此关键字

find

awk

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

1
2
3
awk [选项参数] 'script' var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)
  • -F fs or –field-separator fs
    指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。 默认分隔符为空格
  • -v var=value or –asign var=value
    赋值一个用户定义变量。
  • -f scripfile or –file scriptfile
    从脚本文件中读取awk命令。

2 this is a test
3 Do you like awk
This’s a test
10 There are orange,apple,mongo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 每行按空格或TAB分割,输出文本中的1、4项,单引号为行匹配
$ awk '{print $1,$4}' log.txt
---------------------------------------------
2 a
3 like
This's
10 orange,apple,mongo

# 使用","分割
$ awk -F, '{print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Do you like awk
This's a test
10 There are orange apple
# 或者使用内建变量
$ awk 'BEGIN{FS=","} {print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Do you like awk
This's a test
10 There are orange apple
# 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
$ awk -F '[ ,]' '{print $1,$2,$5}' log.txt
---------------------------------------------
2 this test
3 Are awk
This's a
10 There apple

压缩和解压

压缩:gzip 文件名
解压:gunzip 文件名.gz
压缩:zip [选项] 压缩成什么名字 压缩的文件
解压 unzip 解压的地方 解压的文件

find
tar

c:create f:filename z:gz压缩

find

Linux用户管理

etc/passwd文件

image-20240223171747789

su 切换为root用户
logout 用户注销登录(root用户会降级为普通用户)
who am i 查看当前用户

id查看当前用户信息

添加用户

useradd 选项 用户名
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名:指定新账号的登录名。

useradd –d /home/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。
useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

删除用户

userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。

userdel -r sam
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

更改用户

usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

usermod -s /bin/ksh -d /home/z –g developer sam

更改密码

passwd 选项 用户名

增加一个新的用户组

groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID)。

groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

删除一个已有的用户组

groupdel 用户组

/etc/passwd文件是用户管理工作涉及的最重要的一个文件。

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
这个文件对所有用户都是可读的。
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:sam:x:200:50:Sam san:/home/sam:/bin/sh
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

查看用户

cat /etc/passwd

查看指定用户信息

id 用户名

查看用户组

cat /etc/group
“用户名”是代表用户账号的字符串。
通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。
为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
“口令”一些系统中,存放着加密后的用户口令字。
虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
“用户标识号”是一个整数,系统内部用它来标识用户。
一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。
通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。
“组标识号”字段记录的是用户所属的用户组。
它对应着/etc/group文件中的一条记录。
“注释性描述”字段记录着用户的一些个人情况。
例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
“主目录”,也就是用户的起始工作目录。
它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
Shell是用户与Linux系统之间的接口。
Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。
系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。
用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。
利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。
系统中有一类用户称为伪用户(pseudo users)。
这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
常见的伪用户如下所示:
伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用

任务调度

crontab

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab [-u username]    //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
,散列数字

实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart

corn

at

at [选项] [时间]
-m 当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。
-c 工作标识号 显示该 at 工作的实际内容。
-t 时间 在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。
-d 删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。
-l 列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。
-f 脚本文件 指定所要提交的脚本文件。

HH:MM 比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight) 代表 12:00 AM(也就是 00:00)。
Noon(noon) 代表 12:00 PM(相当于 12:00)。
Teatime(teatime) 代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份 比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY 比如 011518 表示 2018 年 1 月 15 号。
now+时间 以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。

ctrl+d保存退出 ctrl+backspace 删除

at 02:00 2013-07-26
at> /bin/sync
at> /sbin/shutdown -h now
at>
job 9 at 2013-07-26 02:00
在指定的时间关机。在一个at任务中是可以执行多个系统命令的
atq
9 2013-07-26 02:00 a root
说明root用户有一个at任务在2013年7月26日02:00执行,工作号是9
atrm [工作号]
删除指定的at任务
atrm 9
atq
删除9号at任务,再查询就没有at任务存在了

Linux分区

分区
分区

多个物理磁盘联合为一个逻辑磁盘

image-20240226094810982

查看挂载

lsblk 或者 lsblk -f

查询磁盘使用情况

df -h

查看指定目录占用

du -h
查询指定目录的磁盘占用情况,默认为当前目录-S指定目录占用大小汇总
-h带计量单位
-a含文件
–max-depth=1 子目录深度-列出明细的同时,增加汇总值

dns

dns

Linux进程

ps [options] [–help]
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
ps -e 会列出系统中所有的进程,包括系统进程和用户进程,但不包括无控制终端的进程。
ps -a 会列出当前终端下的所有进程,包括已经停止或者已经完成的进程。
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程

au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: 本进程号pid
ppid: 子进程号
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

kill
kill
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

-l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-s <信息名称或编号>  指定要送出的信息。
[程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
使用 kill -l 命令列出所有可用信号。
最常用的信号是:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。

杀死进程
kill 12345
强制杀死进程
kill -KILL 123456
发送SIGHUP信号,可以使用一下信号
kill -HUP pid
彻底杀死进程
kill -9 123456

**&后台执行程序 jobs查询后台程序 kill %1停止后台序号为1的程序 **

pstree 进程树

服务
service
service

利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]
参数说明:
-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示路由缓存。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistics 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定”-A unix”参数相同。
–ip或–inet 此参数的效果和指定”-A inet”参数相同。

运行级别

systemctl命令
sysemctl

firewall

打开端口::firewall-cmd –permanent –add-port=端口号/协议
netstat -anp | more
关闭端口:firewall-cmd –permanent –remove-port=端口号/协议
重新载入:firewall-cmd –reload
查询端口是否开放:firewall-cmd –permanent –query-port=端口号/协议
查询开放的端口:firewall-cmd –zone=public –list-ports

top
top

free查看内存

free -m awk ‘NR==2 {print $NF}

  • free 命令用于显示系统内存的使用情况和交换空间的使用情况。

  • -m 选项表示以兆字节(MB)为单位显示内存使用情况。

  • awk 'NR==2 {print $NF}'
    
    1
    2
    3

    是一个用 AWK 编写的脚本,用于处理

    free
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    命令的输出。在这个脚本中:

    - `NR==2` 表示选择 `free` 输出的第二行。
    - `{print $NF}` 打印该行的最后一个字段,也就是内存使用情况的值(以兆字节为单位)。





    free -m | awk 'NR==1 {print $1}'

它会打印出free命令输出的第一行的第一个字段,通常是表头中的标签,例如”total”或”Mem”。

rpm和yum

rpm
rpm
rpm
rpm

日志

保存在/var/log目录下
log

尝试使用错误的密码登录系统 查看/var/log/secure文件
log

日志管理服务rsyslogd
CentOS7.6日志服务是rsyslogd ,CentOS6.x日志服务是syslogd 。rsyslogd 功能更强大.rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。
查询Linux 中的rsyslogd 服务是否启动

ps -aux | grep “rsyslog” | grep -v “grep”

查询rsyslogd服务的自启动状态

systemctl list-unit-files | grep rsyslog

log
log
log

增加自己的日志文件
在/etc/rsyslog.conf配置文件中加入自己的配置信息,可以根据日志类型.日志级别进行添加,添加到/var/log/目录下

日志轮替
log
log
log
log
log
log
查看内存日志
log

备份

1.直接使用tar备份压缩文件
2.使用dump和restore

安装
yum -y install dump
yum -y install restore

dump
dump

只要备份层级选择了0就会全量备份。第n次就是增量备份。
dump增量备份只支持分区,不支持目录,增量备份指的是1-9,不包括0,0是全部备份
dump
dump

Restore恢复
restore

q:linux restore -C 命令怎么知道备份文件的源文件在哪里呢?
a:使用 linux restore -C 命令恢复备份文件时,需要指定备份文件的路径和名称。在执行命令时,需要知道备份文件的源文件在哪里,以便正确地恢复数据。通常,在备份数据时,会在备份文件名中包含源文件的路径信息,或者将备份文件保存在与源文件相同的目录中,以便在恢复数据时更容易找到备份文件。如果无法确定备份文件的源文件位置,可以尝试通过查看备份文件的元数据信息来获取相关信息。

q:这个对比命令是不是只能检测和原来相比少的文件?
a:是的,linux restore命令主要用于恢复备份文件,它只会检测和原来相比少的文件,并将其恢复到指定的目录中。如果备份文件中包含的文件数量与原始文件数量相同,那么restore命令不会执行任何操作,因为没有需要恢复的文件。如果备份文件中包含的文件数量比原始文件数量少,那么restore命令只会恢复备份文件中缺少的文件。如果备份文件中包含的文件数量比原始文件数量多,那么restore命令只会恢复备份文件中原始文件没有覆盖的部分。

restore

可视化工具

webmin
bt宝塔