指令默认都是在root下执行,故都没加 sudo
,仅列出平时比较常用的,需要更多扩展请自行查找资料
信息查询类
Linux下系统基本信息查询
查看服务器名称
查看当前系统的信息
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
查看BMC版本
查看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 -s /root/hgt /usr/bin
|
硬链接(占用磁盘空间)
1 2 3
| # # 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)、CentOS、Fedora 等。
- 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:打印 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 系列的发行版,如 Debian、Ubuntu、Linux 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
|