• 开发笔记 —— Linux 下的常用命令(一)


    tar 命令

    tar 命令是 Linux 中常用的归档命令,可以将多个文件归档到一个文件中,也可以从归档文件中提取这些文件。

    归档方式有哪些?

    • gzip 以 .gz 结尾,最常用的压缩方式
    • bzip2 以 .bz2 结尾,压缩能力更强(压缩后的文件更小),使用较多
    • compress 以 .Z 结尾,使用较少
    • zip 以 .zip 结尾,压缩能力较低,跨平台做的较好,使用较少
    • rar 以 .rar 结尾,压缩能力较低,使用较少

    tar 命令的[选项] 参数

    • -c 建立打包文件
    • -f 指定打包文件名称,tar 命令必须要有该选项
    • -t 查看打包文件中包含的文件名
    • -r 增加文件到打包文件中
    • -v 显示过程
    • -x 解包
    • -z 通过 gzip 过滤归档
    • -Z 通过 compress 过滤归档
    • -C 该选项用于解压缩,若要解压到指定目录,可通过该选项指定

    vim

    Vi 的改进版本,一个程序员文本编辑器,它主要有三种模式

    一般模式

    以vim打开一个文件就直接进入一般模式(默认模式)可以使用上下左右移动光标来移动光标,也可以使用删除字符来处理文件内容,也可以使用复制、粘贴来处理文件数据。

    移动光标

    指令解释
    [h]
    [j]
    [k]
    [l]
    [H]光标移到当前屏幕最上方行的第一个字符
    [M]光标移到当前屏幕中间行的第一个字符
    [L]光标移动到当前屏幕最下方行第一个字符
    [G]移到此文件最后一行
    n[G]移到第n行
    n[Enter]光标下移n行
    [Ctrl]+[f]屏幕向下移动一页
    [Ctrl]+[b]屏幕向上移动一页
    [0][Home]移动光标所在行的行首
    [$][End]移到光标所在行的行尾

    删除

    指令解释
    [x]向后删除一个字符
    n[x]向后删除n个字符(n为数字)
    [X]向前删除一个字符
    [d][d]删除光标所在行
    n[d][d]删除光标所在行以下n行(n为数字,包含当前行在内)
    [d][1][G]删除光标所在行到第一行所有数据
    [d][G]删除光标所在行到最后一行
    [d][$]删除光标所在处到同行最后一个字符
    [d][0]删除光标所在处到同行第一个字符

    复制

    指令解释
    [y][y]复制光标所在行
    n[y][y]复制光标所在向下n行(n为数字)
    [y][1][G]复制光标所在行到第一行所有数据
    [y][G]复制光标所在行到最后一行所有数据
    [y][$]复制光标所在处到同行最后一个字符
    [y][0]复制光标所在处到同行第一个字符
    [p]小写字母 p,将已复制的数据粘贴到光标所在下一行
    [P]大写字母 p,将已复制的数据粘贴到光标所在上一行
    [u]小写字母 u,复原前一个操作(类似于windows中的ctrl+z)
    [ctrl][r]恢复上一次撤销的内容(类似于windows中的ctrl+y)

    编辑模式

    在一般模式中可以删除、复制、粘贴等,但无法编辑文件内容。按下i、I、o、O、a、A、r、R等任何一个字母后进入编辑模式。并在左下方出现INSERT或REPLACE。该模式下可以输入文件内容。按下返回一般模式。

    指令解释
    [i]从光标所在处插入
    [I]从所在行第一个非空白字符处插入
    [a]从光标所在下一个字符处插入
    [A]从光标所在行最后一个字符处插入
    [o]在光标所在处下一行插入新的一行
    [O]在光标所在处上一行插入新的一行
    [s]删除光标所在的字符并开始插入
    [S]删除光标所在行并开始插入
    [r]替换光标所在处字符一次
    [R]一直替换光标所在处文字直到按下Esc

    命令模式

    在一般模式当中,输入:/?三个字符中的任何一个按钮,就可以将光标移动到最下面那一行。在这个模式当中,可以提供查询、替换等功能。同时存盘、离开vi、显示行号等等命令都是在此模式进行。例如,:wq即可保存退出。

    查找

    指令解释
    /word向下查找单词“word”
    ?word向上查找单词“word”

    替换

    指令解释
    :s/word1/word2/g在当前行将word1替换成word2
    :%s/word1/word2/g在当前文件将word1替换成word2
    :n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2 (n1、n2为数字)
    :1,$s/word1/word2/g从第一行到最后一行查找word1替换成word2
    :1,$s/word1/word2/gc同上,在替换前confirm是否替换

    其他

    指令解释
    :set nu显示行号
    :set nonu取消显示行号
    :w将文件存盘
    :w [filename]另存为filename
    :r [filename]读取filename指定文件中的内容到光标所在的行
    :n1,n2 w [filename]将n1到n2行另存为filename
    :wq保存后离开
    :q!不保存,强制离开
    :wq!强制保存退出
    :! command临时切换到命令行模式下执行command命令。

    例如 :!ls /home 即可在vim当中查看/home下面以ls输出的文件信息。

    模式切换

    模式切换

    ssh

    该指令是 OpenSSH SSH客户端,用于远程登录程序。在 window 10 的操作系统中也可用。

    用法:ssh [用户名]@[目标主机 IP]

    示例:ssh root@192.168.1.120

    免密登录

    在每次使用 ssh 的时候,会被要求输入密码。如果多台操作系统中需要来回切换使用的话,就会很繁琐。我们可以使用 ssh-keygenssh-copy-id 两个命令来实现免密登录的配置,具体如下:

    [root@h150 ~]# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:/SjKbSI59e5S7NmM/jmk9PJd8C1a9EebX3hmpyeRTCM root@h150.c7
    The key's randomart image is:
    +---[RSA 2048]----+
    |                 |
    |                 |
    |                 |
    |         .  E o  |
    |       .S . .+.o.|
    |      . + .o ++=o|
    |     o =.O. . *+X|
    |    +.ooO.=o +.**|
    |     ooB=++.o .o.|
    +----[SHA256]-----+
    [root@h150 ~]# 
    [root@h150 ~]# ssh-copy-id root@h150.c7
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@h150.c7's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@h150.c7'"
    and check to make sure that only the key(s) you wanted were added.
    
    [root@h150 ~]# 
    
    • 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

    完成之后,再次使用 ssh 进行远程登录时候,就不会再要求输入密码了。

    scp

    该指令用于远程文件复制程序。在 window 10 的操作系统中也可用。

    从 Linux 复制文件到 window:

    scp root@192.168.1.120:/root/anaconda-ks.cfg C:/ 
    
    • 1

    示例上传:

    scp C:/anaconda-ks.cfg root@192.168.1.120:/root/
    
    • 1

    firewalld

    在 RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。

    • 启动: systemctl start firewalld
    • 状态: systemctl status firewalld
    • 停止: systemctl disable firewalld
    • 禁用: systemctl stop firewalld
    指令解释
    firewall-cmd --list-ports查看开放的端口
    firewall-cmd --add-port=9000/tcp --permanent永久开放指定端口
    firewall-cmd --remove-port=9000/tcp --permanent永久移除指定端口
    firewall-cmd --reload重启防火墙

    netstat

    利用 netstat 指令可让你得知整个 Linux 系统的网络情况,最常用的就是查看端口占用情况。例如: netstat -antp

    参数说明:

    参数解释
    -a 或 --all显示所有连线中的Socket。
    -n 或 --numeric直接使用IP地址,而不通过域名服务器。
    -t 或 --tcp显示TCP传输协议的连线状况。
    -u 或 --udp显示UDP传输协议的连线状况。
    -p 或 --programs显示正在使用Socket的程序识别码和程序名称。

    列信息:

    列名描述
    Proto通信协议
    Recv-Q已接收的队列
    Send-Q已发送的队列
    Local Address本地主机的地址(包括端口)
    Foreign Address外部主机的地址(包括端口)
    State当前状态
    PID/Program name进程ID / 运行的程序的名称

    其他常用命令

    指令解释
    service network restart重启网卡
    free查看当前主机的内存信息
    df查看当前主机的磁盘信息
    ps -aux查看当前主机正在运行的进程
  • 相关阅读:
    2022-2028年全球与中国工程夯锤市场现状及未来发展趋势分析报告
    HDFS 伪分布式环境搭建
    Naive UI数据表格分页pageCount配置没效果
    微信小程序开发:接入阿里云人像动漫化api接口
    海外代理IP哪个可靠?如何测试代理的稳定性?
    QT人脸识别知识
    煤矿皮带跑偏监测识别系统
    泛型边界的问题
    40G数据中心解决方案指南
    Spring 10: AspectJ框架 + @Before前置通知
  • 原文地址:https://blog.csdn.net/marvelousness/article/details/125559959