“【Linux 常用命令】”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第19行: 第19行:
     1、Red Hat 只允许使用官方支持的仓库升级内核。
     1、Red Hat 只允许使用官方支持的仓库升级内核。
     2、CentOS 允许使用 '''ELRepo'''(这是一个第三方仓库,可以将内核升级到最新版本)。
     2、CentOS 允许使用 '''ELRepo'''(这是一个第三方仓库,可以将内核升级到最新版本)。
ELRepo 仓库使用,参见: '''http://elrepo.org/tiki/HomePage'''


* 更新之前应当做好重要数据的备份。
* 更新之前应当做好重要数据的备份。

2021年11月25日 (四) 22:05的版本


系统版本

  1. 查看系统的发行版本:
    cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core)
    
  2. 查看系统的内核版本:
    uname -r
    5.2.8-1.el7.elrepo.x86_64
    

CentOS 更新

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。但是,这只会升级内核到仓库中可用的最新版本——而不是在 https://www.kernel.org/ 中可用的最新版本。

注意:
   1、Red Hat 只允许使用官方支持的仓库升级内核。
   2、CentOS 允许使用 ELRepo(这是一个第三方仓库,可以将内核升级到最新版本)。

ELRepo 仓库使用,参见: http://elrepo.org/tiki/HomePage
  • 更新之前应当做好重要数据的备份。


  1. 检查你的 CentOS 版本。
    # 查看 CentOS 版本
    cat /etc/redhat-release
    CentOS Linux release 7.1.1503 (Core)
    
  2. 升级内核:【两种方式】
    1. 使用官方支持的仓库:
      # 清除 YUM 缓存
      yum clean all
      
      # yum更新(一次性更新所有软件到最新版本)
      yum update
      
    2. 使用第三方仓库 ELRepo
      1. 安装内核:
        # 导入 elrepo 软件源的 GPG 公钥
        rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
        
        # 导入 elrepo 软件源
        rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
        
        # 下载并安装新的内核(最新的主线稳定内核)
        yum --enablerepo=elrepo-kernel install kernel-ml -y
        
        • 仓库启用后,可以使用下面的命令列出可用的内核相关包:
          yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
          
      2. 设置 GRUB 默认的内核版本:
        grub2-set-default 0
        
        • 如果手动修改过 Grub 的配置文件(“/etc/default/grub”),该命令可能无法执行成功。
        • 手动设置 GRUB 默认的内核版本:
          1. 修改 Grub 配置文件:
            vi /etc/default/grub
            
            ...
            GRUB_DEFAULT=0
            ...
            
          2. 重新创建内核配置:
            grub2-mkconfig -o /boot/grub2/grub.cfg
            
  3. 重启服务器:
    reboot
    
  4. 确认升级:
    # 查看 CentOS 版本
    cat /etc/redhat-release
    CentOS Linux release 7.4.1611 (Core)
    

systemctl

systemctl 是 CentOS 7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体。

常用命令:

# 启动一个服务:
systemctl start firewalld.service
# 关闭一个服务:
systemctl stop firewalld.service
# 重启一个服务:
systemctl restart firewalld.service
# 显示一个服务的状态:
systemctl status firewalld.service

# 在开机时启用一个服务:
systemctl enable firewalld.service
# 在开机时禁用一个服务:
systemctl disable firewalld.service
# 查看服务是否开机启动:
systemctl is-enabled firewalld.service

# 查看已启动的服务列表:
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表:
systemctl --failed

防火墙

  1. firewalld 的基本使用:
    # 启动
    systemctl start firewalld
    # 关闭
    systemctl stop firewalld
    # 查看状态
    systemctl status firewalld
    
    # 开机禁用
    systemctl disable firewalld
    # 开机启用
    systemctl enable firewalld
    
    • (“firewalld”或“firewalld.service”)
  2. 配置 firewalld-cmd:
    # 查看版本: 
    firewall-cmd --version
    # 查看帮助: 
    firewall-cmd --help
    # 显示状态: 
    firewall-cmd --state
    # 重新载入防火墙配置
    firewall-cmd --reload
    
    # 添加端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    # 删除端口
    firewall-cmd --zone= public --remove-port=80/tcp --permanent
    # 查看端口
    firewall-cmd --zone= public --query-port=80/tcp
    # 查看所有打开的端口: 
    firewall-cmd --zone=public --list-ports
    
    # 查看区域信息:  
    firewall-cmd --get-active-zones
    # 查看指定接口所属区域: 
    firewall-cmd --get-zone-of-interface=eth0
    
    # 拒绝所有包:
    firewall-cmd --panic-on
    # 取消拒绝状态: 
    firewall-cmd --panic-off
    # 查看是否拒绝: 
    firewall-cmd --query-panic
    
    • “--permanent”:永久生效,没有此参数重启后失效。


压缩/解压

Linux 下常见的压缩包格式有 5 种: zip、tar.gz、tar.bz2、tar.xz、tar.Z;

  • 其中:tar 是种打包格式,gz / bz2 后缀才是指代压缩方式(gzip / bzip2);
  • 压缩率一般来说:tar.bz2 > tar.gz > zip > tar;压缩率越高,压缩以及解压的时间也就越长。

支持的格式

格式 命令
常用格式
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
  • 注意:tar 是打包,不是压缩
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz.tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
.tar.bz
解压:tar jxvf FileName.tar.bz
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
  • 注意:“Z”是大写;
其他格式
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -

tar

常用参数说明:

参数 描述
操作类型 -c 建立压缩档案
-x 解压
-t 查看内容
# 查看test包中有哪些文件,但不解压
tar -tvf test.tar
-r 向压缩归档文件末尾追加文件
# 在test.tar包中增加文件
tar -rf test.tar testfile
  • 只针对tar包
-u 更新原压缩包中的文件
# 更新压缩包中的test文件
tar -uf test.tar --add-file=test
文件格式 -z 有 gzip 属性的(gzip 格式,以“.tar.gz”/“.tgz”为扩展名)
-j 有 bzip2 属性的(以“.tar.bz2”/“.tar.bz”为扩展名)
-Z 有 compress 属性的(以“.Z”为扩展名)
其他参数 -v 显示详细过程
-f 指定档案名字
  • 这个参数是必须的
  • 这个参数必须是最后一个参数,后面只能接档案名。
-O 将文件解开到标准输出
可选参数
--add-file 向包中添加文件
# 更新压缩包中的test文件
tar -uf test.tar --add-file=test
  • 只针对tar包
--delete 删除包中文件
# 从test.tar中删除test1文件
tar --delete -f test.tar test1
--exclude 排除文件
#打包test目录下所有文件,排除以.log结尾的文件
tar -zcvf test.tar.gz --exclude=test/*.log test/*
--remove-files 移除源文件
# 压缩后删除源文件
tar -zcvf test.tar.gz test.log --remove-files
--strip-components 去除目录
# 解压时去掉一层目录
tar -xvf test.tar.gz --strip-components=1
  • 关于 tar 的详细命令可以使用以下命令获取:
    tar --help
    
  • 事实上, 从 1.15 版本开始 tar 解压时可以自动识别压缩的格式,故不需人为区分压缩格式就能正确解压:
    tar -xvf filename.tar.gz
    tar -xvf filename.tar.bz2
    tar -xvf filename.tar.xz
    tar -xvf filename.tar.Z
    

zip/unzip

zip 和 unzip 命令主要用于处理zip包。

参数说明:

参数 描述
压缩
-d 从压缩文件内删除指定的文件。
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
- <压缩效率> 压缩效率是一个介于 1-9 的数值。
解压
-l 显示压缩文件内所包含的文件
-j 只保存文件名称及其内容,而不存放任何目录名称。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该
-v 显示指令执行过程或显示版本信息。
-d 指定解压目录,目录不存在会创建

示例:

  1. 压缩:
    #打包test目录下的文件
    zip -r test.zip test/ 
    #打包test目录下文件,且压缩包不带test目录
    zip -rj test.zip test/ 
    
    # 指定压缩率打包文件:数值(1-9)越大,压缩率越高,耗时越长
    zip -r8 test.zip test/* 
    
    # 打包符号链接文件
    zip -ry test.zip test
    
    # 向压缩包中增加或更新文件test2
    zip -u test.zip test2 
    
    # 压缩时加密,密码为66666
    zip -r test.zip test1 test -P 66666
    
    # 删除压缩包的特定文件 test
    zip -d test.zip test
    
  2. 解压:
    # 查看压缩包中的文件信息
    # 1、可以看到压缩包中的文件名,日期等信息
    unzip -l test.zip 
    # 2、查看更多信息,例如crc校验信息等
    unzip -v test.zip 
    
    # 解压压缩包,到dir目录
    unzip -o test.zip -d dir
    
    # 解压包中指定的文件(如果不知道需要解压的文件名,可先查看包中的文件)
    # 1、解压包中的 1.log 文件到 dir 目录
    unzip -o test.zip "1.log" -d dir 
    # 2、解压包中所有的 log 文件
    unzip -o tet.zip "*.log" -d dir  
    
    # 解压时去掉目录结构
    zip -oj test.zip -d ./temp
    
    # 解压jar包
    unzip -o java.jar -d dir
    

gzip

tar命令带有 -z 参数,并且打包成 tar.gz 文件时,便调用 gzip 进行了压缩。

  • gzip对文本的压缩率约有 60%~70%,压缩包文件常以 gz 为后缀。

参数说明:

参数 描述
-k 保留源文件
-d 解开压缩文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程

示例:

# 使用 -k 参数保留源文件
# 1、对当前目录下所有文件进行压缩,每个文件一个gz包
gzip -k ./* 
# 2、递归压缩
gzip -rkv ./* 

# 解压
gzip -dv test.gz

bzip2

tar 命令使用 -j 参数将文件打包为 tar.bz2 时,便调用了 bzip2 进行压缩。

  • bzip2 压缩或解压后,会将源文件删除


示例:如果需要保留源文件,可使用 -k 参数

# 压缩test文件
bzip2 -zk test 

# 解压
bzip2 -dk test.bz2  

rar/unrar

rar 和 unrar 命令并非 linux 发行版自带命令,需要另外安装。


示例:

# 压缩:将test文件压缩为test.tar
rar a test.tar test 

# 解压 test.tar
rar e test.rar       
# 解压 test.tar
unrar x test.rar

其他命令

命令 说明
start X 进入图形界面
shutdown -h now 立即关机
  1. poweroff 关机(poweroff -f 强制关机)
shutdown -r now 立即重启
logout 注销
man 命令 显示命令的用法
history 显示命令历史记录
  1. history 5:显示最近使用的5个历史命令

执行历史命令:

  1. !5:执行历史编号为5的命令
  2. !ls:执行最后一次以ls开头的命令
env 显示当前系统的环境变量
  • “tab”键:双击命令提示,单机补全(当前目录下有的)文件名称。

超级管理员

当前用户下使用超级管理员(root):

su - root

关机

  1. shutdown -h now
  2. poweroff

Note:

  1. 用poweroff,三个机器(问题与系统无关,centos、Debian、suse)都出现了
    “System has not been booted with systemd as init system (PID 1). Can't operate.”
    
    需要“sudo poweroff -f”才能关键

清屏

在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?

  1. clear:这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。
  2. Ctrl+l(小写的L):这是一个清屏的快捷键,工作中用得最多的一种清屏方式。【效果同 clear】。
  3. reset:这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。
    • 值得一提的是 reset 命令在你的终端控制错乱时非常有用。
      如:“输入字符不出现在光标的位置的情况。还有当你敲击回车键时,新提示符并没有出现在新行上,而是出现在老提示符的前面”。此时reset命令就能用来修正这些问题。
  4. printf "\033c":这个命令它才是真正的清空了终端屏幕,它的功能跟 DOS 里 CMD.EXE 提供的 CLS 效果很相似。

关于“printf "\033c"”

这个命令究竟是做什么的?它的工作原理是什么?

	\033 == \x1B == 27 == ESC

即这个命令变成了 <ESC>c,它是 VT-XXX 中表示“Full Reset (RIS)”的转义码。
它的另一种实现方式也可以这样:

键盘上:“Ctrl+v--->Esc-->输入c再回加”。
  1. (现今我们使用的所有的终端都是VT兼容的)
  2. 但如果你发现自己使用的是一个非常奇怪的终端(如putty),那这个命令可能用不了。
  • printf 是 bash 里内置的命令,内置命令的优先级比其它可执行文件要高。

为命令设置快捷方式

在 PATH 路径下,如 /usr/bin/ 目录下。新建一个名为 cls 的文件,加上执行权限,写入如入内容:

[root@iZbp168 bin]# vim cls
#!/bin/bash
#
printf "\033c"

这样每次需要清屏的时候,只需要输入cls命令就可以了。