指令默认都是在root下执行,故都没加 sudo ,仅列出平时比较常用的,需要更多扩展请自行查找资料

信息查询类

Linux下系统基本信息查询

查看服务器名称
1
hostname
查看当前系统的信息
1
2
# 包括系统名、操作系统、内核等
hostnamectl
Linux查看系统内核与发行版本信息
1
2
3
4
5
6
7
uname -a

# 仅显示内核版本
uname -r

# Linux version 指的是内核版本,CentOS 的话:el8_1,数字 8 代表是 CentOS 8,Ubuntu 则为后面的 18.04.1,表示是Ubuntu 18.04
cat /proc/version
仅查看发行版本信息
1
2
3
4
5
lsb_release -a

# CentOS:一般查看 redhat-release、os-release、lsb-release、system-release
# Ubuntu:一般查看 os-release、lsb-release
cat /etc/*-release
查看IP
1
2
3
4
5
# 安装net-tools后可用
ifconfig

# 未安装net-tools
ip addr show

Linux下软件相关信息查询

查看BMC IP
1
ipmitool lan print
查看BMC版本
1
ipmitool mc info
查看BIOS版本及信息
1
2
3
4
5
6
# 打印版本号和其他信息,0指的是BIOS,其他详细指代对应关系参考 dmidecode 指令
# dmidecode以一种可读的方式dump出机器的DMI(Desktop Management Interface)信息。这些信息包括了硬件以及BIOS,既可以得到当前的配置,也可以得到系统支持的最大配置,比如说支持的最大内存数等
dmidecode -t 0

# 仅打印版本号
dmidecode -s bios-version
查看网卡驱动和固件版本
1
2
# -i 参数后指定网卡名称
ethtool -i enp133s0f0

Linux下硬件相关信息查询

查看所有硬件摘要信息
1
2
# 查看所有硬件摘要信息,并在root目录下输出成一个html文件,把此html文件导出到电脑上,直接打开,可以清楚的看到硬件信息
lshw -html > /root/hardware.html
查看CPU信息
1
2
3
4
5
6
7
8
# 显示 CPU 的架构信息,包括 CPU 的数量、型号、字节序以及核心数等
lscpu

# 查看每个 CPU 的信息型号、主频等
cat /proc/cpuinfo

# 从 BIOS 处获取的 CPU 信息
dmidecode -t 4
查看内存信息
1
2
3
4
5
6
7
8
# 查看内存硬件信息(从 BIOS 中获取)
sudo dmidecode -t memory

# 查看内存使用信息,单位 MB
free -m

# 查看内存详细使用
cat /proc/meminfo
查看PCIe设备信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lspci

# 以树状图展现并且包含基本信息
lspci -tv

# 在使用命令行,无法翻页时,可以加上 more 或者 less 命令进行翻页,这样可以看全整个 log,在使用 less 时,按 q 退出
lspci -tv | more

lspci -tv | less

# 单独查看某个BUS的信息,如 lspci -vvvs 20:03.7
lspci -vvvs [bus]:[slot].[function]

# 通过管道 | 将输出传递给 grep -i speed,该命令会过滤出所有包含“speed”(不区分大小写)的行,如 lspci -vvvs 20:03.7 | grep -i speed
lspci -vvvs [bus]:[slot].[function] | grep -i speed
查看USB设备信息
1
2
# 同 PCIe 设备,也可使用 -tv 参数,以树状图展现并且包含基本信息
lsusb -tv
查看SCSI设备信息
1
2
# 可以看到 SCSI 控制器设备的信息(例如博通、天琴SW或EXP背板、U盘)和所有虚拟磁盘以及光驱的信息,如果没有硬件 SCSI 控制器,那就不会返回信息
lsscsi -g
Linux查看磁盘信息
1
2
3
4
5
6
7
8
# 查看磁盘信息 - 列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息
lsblk

#观察硬盘实体使用情况,也可对硬盘分区
fdisk -l

# 用于显示磁盘分区上的可使用的磁盘空间
df -k

基本操作类

增删查改

一些基本的创建文件、复制移动重命名操作,具体更多参数还需要看详细的手册,这里只列出比较常用的一些

创建
1
2
# 创建 123.txt 文件,touch命令还能修改文件时间戳,没用过,自行百度
touch 123.txt
查看
1
2
# 查看 txt 文件内容
cat 123.txt
删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -f:强制删除文件而不询问
# -i:删除文件前询问用户是否确认
# -v:显示执行过程详细信息
# -r:递归删除目录及其内全部子文件

# 删除 file.jpg 文件,需要按 'y' 二次确认
rm file.jpg

# 强制删除 file.jpg,无需二次确认
rm -f file.jpg

# 强制递归删除 DIR 目录以及目录下子文件
rm -rf /DIR

# 删库跑路
rm -rf /*
复制
1
2
3
4
5
6
7
8
9
10
11
# 复制123.jpg 并定义新的命名
cp 123.jpg abc.jpg

# 递归复制 DIR
cp -r /DIR /DIR2

# 将指定文件复制到/etc目录中,并覆盖已有文件,不进行询问
cp -f 123.jpg /DIR

# 复制多个文件到 DIR 中
cp 123.jpg abc.jpg /DIR
移动或重命名
1
2
3
4
5
6
7
8
# 重命名,123 --> abc,对于文件夹,操作指令相同
mv 123.jpg abc.jpg

# 移动文件到 /root 下
mv abc.jpg /root

# 将 DIR 中文件移动到 /root 下,若存在相同文件,直接覆盖,不再询问
mv -f /DIR/* /root

文件链接

ln 命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。

软链接(不占用磁盘空间)
1
2
3
## 当在不同目录使用相同文件时,可以使用ln命令链接,避免了重复占用磁盘空间。
## ln -s [源文件] [软链接文件]
ln -s /root/hgt /usr/bin
硬链接(占用磁盘空间)
1
2
3
## 没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件
## ln [源文件] [软链接文件]
ln /root/hgt /usr/bin

无论是软链接还是硬链接,文件都保持同步变化

压缩包的压缩与解压缩

Linux 常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等,工作中比较常见的是 .tar.gz 结尾的压缩包,这里只简单介绍该种格式的压缩与解压,其余自行百度

1
2
3
4
5
6
7
8
9
# 压缩,123.jpg为被压缩文件名,abc 为压缩文件文件名,二者可一样
# -c:压缩;
# -z:参数调用gzip,对于 .tar.gz 文件需要加,若仅是.tar文件则不用 -z 参数;
# -v:显示所有过程;
# -f: 使用档案名字,切记,这个参数是最后一个参数且必须,后面只能接档案名。
tar -zcvf abc.tar.gz 123.jpg

# -x:解压缩,其余参数解释同上
tar -zxvf abc.tar.gz

示例:

1
2
3
4
5
6
7
8
9
10
11
12
### 压缩
tar –cvf jpg.tar *.jpg # 将目录里所有jpg文件打包成 jpg.tar
tar –czf jpg.tar.gz *.jpg # 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,命名为 jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg # 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,命名为jpg.tar.bz2;-j:有bz2属性的
tar –cZf jpg.tar.Z *.jpg # 将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 compress 压缩,生成一个 umcompress 压缩过的包,命名为jpg.tar.Z;-Z:有compress属性的


### 解压
tar –xvf file.tar # 解压 tar 包
tar -xzvf file.tar.gz # 解压 tar.gz
tar -xjvf file.tar.bz2 # 解压 tar.bz2
tar –xZvf file.tar.Z # 解压 tar.Z

U盘挂载

有时会遇到没有图形化界面的情况,新人往往束手无策,如果你会U盘挂载,这时候又可以装一把了~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 插入U盘后执行指令查看设备名称,一般为 /dev/sdb 这种形式,参考 硬件相关信息查询 
lsblk
fdisk -l
lsscsi -g

# 创建挂载点(可选,若不创建直接挂在在 /mnt/ 下即可)
mkdir /mnt/mydev

# 挂载 U盘
mount /dev/sdb /mnt/mydev

# 查看是否挂载成功
df -h

# 若挂载成功,此时 /mnt/mydev/ 路径下就是U盘中的内容
# 拷贝 123.jpg 到服务器 /root/ 路径下
cp /mnt/mydev/123.jpg /root

# 取消挂载,拔出U盘之前一定要做,养成良好习惯,不然数据可能丢失
umount /dev/sdb 或 umount /mnt/mydev

软件包与依赖管理

仅仅浅显的介绍下会用到的包管理器和一些基本操作。

一般来说著名的 Linux 系统基本上分两大类:
RedHat 系列:RedHat、Centos、Fedora 等
Debian 系列:Debian、Ubuntu 等

Yum
  • Yum (Yellowdog Updater, Modified):
    • 主要用于基于 Red Hat 系列的发行版,如 RHEL (Red Hat Enterprise Linux)、CentOSFedora 等。
    • Yum 使用的是 RPM (Red Hat Package Manager) 包格式,文件后缀为 .rpm
    • Yum 具有自动处理依赖关系的能力,但在早期版本中速度相对较慢,不过在 Dandified Yum (DNF) 中得到了改进(新的RHEL和Fedora系统使用DNF替代了Yum)
    • Yum 的软件源配置文件位于 /etc/yum.repos.d/ 目录中,默认情况下包含多个 .repo 文件,定义了不同的软件源
    • Yum 的新一代版本是 DNF,它在现代系统上性能更好,并解决了许多 Yum 的遗留问题
Yum 常用命令(方德、Centos)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装软件包
yum install <package>

# 更新系统中已安装的软件包
yum update

# 卸载软件包
yum remove <package>

# 列出可用的软件包
yum list <package>

# 搜索软件包
yum search <package>
rpm 常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -i:安装(install)
# -v:显示更详细的信息(verbose)
# -h:打印 #,显示安装进度(hash)
rpm -ivh 123.rpm

# RPM 包的升级,-U(大写)选项的含义是:如果该软件没安装过则直接安装;若已经安装则升级至最新版本
rpm -Uvh 123.rpm

# RPM 包的升级,-F(大写)选项的含义是:如果该软件没有安装,则不会安装,必须安装有较低版本才能升级
rpm -Fvh 123.rpm

# RPM包的卸载,-e 选项表示卸载,也就是 erase 的首字母
# RPM 软件包的卸载要考虑包之间的依赖性。例如,我们先安装的 httpd 软件包,后安装 httpd 的功能模块 mod_ssl 包,那么在卸载时,就必须先卸载 mod_ssl,然后卸载 httpd,否则会报错。
rpm -e 123.rpm
Apt
  • Apt (Advanced Package Tool):
    • 主要用于基于 Debian 系列的发行版,如 DebianUbuntuLinux Mint 等。
    • Apt 使用的是 DEB (Debian Package) 包格式,文件后缀为 .deb
    • Apt 也能处理依赖关系,速度相对较快,Debian和Ubuntu社区对其进行了较多的优化
    • Apt 的软件源配置文件通常位于 /etc/apt/sources.list,可以通过编辑这个文件或者在 /etc/apt/sources.list.d/ 添加新的软件源
    • Apt 也有更高效的工具如 aptitude,它是基于 Apt 的前端,提供了更友好的用户界面和更多的高级功能
Apt 常用命令(Ubuntu)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装软件包
apt install <package>

# 更新软件包源的索引
apt update

# 升级已安装的软件包
apt upgrade

# 卸载软件包
apt remove <package>

# 搜索软件包
apt search <package>

# dpkg 不会自动解决依赖问题,如果安装的软件包有依赖未满足,可以使用 apt-get 来解决
# -f, --fix-broken: 修复因依赖问题而损坏的软件包
sudo apt-get -f install
dpkg 常用命令
1
2
3
4
# -i:安装软件包;
# -r:删除软件包;
# -P:删除软件包的同时删除其配置文件;
dpkg -i 123.deb

进程查看

**ps **命令将某个进程显示出来,PS是LINUX下最常用的也是非常强大的进程查看命令,**grep 命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep 全称是 Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。中间的|**是管道命令 是指 ps 命令与 grep 同时执行。

1
2
3
4
5
6
7
8
9
10
11
12
# A :所有的进程均显示出来,与 -e 具有同样的效用;
# -a : 显示现行终端机下的所有进程,包括其他用户的进程;
# -u :以用户为主的进程状态 ;
# x :通常与 a 这个参数一起使用,可列出较完整信息。

# 检查所有进程信息
ps aux

# 检查 python 进程的相关信息
ps -ef |grep python

# 更多信息自行查找

总结下经常使用的指令

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
30
31
32
33
34
35
36
man
cd
ls/ll
pwd
mkdir
cp
mv
rm
ps
make
cat
touch
ln
ping
apt-get
yum
dpkg
rpm
tar
lspci
mount/umount
grep
more
less
lsscsi
lsblk
lscpu
lsusb
ipmitool
ifconfig
hostname/hostnamectl
uname
dmidecode
reboot
shutdown
date