Linux 常用命令汇总

常用命令

查看发行版名称和版本号

LSB

LSB(Linux 标准库 Linux Standard Base)能够打印发行版的具体信息,包括发行版名称、版本号、代号等。

笔者没有测试成功

lsb_release -a

release 文件

release 文件通常被视为操作系统的标识。在 /etc​ 目录下放置了很多记录着发行版各种信息的文件,每个发行版都各自有一套这样记录着相关信息的文件。

Ubuntu / Debian
系统信息
  1. 方法 1

    cat /etc/issue
    
    # 或
    
    cat /etc/issue.net

    返回如下:

    root@localhost:/# cat /etc/issue
    Debian GNU/Linux 10 \n \l
    
    root@localhost:/# cat /etc/issue.net
    Debian GNU/Linux 10
  2. 方法 2

    cat /etc/os-release

    返回如下:

    root@localhost:/# cat /etc/os-release
    PRETTY_NAME="Debian GNU/Linux 10 (buster)"
    NAME="Debian GNU/Linux"
    VERSION_ID="10"
    VERSION="10 (buster)"
    VERSION_CODENAME=buster
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"
版本信息
cat /etc/debian_version

返回如下:

root@localhost:/# cat /etc/debian_version
10.13
RHEL / CentOS / Fedora
系统信息
  1. 方法 1

    cat /etc/centos-release
    
    # 或
    cat /etc/fedora-release
    
    # 或
    
    cat /etc/redhat-release
    
    # 或
    
    cat /etc/system-release

    返回如下:

    [root@localhost freeswitch]# cat /etc/centos-release
    CentOS Linux release 7.9.2009 (Core)
  2. 方法 2

    cat /etc/os-release

    返回如下:

    [root@localhost freeswitch]# cat /etc/os-release
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    
    CENTOS_MANTISBT_PROJECT="CentOS-7"
    CENTOS_MANTISBT_PROJECT_VERSION="7"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="7"
版本信息

uname

uname(unix name 的意思) 是一个打印系统信息的工具,包括内核名称、版本号、系统详细信息以及所运行的操作系统等等。

uname -a

返回如下:

Linux localhost.localdomain 4.12.14-300.fc26.x86_64 #1 SMP Wed Sep 20 16:28:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

以上运行结果说明使用的操作系统版本是 Fedora 26。

version 文件

这个文件记录了 Linux 内核的版本、用于编译内核的 gcc 的版本、内核编译的时间,以及内核编译者的用户名。

cat /proc/version

返回如下:

Linux version 3.10.0-1160.83.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Jan 25 16:41:43 UTC 2023

dmesg

dmesg(展示信息 display message 或驱动程序信息 driver message)是大多数类 Unix 操作系统上的一个命令,用于打印内核的消息缓冲区的信息。

dmesg | grep "Linux"

返回如下:

[root@localhost freeswitch]# dmesg | grep "Linux"
[    0.000000] Linux version 3.10.0-1160.83.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Jan 25 16:41:43 UTC 2023
[    0.143592] SELinux:  Initializing.
[    0.143601] SELinux:  Starting in permissive mode
[    0.322685] ACPI: Added _OSI(Linux-Dell-Video)
[    0.329952] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.822309] SELinux:  Registering netfilter hooks
[    0.843850] Linux agpgart interface v0.103
[    0.851590] Loaded X.509 cert 'CentOS Linux kpatch signing key: ea0413152cde1d98ebdca3fe6f0230904c9ef717'
[    0.851602] Loaded X.509 cert 'CentOS Linux Driver update signing key: 7f421ee0ab69461574bb358861dbe77762a4201b'
[    0.851953] Loaded X.509 cert 'CentOS Linux kernel signing key: 833de5b797c7f1860d1feac806b6dafed078f069'
[    4.796150] SELinux:  Disabled at runtime.
[    4.796167] SELinux:  Unregistering netfilter hooks

Yum

Yum(Yellowdog 更新器修改版 Yellowdog Updater Modified)是 Linux 操作系统上的一个包管理工具,而 yum 命令被用于一些基于 RedHat 的 Linux 发行版上安装、更新、查找、删除软件包。

yum info nano

返回如下:

[root@localhost freeswitch]# yum info nano
已加载插件:fastestmirror, ovl
Repository freeswitch is listed more than once in the configuration
Repository freeswitch-debuginfo is listed more than once in the configuration
Repository freeswitch-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-sclo-rh: mirrors.163.com
 * centos-sclo-sclo: mirrors.ustc.edu.cn
 * epel: mirror.lzu.edu.cn
 * extras: mirrors.aliyun.com
 * nux-dextop: li.nux.ro
 * updates: mirrors.aliyun.com
已安装的软件包
名称    :nano
架构    :x86_64
版本    :2.3.1
发布    :10.el7
大小    :1.6 M
源    :installed
来自源:base
简介    : A small text editor
网址    :http://www.nano-editor.org
协议    : GPLv3+
描述    : GNU nano is a small and friendly text editor.

下面的 yum repolist 命令执行后显示了 yum 的基础源仓库、额外源仓库、更新源仓库都来自 CentOS 7 仓库。

yum repolist

返回如下:

[root@localhost freeswitch]# yum repolist
已加载插件:fastestmirror, ovl
Repository freeswitch is listed more than once in the configuration
Repository freeswitch-debuginfo is listed more than once in the configuration
Repository freeswitch-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-sclo-rh: mirrors.163.com
 * centos-sclo-sclo: mirrors.ustc.edu.cn
 * epel: mirror.lzu.edu.cn
 * extras: mirrors.aliyun.com
 * nux-dextop: li.nux.ro
 * updates: mirrors.aliyun.com
源标识                                                                                      源名称                                                                                                                          状态
base/7/x86_64                                                                               CentOS-7 - Base - mirrors.aliyun.com                                                                                            10,072
centos-sclo-rh/x86_64                                                                       CentOS-7 - SCLo rh                                                                                                               8,170
centos-sclo-sclo/x86_64                                                                     CentOS-7 - SCLo sclo                                                                                                               816
docker-ce-stable/7/x86_64                                                                   Docker CE Stable - x86_64                                                                                                          210
epel/x86_64                                                                                 Extra Packages for Enterprise Linux 7 - x86_64                                                                                  13,747
extras/7/x86_64                                                                             CentOS-7 - Extras - mirrors.aliyun.com                                                                                             515
forensics/7/x86_64                                                                          CERT Forensics Tools Repository                                                                                                    878
forensics-splunk/7/x86_64                                                                   CERT Forensics Tools Repository - Splunk                                                                                             5
freeswitch                                                                                  FreeSWITCH Packages for Enterprise Linux 7 - x86_64                                                                              1,690
freeswitch-debuginfo                                                                        FreeSWITCH Packages for Enterprise Linux 7 - x86_64 - Debug                                                                      1,690
freeswitch-source                                                                           FreeSWITCH Packages for Enterprise Linux 7 - x86_64 - Source                                                                     1,690
nux-dextop/x86_64                                                                           Nux.Ro RPMs for general desktop use                                                                                              2,724
updates/7/x86_64                                                                            CentOS-7 - Updates - mirrors.aliyun.com                                                                                          4,706
repolist: 46,913

RPM

RPM(红帽包管理器 RedHat Package Manager)是在 CentOS、Oracle Linux、Fedora 这些基于 RedHat 的操作系统上的一个强大的命令行包管理工具,同样也可以帮助我们查看系统的版本信息。

rpm -q nano

返回如下:

[root@localhost freeswitch]# rpm -q nano
nano-2.3.1-10.el7.x86_64

查看文件夹大小

-h:表示用 K、M、G 的人性化形式显示

-s:表示总结的意思,即只列出一个总结的值

-a:表示包括目录和文件

--max-depth:表示只深入到第 n 目录,此处设置为 1,即表示深入 1 层目录。

基本用例:

# /home:表示查看 home 目录
du -h --max-depth=1 /home

列出当前目录或文件的总大小,并按倒叙排序:

du -sh /* | sort -nr

查找文件内容

Linux 里利用 grep 和 find 命令查找文件内容

从文件内容查找匹配指定字符串的行:

grep "被查找的字符串" 文件名

例子:在当前目录里第一级文件夹中寻找包含指定字符串的 .in 文件

grep "thermcontact" /.in

从文件内容查找与正则表达式匹配的行:

grep –e "正则表达式" 文件名

查找时不区分大小写:

grep –i "被查找的字符串" 文件名

查找匹配的行数:

grep -c "被查找的字符串" 文件名

从文件内容查找不匹配指定字符串的行:

grep –v "被查找的字符串" 文件名

从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行:

find / -type f -name "*.log" | xargs grep "ERROR"

例子:从当前目录开始查找所有扩展名为 .in 的文本文件,并找出包含 "thermcontact" 的行:

find . -name "*.in" | xargs grep "thermcontact"

压缩解压

tar

五个独立的参数,压缩解压都要用到其中一个,可以和别的参数连用但只能用其中一个:

  • -c:建立压缩档案
  • -x:解压
  • -t:查看内容
  • -r:向压缩归档文件末尾追加文件
  • -u:更新原压缩包中的文件

根据需要在压缩或解压档案时可选的参数:

  • -z:有 gzip 属性的
  • -j:有 bz2 属性的
  • -Z:有 compress 属性的
  • -v:显示所有过程
  • -O:将文件解开到标准输出

必须加的参数:

  • -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。(必须加)
# 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cf all.tar *.jpg

# 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rf all.tar *.gif

# 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uf all.tar logo.gif

# 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -tf all.tar

# 这条命令是解出all.tar包中所有文件,-x是解开的意思
tar -xf all.tar
查看

在不解压的情况下查看压缩包的内容:

tar -tf aaa.tar.gz
压缩

注意:多个文件夹,直接空格跟在后面就好。举例:tar –cvf jpg.tar *.jpg /home/jpg/*.jpg

将目录里所有 jpg 文件打包成 jpg.tar:

tar –cvf jpg.tar *.jpg

将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,命名为 jpg.tar.gz:

tar –czf jpg.tar.gz *.jpg

将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,命名为 jpg.tar.bz2:

tar –cjf jpg.tar.bz2 *.jpg

将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 compress 压缩,生成一个 umcompress 压缩过的包,命名为 jpg.tar.Z:

tar –cZf jpg.tar.Z *.jpg
解压

解压 tar 包:

tar –xvf file.tar

解压 tar.gz:

tar -xzvf file.tar.gz

解压 tar.bz2:

tar -xjvf file.tar.bz2

解压 tar.Z:

tar –xZvf file.tar.Z

gz

压缩
  • -c:将压缩数据输出到标准输出中,并保留源文件。
  • -d:对压缩文件进行解压缩。
  • -r:递归压缩指定目录下以及子目录下的所有文件。
  • -v:对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。
  • -l:对每一个压缩文件,显示以下字段。

    1. 压缩文件的大小;
    2. 未压缩文件的大小;
    3. 压缩比;
    4. 未压缩文件的名称。
  • -<数字>:用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。

语法:

gzip [选项] 源文件

基本压缩:

# 压缩instal.log 文件
# 注意:压缩文件生成,但是源文件也消失了
gzip install.log

保留源文件压缩:

# 使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样可以缩文件的同时不删除源文件
gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz

压缩目录:

gzip -r test/

注意:执行后 test 目录依然存在,并没有变为压缩文件。原来gzip命令不会打包目录,而是把目录下所有的子文件分别压缩。在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。

解压
  • -r:递归处理,解压缩指定目录下以及子目录下的所有文件。
  • -c:把解压缩后的文件输出到标准输出设备。
  • -f:强制解压缩文件,不理会文件是否已存在等情况。
  • -l:列出压缩文件内容。
  • -v:显示命令执行过程。
  • -t:测试压缩文件是否正常,但不对其做解压缩操作。

语法:

gunzip [选项] 文件

直接解压缩文件:

gunzip install.log.gz

当然,gunzip -r​ 依然只会解压缩目录下的文件,而不会解打包。要想解压缩 .gz​ 格式,还可以使用 gzip -d​ 命令,例如:

gzip -d anaconda-ks.cfg.gz

解压缩目录下的内容:

gunzip -r test/

注意,如果我们压缩的是一个纯文本文件,则可以直接使用 zcat​ 命令在不解压缩的情况下查看这个文本文件中的内容。例如:

zcat anaconda-ks.cfg.gz

zip

查看

只看一下 zip 压缩包中包含哪些文件,不进行解压缩:

unzip -l test.zip

查看显示的文件列表还包含压缩比率:

unzip -v test.zip

检查 zip 文件是否损坏:

unzip -t test.zip
压缩
  • -r:递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
  • -m:将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
  • -v:显示详细的压缩过程信息。
  • -q:在压缩的时候不显示命令的执行过程。
  • -<数字>:压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。
  • -u:更新压缩文件,即往压缩文件中添加新文件。

语法:

zip [选项] 压缩包名 源文件或源目录列表

基本使用:

# 单个文件
zip ana.zip anaconda-ks.cfg

# 多个文件
zip test.zip install.log install.log.syslog

压缩目录:

zip -r dir1.zip dir1
解压
  • -d:将压缩文件解压到指定目录下。如:-d /temp
  • -n:解压时并不覆盖已经存在的文件。
  • -o:解压时覆盖已经存在的文件,并且无需用户确认
  • -v:查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。
  • -t:测试压缩文件有无损坏,但并不解压。
  • -x:解压文件,但不包含文件列表中指定的文件。如:-x aa.txt

把文件解压到当前目录下:

unzip test.zip

如果要把文件解压到指定的目录下,需要用到 -d 参数:

unzip -d /temp test.zip

解压的时候,有时候不想覆盖已经存在的文件,那么可以加上 -n 参数:

unzip -n test.zip

unzip -n -d /temp test.zip

将压缩文件 test.zip 在指定目录 tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令覆盖原先的文件:

unzip -o test.zip -d /tmp/

rar

安装:

apt-get install rar unrar

rar:

  • a:压缩文件
  • p:设置密码。密码紧随其后,如-p123​。

unrar:

  • l[t,b]:列出压缩文件[技术信息,简洁]
  • v[t,b]:详细列出压缩文件[技术信息,简洁]
  • e:解压压缩文件到当前目录
  • x:用绝对路径解压文件
  • t:测试压缩文件​

注意:rar 的命令参数没有 -​ ,如果加上会报错。

压缩
# 使用a参数添加一个目录到一个归档文件中,如果该文件不存在就会自动创建
rar a test.rar .

rar a test.rar ./test
解压
# 全路径解压
unrar x test.rar

# 去掉路径解压
unrar e test.rar tmp/

7z

安装:

yum install -y p7zip

参数:

  • a:添加到压缩文件
  • b:基准测试,测试7z当前性能
  • d:从压缩文件中删除
  • e:从压缩文件中解压缩,但不包含目录结构(即所有各级文件都解压到一个目录里)
  • l:列出压缩文件的内容
  • t:测试压缩文件
  • u:更新文件到压缩文件
  • x:从压缩文件中解压缩,包含目录结构
查看
7za l c.7z
压缩
7za a -t7z -r test.7z test

# a  代表添加文件/文件夹到压缩包
# -t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。
# -r 表示递归所有的子文件夹

# --------------------------------------------------

# 压缩a.txt和b.txt到c.7z(命令a后的第一个为目标压缩文档名,然后是文件列表):
7za a c.7z a.txt b.txt

# 压缩 a.txt 和 b.txt 到 /home/www/c.7z(目录名包含空格,用引号):
7za a /home/www/c.7z a.txt b.txt
解压
# 解压缩test.7z到/home/www:
7za x test.7z -r -o/home/www

# x  代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)
# -r 表示递归解压缩所有的子文件夹
# -o 是指定解压到的目录,-o后是没有空格的,直接接目录。这一点需要注意。

查找已安装软件

rpm -qa | grep 软件包

系统问题汇总

Debian

开启 root 登录

默认情况下,Debian 操作系统不允许 root 用户直接登录。相反,您需要通过 sudo 命令以普通用户的身份执行特权命令。这是出于安全考虑,因为直接登录 root 账户存在一些潜在的风险。

然而,如果您仍然想要开启 root 登录,可以按照以下步骤操作:

  1. 使用普通用户登录系统。
  2. 打开终端并输入以下命令以切换到 root 用户:

    su root
  3. 编辑 /etc/ssh/sshd_config​ 文件,找到下面这一行并将其注释掉:

    #PermitRootLogin prohibit-password

    将其修改为:

    PermitRootLogin yes
  4. 保存并关闭文件。
  5. 重新启动 SSH 服务以使更改生效:

    systemctl restart ssh

现在,您应该能够直接使用 root 用户登录 Debian 系统。请记住,在使用 root 账户时,应该非常小心,避免不必要的操作或者错误,以避免系统受到损害或数据丢失。

posted @ 2023-09-05 12:54:00 猎隼丶止戈 阅读(38) 评论(0)
发表评论
昵称
邮箱
网址