查看系统信息的相关命令


1.查看当前 Linux 操作系统的发行信息

cat /etc/os-release

2. 查看系统版本信息

# 命令
cat /etc/redhat-release

# 结果
CentOS Linux release 7.4.1708 (Core)

3. 查看系统版本信息

# 命令
uname -r

# 结果
3.10.0-957.el7.x86_64

4. 查看系统多少位

# 命令
uname -m

# 结果
x86_64

5.查看内核的所有信息

# 命令
uname -a

用户管理


1.引言

  • 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源。
  • 普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户。
  • root 用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。

2.root 权限

  • Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。
  • 在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。
  • 因此“能力越大,责任越大”,root权限必须很好的掌握,否则一个错误的命令可能会摧毁整个系统。

3.root 为什么叫 root ?

  • 在Linux系统中,用户也有自己的UID身份账号且唯一

  • 系统管理员 uid 为 0
  • 系统用户 uid 为 1~999 : Linux安装的服务程序都会创建独有的用户负责运行。
  • 普通用户 uid 从 1000 开始 : 由管理员创建

4.root用户和普通用户的相关说明

  • 一般情况下,在生产环境避免直接用root用户,除非有特殊系统维护需求,使用完立刻退回普通用户
  • 超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
  • 普通用户切换root,需要输入密码
  • 普通用户切换普通用户,需要输入密码
  • 普通用户权限较小,只能基本查看信息
  • #是超级管理员的提示符,$符号是普通用户命令提示符

5.相关文件路径

  • 存放用户身份信息的文件

/etc/passwd

  • 存放用户组的文件

/etc/group

  • 存放用户密码的文件

/etc/shadow

6. passwd 命令 -> 修改密码 

  • 命令: passwd -> 修改当前用户的密码

    • 注意:

      • 在root用户下无需输入该用户的旧密码进行验证即可设置新的密码
      • 在普通用户下需要输入旧密码进行验证才能设置新的密码

passwd

  • 命令: passwd 用户名 -> 修改指定用户的密码

    • 注意: 只有在 root 用户下才能执行修改指定用户的密码,且在root用户下无需输入该用户的旧密码进行即可设置新的密码

    • 输入两次密码

passwd yeung

7. useradd 命令 -> 创建用户

  • 命令: useradd 用户名

useradd yeung

  • 注意: 创建完用户后需要立刻给该用户设置密码否则无法登陆

passwd yeung

8. su 命令 -> 切换用户 

  • 命令: su - 用户名

  • 注意:
    • su命令中间的-号很重要,意味着完全切换到新的用户,即环境变量信息也变更为新用户的信息
    • 超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
    • 普通用户切换root,需要输入密码
    • 普通用户切换普通用户,需要输入密码

su - yeung

  • 使用 exit 或 logout 命令退出当前用户切换回上一个用户

9. userdel 命令 -> 删除用户

  • 注意: root 用户是可以把自己给删除掉的

  • 命令: userdel 用户名 -> 无法删除已经登陆的用户

userdel yeung

  • 命令: userdel -r 用户名 -> 删除用户,且同时删除它所对应的工作目录(即: /home/用户名),无法删除已经登陆的用户

userdel -r yeung

  • 命令: userdel -f 用户名 -> 强制删除用户(即: 可以删除已经登陆的用户)

userdel -f yeung

  • 命令: userdel -rf 用户名 -> 强制删除用户,且同时删除它所对应的工作目录(即: 可以删除已经登陆的用户)

userdel -rf yeung

10. 修改用户名

  • 命令: usermod –n 用户名 旧用户名 

usermod –l yeung2 yeung  # 将 yeung 用户名改为 yeung2 用户名

11. 修改用户所在的用户组

  • 注意: 
    • 在修改前必须确认该用户组是否存在
    • 一般情况下用户名和用户组名是一样的

grep 'root' /etc/group

  • 命令: usermod –g 用户组名 用户名

usermod –g root yeung  # 将 yeung 的用户组更改为 root 用户组

12. whoami 命令 -> 查看用户身份信息的命令 

whoami

13. logout 命令 -> 注销当前用户(即: 登出) 

  • 快捷键: ctrl + d

logout

用户组


1. groupadd 命令 -> 创建用户组

  • 命令: groupadd 用户组名

groupadd g_y

2. 修改用户组名

  • 命令: groupmod –n 用户组名 旧用户组名 

groupmod –n g_y2 g_y 

3. groupdel 命令 -> 删除用户组

  • 命令: groupdel 用户组名

groupdel g_y

sudo 命令


1.sudo命令的介绍

  • sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

2.sudo 的使用场景

  • 当我们以普通用户的身份执行以下命令的时候,就会提示你没有权限执行该命令,此时我们可以使用sudo命令,以 root 身份去执行命令

[yeung@kevin_linux ~]$ ls /root


3.sudo 的参数

  • -b : 在后台执行指令
  • -h : 显示帮助
  • -H : 将HOME环境变量设为新身份的HOME环境变量
  • -k : 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码
  • -l : 列出目前用户可执行与无法执行的指令
  • -p : 改变询问密码的提示符号
  • -s<shell> : 执行指定的shell
  • -u<用户> : 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份
  • -v : 延长密码有效期限5分钟
  • -V  : 显示版本信息

4.sudoers文件的配置

  • 打开 sudoers 文件

vim /etc/sudoers

  • 配置可执行sudo命令的用户

……

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
yeung   ALL=(ALL)       ALL  # 允许yeung在任何地方,执行任何命令

……

5.sudo 的使用

  • 命令: sudo 参数 命令

  • 注意: 在执行sudo命令的时候需要输入当前用户的密码

sudo ls /root  # 以 root 身份执行 ls /root

6.sudo 的错误提示

  • 注意: 当遇到以下错误的时候就表示没有将当前用户配置到sudoers文件里(即: 没有完成第四步sudoers文件的配置


文件和文件夹权限


1.权限的介绍

  • Linux 权限的目的是(保护账户的资料)

  • 在Linux中,每个文件或文件夹都有所属的所有者,和所有组,并且规定了文件或文件夹的所有者或所有组以及其他人对文件的,可读,可写,可执行等权限

  • 对于文件夹的权限来说,可读是读取文件夹中的内容列表,可写是表示在文件夹内新增,修改,删除文件。可执行表示可以进入该文件夹

2.Linux 权限主要依据三种身份来决定

  • user/owner : 文件所有人(即: 文件属于哪个用户

  • group : 属组(即: 文件属于哪个组

  • others : 即当前用户不是该文件或文件夹的使用者(user/owner),也不是属于该文件的属组(group),那么该用户的身份就是 others

3.查看用户身份权限

  • 命令: id-> 查看当前用户的身份权限

id

  • 命令: id 用户名 -> 查看指定用户的身份权限

id root


4.查看文件或文件夹权限

  • 命令: ls -l 路径 -> 该路径指的是你要查询的文件或文件夹的父级目录

ls -l /tmp


5.权限的解读

  • 通过 ls -l 命令我们可以查看该文件或文件夹的权限

  • 在权限那一项中,第一个字符代表文件类型,后面的9个字符,按照每3个字符为一组,分别得到3组身份权限,且该3组身份权限分别依次对应着 user group others


  • 文件类型的说明

文件类型字符
说明
-
一般文件
d
文件夹
l
软连接(快捷方式)
b
块设备,存储媒体文件为主
c
代表键盘,鼠标等设备

  • 文件权限字母的说明

文件权限字符
说明
r
read 可读,可以用cat等命令查看
w
write 写入,可以编辑或者删除这个文件
x
executable 可以执行
-
没有权限,也可以理解为是一个占位符

  • 文件夹权限字母的说明

文件夹权限字符
说明
r
可以对此文件夹执行ls列出所有文件
w
可以在这个文件夹里创建文件
x
可以cd进入这个文件夹,或者查看详细信息
-
没有权限,也可以理解为是一个占位符

6.修改文件或文件夹权限的命令

  • 命令: chmod [身份+-=权限字符] [文件或文件夹]

    • 身份: u(user) g(group) o(others) a(all)

    • 符号: +(添加权限) -(删除全向) =(赋值)

    • 权限字符: r(读) w(写) x(执行)


  • 对user身份添加可读权限

chmod u+r test.txt

  • 对group身份删除可写权限

chmod g-w test.txt

  • 对other身份删除可读可写权限

chmod o-rw test.txt

  • 对user身份添加可读可写可执行权限

chmod u+rwx test.txt

7.使用权限所对应的数字修改文件或文件夹权限

  • 权限字符与数字的转化
权限分配
user(文件所有人)
group(文件所属组)
others(其他用户)
权限项
执行
执行
执行
字符表示
r
w
x
r
w
x
r
w
x
数字表示
4
2
1
4
2
1
4
2
1

  • 数字权限的说明

    • 我们已知三种身份权限(user(文件所有人),group(文件所属组),others(其他用户)),每种身份都有rwx的三种权限,系统还提供了数字计算权限

    • 每种身份最低是 0 分,最高是 r+w+x=7 即 4+2+1=7

    • 因此三种身份,最高权限是777,最低是000

    • 注意: 一个数字代表着一个身份的所有权限

-rw-rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt

因此可知 pyyu.txt 的权限是:

    user(文件所有人)是 6 -> rw = 4 + 2

    group(文件所属组)是 6 -> rw = 4 + 2

    others(其他用户)是 4 -> r = 4

  • 修改user身份权限为可读可写,修改group身份权限为可读可执行,修改other身份权限为可读

chmod 654 test.txt

  • 修改user身份权限为可读可写可执行,修改group身份权限为可读可写,修改other身份权限为不可读不可写不可执行

chmod 760 test.txt

  • 修改user身份权限为可读可写可执行,修改group身份权限为可读可写可执行,修改other身份权限为可读可写可执行

chmod 777 test.txt

  • 修改user身份权限为不可读不可写不可执行,修改group身份权限为不可读不可写不可执行,修改other身份权限为不可读不可写不可执行

chmod 000 test.txt

8.修改文件或文件夹的所有人

  • 注意: 在修改前必须确认该用户是否存在

grep 'yeung' /etc/passwd

  • 命令: chown 用户名 文件或文件夹

chown yeung test.txt

9.修改文件或文件夹的属组

  • 注意: 
    • 在修改前必须确认该用户组是否存在
    • 一般情况下用户名和用户组名是一样的

grep 'yeung' /etc/group

  • 命令: chgrp 用户组名 文件或文件夹

chgrp yeung test.txt

软连接


1.软连接的介绍

  • 软连接也叫做符号链接,类似于windows的快捷方式

  • 常用于安装软件的快捷方式配置,如python,nginx等

  • 注意: 删除软连接不会影响到源文件,但是删除了源文件那么软连接就没有意义存在了

2.软连接的使用

  • 创建软连接

    • 命令: ln -s 目标文件路径 -> 在当前目录下创建软连接,如果不指定软连接名,那么默认使用目标文件名作为软连接名

ln -s /tmp/test.txt

    • 命令: ln -s 目标文件路径 软连接名 -> 在当前目录下创建软连接

ln -s /tmp/test.txt test_2

    • 命令: ln -s 目标文件路径 路径 -> 在指定目录下创建软连接,如果不指定软连接名,那么默认使用目标文件名作为软连接名

      • 注意: 这里的 movie/DC 是已存在的文件夹

ln -s /tmp/test.txt movie/DC/

    • 命令: ln -s 目标文件路径 路径/软连接名 -> 在指定目录下创建软连接

      • 注意: 这里的movie/DC 是已存在的文件夹

ln -s /tmp/test.txt movie/DC/test_2

  • 查看软连接

ls -l


  • 使用软连接

cat test_2


PS1 变量


1.PS1变量的介绍

  • Linux命令提示符是由PS1环境变量控制

2.查看 PS1 环境变量

# 命令
echo $PS1

# 结果
[\u@\h \W]\$


3.PS1 变量参数

\d
日期
\H
完整主机名
\h
主机名第一个名字
\t
时间24小时制HHMMSS
\T
时间12小时制
\A
时间24小时制HHMM
\u
当前用户账号名
\v
BASH的版本
\w
完整工作目录
\W
工作目录的最后一位
\#
下达的第几个命令
\$
提示字符,root为#,普通用户为$

4.修改 PS1 变量

  • 直接修改普通修改 PS1 变量,当退出登录后该修改就会失效(即: 变回默认值),因为 Linux 变量配置一次,退出登录后就会失效

PS1='[\u@\h \w \t]\$ '

  • 将需要修改的PS1变量配置到全局变量配置文件中,使得该变量永久生效

    • 原理: 因为当每一次登录 Linux 的时候都会执行一边全局环境变量文件,那么你所修改的 PS1 变量就会重新写入Linux中

    • 进入全局环境变量文件

vim /etc/profile

    • 在全局环境变量文件的底部写入PS1变量

PS1='[\u@\h \w \t]\$ '

    • 重新执行全局环境变量文件,使其修改的内容生效

source /etc/profile

tar 解压命令


1.tar 命令的介绍

  • tar 命令用来压缩和解压文件。tar本身不具有压缩功能,只有打包功能。但是它的压缩功能是调用gzip命令实现

2.gzip 命令的介绍

  • tar 与 gzip 命令结合可以使用实现文件的打包和压缩

    • tar 只负责打包文件,但不进行压缩
    • 用 gzip 压缩通过 tar 打包后的文件,其扩展名一般用 *.tar.gz

  • 在 Linux 中,最常见的压缩文件格式就是 *.tar.gz

  • 在 tar 命令中有一个参数 -z 可以调用 gzip 命令,从而可以方便的实现压缩和解压缩的功能

3.常见的 Linux 文件压缩后缀名

后缀名
命令
说明
*.Z
compress
程序压缩的文件
*.zip
zip
程序压缩的文件
*.gz
gzip
程序压缩的文件
*.bz2
bzip2
程序压缩的文件
*.xz
xz
程序压缩的文件
*.tar
tar
程序打包的文件,并没有压缩过
*.tar.gz
tar
程序打包的文件,并且经过 gzip 进行了压缩
*.tar.bz2
tar
程序打包的文件,并且经过 bzip2 进行了压缩
*.tar.xz
tar
程序打包的文件,并且经过 xz 进行了压缩

4.tar 命令常用的参数

参数
说明
-c
打包文件,和 -z 搭配使用才有压缩文件的功能
-x
解压文件,如果后缀名是 .tar.gz,最好和 -z 搭配使用进行文件的解压,
因为在旧版的tar命令中一定要加 -z 进行解压,否者解压 .tar.gz 就会报错,
但是在新版的 tar 命令会自动识别压缩包类型进行解压
-f
指定压缩文件的路径
-C
解压或解压缩到指定的目录下
-z
调用gzip命令进行压缩和解压缩
-j
调用bzip2命令进行压缩和解压缩
-v
显示命令的执行过程

5.解压文件

  • 下载一个压缩包进行测试

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

  • 注意:

    • 在新版tar命令中可以直接进行解压无需注意压缩包类型,因为 tar 已经自动进行识别解压

    • 在旧版tar命令中要注意压缩包类型,根据压缩包的类型,添加不同的参数进行解压

      • 如: 压缩包后缀是 .gz,那么在解压的时候就要加上 -z 参数进行解压

      • 如: 压缩包后缀是 .bz2,那么在解压的时候就要加上 -j 参数进行解压

  • 命令: tar -xf 压缩包的路径 -> 将文件解压到当前目录

tar -xf nginx-1.12.0.tar.gz

  • 命令: tar -xf 路径/压缩包 -> 将指定压缩包解压到当前目录下

tar -xf /opt/nginx-1.12.0.tar.gz

  • 命令: tar -xf 压缩包的路径 -C 目标路径 -> 将文件解压到指定路径下

tar -xf nginx-1.12.0.tar.gz -C /root/movie

  • 命令: tar -xf 路径/压缩包 -C 目标路径 -> 将指定压缩包解压到指定路径下

tar -xf /opt/nginx-1.12.0.tar.gz -C /root/movie

  • 命令: tar -zxf 压缩包的路径 ->让 tar 命令调用 gzip 命令解压文件

tar -zxf nginx-1.12.0.tar.gz

  • 命令: xz -d 压缩包路径 -> 解压后缀名为 xz 的压缩包

# 将 Python-3.6.7.tar.xz 压缩包解压成 Python-3.6.7.tar
xz -d Python-3.6.7.tar.xz

# 将 Python-3.6.7.tar 压缩包解压成 Python-3.6.7
tar -xf Python-3.6.7.tar

  • 命令: uuzip 压缩包路径 -> 解压后缀名为 zip 的压缩包

unzip crm_project.zip

6.压缩文件

  • 注意: 压缩文件的时候要使用 -z 参数进行压缩,因为 -z 参数是让 tar 命令调用 gzip 命令进行文件压缩的

  • 命令: tar -zcf 压缩包名称.tar.gz 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包并压缩到当前目录下

tar -zcf t_file.tar.gz test.txt

  • 命令: tar -zcf 压缩包名称.tar.gz 路径/需要压缩的文件或文件夹名称 -> 将指定路径下的文件或文件夹打包并压缩到当前目录下

    • 注意: 指定需要需要压缩的文件或文件夹路径必须是相对路径否则会报错

tar -zcf abc_file.tar.gz a_file/abc.txt

  • 命令: tar -zcf 路径/压缩包名称.tar.gz 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包并压缩到指定目录下

tar -zcf /root/movie/t_file.tar.gz test.txt

  • 命令: tar -zcf 路径/压缩包名称.tar.gz 路径/需要压缩的文件或文件夹名称 -> 将指定路径下的文件或文件夹打包并压缩到指定目录下

    • 注意: 指定需要需要压缩的文件或文件夹路径必须是相对路径否则会报错

tar -zcf /root/movie/abc_file.tar.gz a_file/abc.txt

7.打包文件

  • 打包文件和压缩文件的用法是一样的,只不过打包文件没有压缩功能

  • 注意: 打包文件无需使用 -z 参数,因为 -z 参数是让 tar 命令调用 gzip 命令进行文件压缩的

  • 命令: tar -cf 路径/压缩包名称.tar 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包到指定目录下

tar -cf /root/movie/t_file.tar test.txt

8.例子

  • 压缩当前目录所有 jpg 结尾的文件

tar -zcf all_pic.tar.gz *.jpg 

  • 解压缩 bz2 结尾的压缩文件

tar -xjf xx.tar.bz2

gzip 解压命令


gzip 命令的使用量没有 tar 命令多,即: 只做了解即可

1.gzip 命令的介绍

  • gzip用来压缩文件,是个使用广泛的压缩程序,被压缩的以".gz"扩展名

  • gzip可以压缩较大的文件,以60%~70%压缩率来节省磁盘空间

  • 使用 gzip 压缩文件后会删除掉源文件

  • 使用 gzip 解压文件后会删除掉压缩文件

2.gzip 命令参数

参数
说明
-d
解开压缩文件
-f
强行压缩文件
-h
在线帮助
-l
列出压缩文件的相关信息
-L
显示版本与版权信息
-r
递归处理,将指定目录下的所有文件及子目录一并处理
(即: 压缩或解压缩有内容的文件夹需要使用该参数)
-v
显示指令执行过程

3.gzip 命令的使用

  • 命令: gzip 文件名或文件夹名 -> 将文件压缩到当前目录下并且删除源文件

gzip test.txt

  • 命令: gzip -d 文件名或文件夹名 -> 压缩文件解压到当前目录下并且压缩文件

gzip -d test.txt

  • 显示当前目录下所有压缩文件的信息

gzip -l *

  • 使用 tar 命令打包一个文件,然后使用 gzip 命令对打包文件进行压缩,最后得到一个 .tar.gz 的压缩文件

# 命令一 
tar -cf test_file.tar test.txt

# 命令二
gzip test_file.tar

    • 等同于

tar -zcf test_file.tar.gz test.txt

netstat 查看端口命令


1.netstat 命令的介绍

  • netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况(即: 查看端口)

2.netstat 命令的参数

参数
说明
-t
显示TCP传输协议的连线状况
-u
显示UDP传输协议的连线状况
-n
直接使用ip地址,而不通过域名服务器
-l
显示监控中的服务器的Socket
-p
显示正在使用Socket的程序识别码和程序名称
-a
显示所有连线中的Socket

3.netstat 命令的使用

# 命令

netstat -tunlp

# 结果

[root@oldboy_python ~ 10:21:59]#netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      814/sshd            
tcp6       0      0 :::111                  :::*                    LISTEN      2703/rpcbind        
tcp6       0      0 :::3306                 :::*                    LISTEN      29269/mysqld        
udp        0      0 0.0.0.0:758             0.0.0.0:*                           2703/rpcbind        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           2703/rpcbind        
udp        0      0 10.141.32.137:123       0.0.0.0:*                           484/ntpd            
udp        0      0 127.0.0.1:123           0.0.0.0:*                           484/ntpd            
udp        0      0 0.0.0.0:123             0.0.0.0:*                           484/ntpd            
udp6       0      0 :::758                  :::*                                2703/rpcbind        
udp6       0      0 :::111                  :::*                                2703/rpcbind        
udp6       0      0 :::123                  :::*                                484/ntpd

ps 查看进程命令


1. ps 命令的介绍

  • ps 命令用于查看系统中的进程状态

2. ps 命令的参数

参数
说明
-a
显示所有终端机下执行的进程,除了阶段作业领导者之外
-A
显示所有进程,但不显示环境变量
-u
用户以及其他详细信息
-x
显示没有控制终端的进程
-e
显示所有进程,但显示环境变量
-f
显示 UID, PPIP, C 与 STIME 栏位

3. ps 命令的使用

  • ps -ef 和 ps aux 两者的输出结果差别不大,但展示风格不同

ps -ef  # 常用

ps -aux

  • 查看指定软件的进程

ps -ef | grep python  # 查看python的进程

结束进程


注意: kill 和 killall 命令要谨慎使用,因为如果使用不当会影响你服务的运转

1. kill 命令

  • kill 命令的参数

参数
说明
-a
当处理当前进程时,不限制命令名和进程号的对应关系
-l <信号名称>
查看指定信号的编号,如果不指定信号默认展示全部的信号名称+编号
-p
指定 kill 命令只打印相关进程的进程号,而不发送任何信号
-s <信号名称或编号>
指定要发送的信息
-u
结束指定用户的所有进程

  • 常用的信号

信号名称
信号编号
说明
HUP
1
终端断线
INT
2
中断(同 Ctrl + C)
QUIT
3
退出(同 Ctrl + \)
TERM
15
终止
KILL
9
强制终止
CONT
18
继续(与STOP相反, fg/bg命令)
STOP
19
 暂停(同 Ctrl + Z)

  • 命令: kill 进程PID -> 结束指定进程

kill 3124
  • 命令: kill -信号名称或编号 进程PID -> 强制结束进程

kill -9 3124
kill -KILL 3124

  • 命令: kill -u 用户名 -> 结束指定用户的所有进程

kill -u tank

  • 命令: kill -l -> 查看所有信号名称+编号

kill -l

  • 命令: kill -l 信号名称 -> 查看指定信号的编号

kill -l KILL

kill -l SIGKILL

2. killall 命令

  • 通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这 些进程会比较麻烦,此时可以使用 killall 命令来批量结束某个服务程序带有的全部进程

  • 通俗理解: 结束与指定软件相关的所有进程

  • 命令: killall 软件名

killall nginx  # nginx 启动后会有2个进程,那么就会结束掉这两个进程

3. pkill 命令

  • 结束与指定软件相关的所有进程

  • pkill 和 killall 的作用是一样的

  • 命令: pkill 软件名

pkill nginx  # nginx 启动后会有2个进程,那么就会结束掉这两个进程

中文显示设置(防止中文乱码)


1. 引言

  • 此项优化为可选项,根据个人情况选择是否调整Linux系统的字符集,字符集就是一套文字符号以及编码

2. Linux下常用字符集

  • UTF-8 : 广泛支持,MYSQL也使用UTF-8,企业广泛使用

  • GBK : 实际企业应用较少

3. 查看系统当前字符集

echo $LANG

4. 修改系统当前字符集

  • 打开字符集配置文件

vim /etc/locale.conf

  • 修改字符集

LANG=en_US.UTF-8

  • 重新执行字符集配置文件,使其生效

source /etc/locale.conf

查看磁盘的使用情况(即: 查看磁盘大小)


1. df 命令的介绍

  • df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

  • df 命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计

  • df 命令如果不使用单位参数,默认以字节为单位显示

2. df 命令的常用参数

参数
说明
-h
以k,M,G为单位显示磁盘大小
-k
指定区块大小为1024字节
-T
显示文件系统的类型
--help
显示帮助
--version
显示版本信息

3. df 命令的使用

df  # 以字节为单位显示

df -h  # 以k,M,G为单位显示大小

tree 命令


1. tree 命令的介绍

  • 以树状图的形式显示当前目录下的内容

2. tree 命令的安装

yum install tree -y

3. tree 命令的参数

参数
说明
-a
显示所有文件和目录
-A
使用ASNI绘图字符显示树状图而非以ASCII字符组合
-C
在文件和目录清单加上色彩,便于区分各种类型
-d
显示目录名称而非内容
-D
列出文件或目录的更改时间
-f
在每个文件或目录之前,显示完整的相对路径名称
-F
在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号
-g
列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i
不以阶梯状列出文件或目录名称
-I
不显示符合范本样式的文件或目录名称
-l
如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-L
层级显示
-n
不在文件和目录清单加上色彩
-N
直接列出文件和目录名称,包括控制字符
-p
列出权限标示
-P
只显示符合范本样式的文件或目录名称
-q
用"?"号取代控制字符,列出文件和目录名称
-s
列出文件或目录大小
-t
用文件和目录的更改时间排序
-u
列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-x
将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外

4. tree 命令的使用

  • 查看当前目录下的所有内容,并且以树状图显示

tree

  • 查看指定目录下的所有内容,并且以树状图显示

tree movie/DC

DNS


1. DNS 的介绍

  • DNS(Domain Name System,域名解析系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串

  • 通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)

  • DNS的作用: 通过域名得到该域名对应的IP地址

2.DNS 解析过程

  • ① 首先用户在浏览器输入一段 url,www.baidu.com
  • ② 浏览器会首先在你的电脑上,寻找一个 hosts 文件(即: 本地DNS(就是将域名转化成ip地址)强制解析的文件) -> hosts 文件存放着自定义的域名和所对应的的ip地址
  • ③ 如果hosts文件未指定解析记录,那么浏览器就会去电脑中的 DNS 缓存中寻找解析记录(即: local DNS 缓存,简称: LDNS)
  • ⑤ 如果缓存也没有记录,那么就去指定的 DNS 服务器(即: 手动设置的 DNS 服务器,Linux 底下 /etc/reslove)中寻找解析记录



3. DNS 的配置

  • DNS 域名服务器配置文件

    • 域名服务器: 存储着很多以域名为key,以公网ip为value 的键值对对应关系,然后通过配置域名服务器可以找到该域名所对应的公网ip

    • DNS 域名服务器配置文件的作用: 用于配置域名服务器,通过该域名服务器使其能通过域名得到该域名对应的IP地址

    • 最多只能配置两个域名服务器

    • 常见的域名服务器

      • 8.8.8.8  -> 谷歌的域名服务器
      • 223.5.5.5 -> 阿里巴巴的域名服务器
      • 223.6.6.6 -> 阿里巴巴的域名服务器
      • 119.29.29.29 -> 腾讯的域名服务器
      • 114.114.114.114

# 命令

vim /etc/resolv.conf

# 配置文件的内容

nameserver 10.0.0.1

4. nslookup 命令

  • nslookup 命令的作用: 显示域名解析的过程

  • bind-utils 软件的安装

    • nslookup 命令是 bind-utils 软件下的一条命令

yum install bind-utils -y

  • 命令: nslookup 域名 -> 查看域名解析过程

# 命令

nslookup pythonav.cn

# 结果

Server:        10.0.0.1  # 使用你所指定的域名服务器进行域名解析
Address:    10.0.0.1#53

Non-authoritative answer:
Name:    pythonav.cn  # 需要解析的域名
Address: 123.206.16.61  # 解析结果: 该域名所对应的公网ip

  • 命令: nslookup -> 进入输入模式查看域名解析过程

# 命令

nslookup

# 进入输入模式

> 输入域名
> 域名解析结果
> 输入域名
> 域名解析结果
> ctrl + c 退出输入模式

系统服务管理命令


  • 注意: 只有通过 yum 安装的软件,默认才能使用系统服务管理命令

1. 服务相关

  • 启动服务

    • RHEL6 系统

service 服务名 start

    • RHEL7 系统

systemctl start 服务名

  • 重启服务

    • RHEL6 系统

service 服务名 restart

    • RHEL7 系统

systemctl restart 服务名

  • 停止服务

    • RHEL6 系统

service 服务名 stop

    • RHEL7 系统

systemctl stop 服务名

  • 重新加载配置文件(不终止服务)

    • RHEL6 系统

service 服务名 reload

    • RHEL7 系统

systemctl reload 服务名

  • 查看服务状态

    • RHEL6 系统

service 服务名 status

    • RHEL7 系统

systemctl status 服务名

2. 设置开机启动相关

  • 开机自动启动指定服务

    • RHEL6 系统

chkconfig 服务名 on

    • RHEL7 系统

systemctl enable 服务名

  • 开机不自动启动指定服务

    • RHEL6 系统

chkconfig 服务名 off

    • RHEL7 系统

systemctl disable 服务名

  • 查看指定服务是否开机自启动

enabled  # 代表已开启

disabled  # 代表已关闭

    • RHEL6 系统

chkconfig 服务名

    • RHEL7 系统

systemctl is-enabled 服务名

Linux 服务器 和 window 互传文件工具


1.下载 lrzsz 命令

yum install lrzsz -y

2.指定的 Linux 的文件传到 Window 中

  • 命令: sz 文件名 -> 将指定的 Linux 的文件传到 Window 中

    • 当输入命令后会弹出一个选择框,让你选择传到 window 下的哪一个目录下

sz test.txt



3.指定的 window 的文件传到 Linux 的当前目录下

  • 当输入命令后会弹出一个选择框,让你选择将那个 window 文件传入到 Linux 的当前目录下

rz