• Linux指导的常用命令


    0. 特别说明

    1. Tab键能将命令自动补全

    2. 命令过长,若要换行,可以输入\
      在这里插入图片描述

    3. 查看命令帮助:命令 --help

    4. 命令的多个可选项可以分开,也可以放在一起。\
      在这里插入图片描述

    5. 可选项可以合在一起,也可以分开。比如rm -r -f /a.sh可简写为rm -rf /a.sh

    6. 当路径中存在通配符时:不要用引号(单引号、双引号),否则会报错,因为在引号里面通配符会被当做是字符。

      mypath=./local_tds_operator
      # 1. 正确 
      ls -l $mypath/*/*/bin  
      
      # 2. 错误 
      (1) 双引号
      ls -l "$mypath/*/*/bin"  echo "$mypath/*/*/bin" # 输出:./local_tds_operator/*/*/bin 
      (2) 单引号 
      ls -l '$mypath/\*/\*/bin' echo
      '$mypath/\*/\*/bin' # 输出:$mypath/\*/\*/bin 
      

    1. 权限相关

    1. 管理员登陆:su root

    2. sudo 具体命令:给用户配置管理员权限后,再配合sudo指令,用户就可以使用管理员权限运行此指令。比如:sudo reboot

    3. chown:修改组权限 https://blog.csdn.net/qq_27870421/article/details/92823275

    4. chmod:更改用户对文件的权限

      1. 修改权限位:chmod 权限位 文件路径
        在这里插入图片描述

        第一个字符表示的是文件的类型,后面的 9 个字符,3个 3个 为一组,从左向右 分别表示的是 拥有者 所属组 其他人

      2. 一次只添加一种权限:chmod a+w 文件名 其中a是所有人,+表示添加,w是可写入权限
        #! /bin/bash
        chmod a+x spark-shell.sh # 为所有用户添加spark-shell.sh文件的可执行权限,权限位变成 --x --x --x
        chmod +x spark-shell.sh  # 为当前用户添加spark-shell.sh文件的可执行权限,权限位变成 --x --- ---
        
    5. 查看当前用户:whow

    6. 查看所有用户:ls /home

    7. 增/删用户:Linux创建新用户

    8. 切换用户:https://blog.csdn.net/liu_chen_yang/article/details/123630099

    2. 打印相关

    1. 打印该变量的值或打印某段话: echo $变量名

      如果要取消换行可以加入可选项n,如: echo -n "abc"

    2. 打印文件内容:
      1. cat 文件路径:查看文件所有内容
      2. tail -200 文件路径:查看文件末尾200行内容

    3. 路径相关

    1. 打印当前绝对路径:pwd

    2. 打印某个文件的目录路径,相当于移除了文件名:dirname 文件名
      在这里插入图片描述

    3. 切换路径:

      • 切换到任意路径:cd 绝对路径。比如切换到root:cd /root
      • 进入子文件夹:cd 子文件夹名。比如当前在/root,要进入/root/file,则:cd file
      • 返回到上个文件夹:cd ..
      • cd /:切换到根目录
      • cd .:切换到当前目录 (.表示当前目录,但这个命令好像没有太大作用,基本不用)
      • cdcd ~:回到当前用户目录

    4. 文件相关

    4.1 文件增加

    1. 创建文件夹:
      1. 不嵌套创建:mkdir 文件夹名
      2. 嵌套创建:mkdir -p 文件夹名, 比如mkdir aaa/bbb/ccc
    2. 创建文件:详细情况
      1. > 文件名
      2. touch 文件名
      3. vim 文件名

    4.2 文件删除

    1. 删除当前目录
      1. 单个删除:rm -f 文件名
      2. 多个文件:rm -f 文件名1 文件名2 文件名3
      3. 配合正则表达式批量删除文件:rm -f part*
    2. 删除当前目录以及子文/目录:在上面的基础上加上可选项r,如:rm -r -f 文件夹名或文件名
      1. rm命令是remove的简写,用于删除文件;
      2. -r:是rm命令的可选项,表示递归处理,将指定目录下的所有文件与子目录一并处理;
      3. -f:是rm命令的可选项,表示强制删除文件或目录。

    4.3 文件修改

    1. 修改文件内容
      1. 方式一:vim 文件路径 (常借用Tab键补全文件名)
      2. 方式二:使用echo命令,echo 字符串/文件名
        • echo '要追加的文字'或文件路径 >> 文件路径:追加到文件末尾
          echo 'export SPARK_HOME=/usr/local/spark' >> /etc/profile
          
        • echo '要追加的文字'或文件路径 > 文件路径:覆盖写入
    2. 修改文件名:mv 原文件名 新文件名

    4.4 文件查看

    1. 打印当前目录下的所有文件和目录:

      1. 命令:
        1. ls [-选项] [相对或绝对路径]:看文件简要信息
          • 查看文件类型ls -l
        2. ll [-选项] [相对或绝对路径]:看文件详细信息 点击见详情
      2. 选项:
        1. -a:可以显示所有文件包括隐藏文件
        2. -h:已适当单位显示文件大小,默认是单位是B
          在这里插入图片描述
    2. 在某个路径下递归查找某个文件/目录:

      1. 命令:find 路径 选项
      2. 可选项:
        1. -name 文件名:根据文件名查找

          注意:这里的文件名可以用正则表达式

        2. -type f|d:根据文件类型查找,f表示普通文件,d表示文件夹
          在这里插入图片描述
    3. 查看文件个数:

      ll | grep '^-' | wc -l
      
    4. 打印文件内容:

      1. 小文件:
        1. cat 文件路径:不显示行号
          cat -n 文件路径:显示行号
        2. head -n 数字 文件路径tail -n 数字 文件路径:查看前n行,后n行
          tail -f 文件路径:动态打印文件内容,在查看动态生成的日志时非常有用
      2. 大文件:less,需要yum intsall less,且不常用,不介绍。
      3. more:命令允许用户逐页查看内容,这对于阅读大型文件特别有用。常结合上面的指令使用。
        在这里插入图片描述
        # 例子
        cat filename | more
        

    4.5 文件复制

    1. 复制文件:cp 文件路径 目的路径
    2. 复制整个目录以及子文件/目录:cp -r 目录路径 目的路径

    4.6 文件合并

    文件合并:
    在这里插入图片描述
    >是覆盖写入
    >>是追加写入

    5. 内容筛选(三剑客)

    5.1 筛选行:grep

    1. 语法:grep [选项] '搜寻字符串' 文件名

      注意:是以行为单位进行查找,并能跨行查找

    2. 说明:

      1. 可选项说明
        1. -i:不区分大小写
        2. -v:反向选择,当前的结构取反
        3. -n:顺便输出行号
          在这里插入图片描述
        4. -E:要搜寻的字符串可以使用可扩展的正则表达式
        5. -r:递归查询,如果当前为文件夹,则会在该文件夹下的所有文件中查找
      2. 搜寻字符串说明:默认就可以使用正则表达式
        1. ^a:依次查找所有行,返回以 a开头 的行
        2. a$:依次查找所有行,返回以 a结尾 的行
        3. [abc]或者[a-c]:原子匹配字符
        4. .:除\n\r的单个字符
        5. *:0个1个或多个字符
        6. +:1个或多个字符
    3. 例子:

      # 创建grepf1文件, 内容如下
      [root@localhost ~]# vim grepf1
      aabbccaa
      ddaamm
      bbddee
      hello world
      one world 
      one dream
      
      
      # 筛选带有aa的行
      [root@localhost ~]$ grep aa grepf1
      aabbccaa
      ddaamm
      
      
      # 筛选不带有aa的行
      [root@localhost ~]$ grep -v aa grepf1
      bbddee
      hello world
      one world
      one dream
      
      # 筛选以a开头的行
      [root@localhost ~]$ grep ^a grepf1
      aabbccaa
      
      
      # 筛选以a结尾的行
      [root@localhost ~]$ grep a$ grepf1
      aabbccaa
      
      
      # 筛选a-c范围的行
      [root@localhost ~]$ grep [a-c] grepf1
      aabbccaa
      ddaamm
      bbddee
      one dream
      
      
      [root@localhost ~]$ grep a.b grepf1
      aabbccaa
      
      
      [root@localhost ~]$ grep ab. grepf1
      aabbccaa
      
      [root@localhost ~]$ grep a*b grepf1
      aabbccaa
      bbddee
      
      
      [root@localhost ~]$ grep ab* grepf1
      aabbccaa
      ddaamm
      one dream
      

    5.2 切分并筛选列:awk

    5.3 筛选|删除|替换:sed

    对比于grep的筛选行,sed的筛选不支持正在表达式,主要用来进行字符串替换。

    1. 语法:

      1. 从文件中查找内容:/../p是查找
        # 1. 第N行匹配,此行匹配到字符串,则输出此行
        sed -n 'Np' 文件名
        
        # 2. 第N1到N2逐行匹配,此行匹配到字符串,则输出此行
        sed -n 'N1,N2p' 文件名
        
        # 3. 逐行匹配,此行匹配到字符串,则进行字符串替换,再输出替换后的行
        sed -n '/sss/p' 文件名
        
      2. 从文件中删除行:/../d
        # 逐行匹配,此行匹配到字符串,则删除此行
        sed '/sss/d' 文件名
        
      3. 从文件中查找并替换:s/../../g (这里的g可以省略,即s/../../) 是替换,并修改原文件
        # 1. 逐行匹配,将此行中匹配到的字符串进行替换,并将替换后的内容输出到屏幕(不修改文件内容)
        sed 's/搜寻的字符串/替换的字符串/g' 文件名
        
        # 2. 从N1到N2行中,逐行匹配,将此行中匹配到的字符串进行替换,并将替换后的内容输出到屏幕(不修改文件内容)
        sed 'N1,N2 s/搜寻的字符串/替换的字符串/g' 文件名
        
        # 3. 加上-i参数,代表对原文件生效
        sed -i 's/搜寻的字符串/替换的字符串/g' 文件名
        sed -i 'N1,N2 s/搜寻的字符串/替换的字符串/g' 文件名
        

        注意:tr也可以用于替换,但是只能用于字符替换。

        echo 'aaa bbb' | tr ' ' '\n'
        # 输出:
        aaa
        bbb
        
    2. 例子:

      # 【模拟替换】全局搜寻inet替换为hhhh,并将替换后的内容输出到屏幕, ip_file文件内容不变
      [root@localhost ~]$ sed 's/inet/hhhh/g' ip_file
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          hhhh 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          hhhh6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          hhhh 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          hhhh6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      [root@localhost ~]$ 
      # ip_file文件内容不变
      [root@localhost ~]$ cat ip_file
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          inet 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          inet6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      
      # 【真正替换】 ip_file文件内容改变
      [root@localhost ~]$ sed -i 's/inet/hhhh/g' ip_file
      [root@localhost ~]$ cat ip_file
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          hhhh 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          hhhh6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          hhhh 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          hhhh6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      
      # 【模拟替换】 搜寻1到2行中link替换为mmmm,并将替换后的内容输出到屏幕
      [root@localhost ~]$ sed '1,2 s/link/mmmm/g' ip_file 
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          mmmm/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          hhhh 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          hhhh6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          hhhh 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          hhhh6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      # 文件并没有改变
      [root@localhost ~]$ cat ip_file
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          hhhh 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          hhhh6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          hhhh 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          hhhh6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      # 【真正替换】 文件内容改变,但也只改变强两行符合条件的数据
      [root@localhost ~]$ sed -i '1,2 s/link/mmmm/g' ip_file
      [root@localhost ~]$ cat ip_file
      1: lo: ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          mmmm/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          hhhh 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          hhhh6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: ens33: ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:e3:58:3f brd ff:ff:ff:ff:ff:ff
          hhhh 192.168.142.177/24 brd 192.168.142.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          hhhh6 fe80::20c:29ff:fee3:583f/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      

    6. 计算相关

    1. 统计命令:wc 选项 文件名
      1. 选项:
        1. -l:计算行数。例如,wc -l file.txt会输出file.txt中的行数。
        2. -w:计算单词数。例如,wc -w file.txt会输出file.txt中的单词数。
        3. -c:计算字节(byte)数。例如,wc -c file.txt会输出file.txt中的字节数。
        4. -m:计算字符数。例如,wc -m file.txt会输出file.txt中的字符数。
      2. 不带选项:会输出行数、单词数、字节数
        echo -e "hello world\nhow are you" | wc
        # 输出:
              2       5      24
        
      3. 一些案例
        1. 计算当前目录的子目录数量:
          ls -l | grep "^d" | wc -l
          
        2. 计算当前目录和所有子目录的目录数量:
        find . -type d | wc -l
        

    6. 管道符号

    使用|可将多个命令串行执行,示意图如下:
    在这里插入图片描述
    比如:

    # 打印spark-shell.sh文件,筛选出前20行显示在屏幕上
    cat spark-shell.sh | head -n 20
    

    7. 输入输出重定向

    7.1 输出重定向

    linux执行任何一个命令,会存在两种种情况:

    1. 执行成功了,会把成功结果输出到屏幕。
    2. 命令执行有错误,会把错误也输出到屏幕上面。

    默认都是将结果输出到屏幕,如果需要将结果写入到文件,而不打印到屏幕上,就需要用到重定向。

    1. 语法:

      1. >表示覆盖写入文件。
        cat spark-shell.sh rm> temp
        
      2. >>表示最加写入文件。eg:``
        cat spark-shell.sh >> temp
        
    2. 筛选输出:

      1. 0>:只存放成功信息
      2. >1>:只存放错误信息,默认是这个
      3. 2>&1:错误信息和成功信息都存放
        在这里插入图片描述
        # 将错误信息存放到日志中
        ls zhangsan wangwu 0> log
        # 将正确信息存放到日志中
        ls zhangsan wangwu > log
        # 将错误和正确信息全部存放到日志中
        ls zhangsan wangwu > log 2>&1
        
    3. 无底洞:如果执行结果不需要写入到日志,也不需要打印到屏幕时,可以写入到 /dev/null

      echo "aaaa" > /dev/null
      cat /dev/null  # 会发现null文件中没有内容
      

    7.2 输入重定向

    用于一次性输入多行代码。

    1. 语法:命令 << 自定义结束符
    2. 例子:
      1. 例子1:输入数据,以aaa结束输入,然后将输入数据打印
        在这里插入图片描述
      2. 例子2:输入数据,以aaa结束输入,然后将输入数据输出到log文件中
        在这里插入图片描述

    8. 系统操作

    1. 退出:exit
    2. 重启:
      1. 重启网络:service network restart
      2. 主机重启:reboot
    3. 清屏:clear 或 按快捷键ctrl + l
    4. 结束进程:kill -p 进程号 【kill命令详细描述】
    5. 将windows下复制的内容粘贴到CentOS系统的终端中:ctrl + shift + v
    6. 复制CentOS系统的终端中的内容:ctrl + shift + c
    7. source 脚本名:命令可以使得脚本中定义的变量和函数等在当前shell中保留。
    8. 程序休眠:sleep
      sleep 5   # 暂停5秒
      sleep 1m  # 暂停1分钟
      sleep 2h  # 暂停2小时
      sleep 3d  # 暂停3天
      

    9. 日期命令

    1. 语法:date 选项 时间格式
    2. 选项
      1. -d 字符串:将字符串按照指定时间输出。字符串前后必须加上双引号。
        [wanghao115@gzxj-sys-rpm001-3eed8.gzxj.baidu.com ~]$ date -d "2012-11-20 14:21:31" +"%Y/%m/%d %H:%M.%S"
        2012/11/20 14:21.31
        
      2. -s 字符串 :根据字符串来设置当前时间。字符串前后必须加上双引号。只有root权限才能设置,其他只能查看
        date -s "2012-05-23 01:01:01"
        
    3. 时间格式: +"格式化字符",将时间以指定格式显示。常见date +"%Y%m%d"
      1. 格式化字符

        %%   输出字符 %
        %a   星期几的缩写 (Sun..Sat)
        %A   星期的完整名称(Sunday..Saturday)%b   缩写的月份名称(例如,Jan)
        %B   完整的月份名称(例如,January)
        %c   本地日期和时间(例如,Thu Mar  3 23:05:25 2005)
        %C   世纪,和%Y类似,但是省略后两位(例如,20)
        %d   日 (01..31)
        %D   日期,等价于%m/%d/%y
        %e   一月中的一天,格式使用空格填充,等价于%_d
        %F   完整的日期;等价于 %Y-%m-%d
        %g   ISO 标准计数周的年份的最后两位数字
        %G   ISO 标准计数周的年份,通常只对%V有用
        %h   等价于 %b
        %H   小时 (00..23)
        %I   小时 (01..12)
        %j   一年中的第几天 (001..366)
        %k   小时,使用空格填充 ( 0..23); 等价于 %_H
        %l   小时, 使用空格填充 ( 1..12); 等价于 %_I
        %m   月份 (01..12)
        %M   分钟 (00..59)
        %n   新的一行,换行符
        %N   纳秒 (000000000..999999999)
        %p   用于表示当地的AM或PM,如果未知则为空白
        %P   类似 %p, 但是是小写的
        %r   本地的 12 小时制时间(例如 11:11:04 PM)
        %R   24 小时制 的小时与分钟; 等价于 %H:%M
        %s   自 1970-01-01 00:00:00 UTC 到现在的秒数
        %S   秒 (00..60)
        %t   插入水平制表符 tab
        %T   时间; 等价于 %H:%M:%S
        %u   一周中的一天 (1..7); 1 表示星期一
        %U   一年中的第几周,周日作为一周的起始 (00..53)
        %V   ISO 标准计数周,该方法将周一作为一周的起始 (01..53)
        %w   一周中的一天(0..6),0代表星期天
        %W   一年中的第几周,周一作为一周的起始(00..53)
        %x   本地的日期格式(例如,12/31/99)
        %X   本地的日期格式(例如,23:13:48)
        %y   年份后两位数字 (00..99)
        %Y   年
        %z   +hhmm 格式的数值化时区格式(例如,-0400)
        %:z  +hh:mm 格式的数值化时区格式(例如,-04:00)
        %::z  +hh:mm:ss格式的数值化时区格式(例如,-04:00:00)
        %:::z  数值化时区格式,相比上一个格式增加':'以显示必要的精度(例如,-04,+05:30)
        %Z  时区缩写 (如 EDT)
        
      2. 案例:

        # 默认格式
        [wanghao115@gzxj-sys-rpm001-3eed8.gzxj.baidu.com ~]$ date
        Wed Aug  7 15:01:30 CST 2024
        
        # 指定格式 (当前日期)
        [wanghao115@gzxj-sys-rpm001-3eed8.gzxj.baidu.com ~]$ date +"%Y%m%d"
        20240807
        
    4. 日期加减
      # 当前日期加减
      date -d "+1 day" +%Y%m%d       # 显示后一天的日期
      date -d "-1 day" +%Y%m%d       # 显示前一天的日期
      date -d "-1 month" +%Y%m%d     # 显示上一月的日期
      date -d "+1 month" +%Y%m%d     # 显示下一月的日期
      date -d "-1 year" +%Y%m%d      # 显示前一年的日期
      date -d "+1 year" +%Y%m%d      # 显示下一年的日期
      
      # 2. 指定日期加减
      date -d "2024-05-16 +1 day" +"%Y%m%d"     # 显示后一天的日期
      date -d "2024-05-16 -1 day" +%Y%m%d       # 显示前一天的日期
      date -d "2024-05-16 -1 month" +%Y%m%d     # 显示上一月的日期
      date -d "2024-05-16 +1 month" +%Y%m%d     # 显示下一月的日期
      date -d "2024-05-16 -1 year" +%Y%m%d      # 显示前一年的日期
      date -d "2024-05-16 +1 year" +%Y%m%d      # 显示下一年的日期
      

    5. 压缩/解压/安装

    1. .tar文件解压:tar -zxvf 文件路径 [- C 目标路径]
      tar:用于处理tar文件
      -z:表示tar文件是用gzip压缩的,所以需要用gzip进行解压。
      -c:压缩文件
      -x:解压
      -v:这是“verbose”的缩写,表示命令在运行的时候会显示详细信息。
      -f:这表示后面跟的是要处理的文件名。

      # 1. 解压文件
      # 将output.tar文件加压到当前目录
      tar -zxvf output.tar.gz
      # -C 用于改变目的路径
      tar -zxvf output.tar.gz -C /path/to/directory
      
      # 2. 压缩文件
      tar -zcf output.tar.gz /path/to/your/directory  # output.tar.gz是文件名;/path/to/your/directory是要压缩的路径
      
    2. .rpm文件安装:

      # 默认安装到 /user/local/ 目录下
      rpm -ivh 文件路径  (ivh表示带有进度条显示的安装)
      # --prefix 将软件包安装到由 指定的路径下,例如到/opt下
      rpm -ivh --prefix= /opt  文件路径
      

    6. 软连接

    软连接/文件快捷方式:ln -s 文件地址 软连接地址 https://cloud.tencent.com/developer/article/1934913
    在这里插入图片描述

    7. 执行Shell脚本

    1. 执行一个可执行的shell文件:
      1. 先cd到shell文件的目录下,再直接输入文件名
        在这里插入图片描述
      2. 直接输入shell文件的绝对路径
        在这里插入图片描述
      3. 将shell文件所在目录配置到环境变量中,那么在任意位置直接输入shell文件名都可以。
        在这里插入图片描述

    8. 跨服务器

    1. 服务器间的文件复制:
      1. scp复制:复制所有文件
        在这里插入图片描述

        scp -r /opt/module/jdk1.8.0_212/ hao@hadoop103:/opt/module/
        
        # 也可以在hadoop103上使用scp从hadoop102上拉取,比如:
        scp -r hao@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
        
      2. rsync同步:只复制名称或内容不相同的文件。在这里插入图片描述

      1. 区别:前者是复制所有文件,所以慢;后者是复制名称或内容不相同的文件,所以快。
      2. 使用场景:前者用于文件的第一次复制;后者用于文件的后继复制。

    9. JDK特有

    jps:目标系统上的Java进程基本信息。 https://www.cnblogs.com/gonggy/p/17892704.html

    10. 创建快捷命令

    1. 打开用户目录下的.bashrc文件:

      vim ~/.bashrc
      

      注意:

      1. .bashrc 文件是一个存在于用户主目录的隐藏文件,当你启动一个新的bash shell(即打开一个新的终端窗口)时,它会被自动执行。
      2. 如果需要临时设置快捷命令或环境变量,可以在任意地方创建一个任意名称的脚本,编写完毕之后,source该文件。
        这个环境变量只对当前的 shell 会话有效,如果你打开一个新的终端窗口或者启动一个新的 shell 会话,那么这个环境变量将不再存在。因此,如果你希望一个环境变量在每次 shell 会话中都可用,你应该将相关的 export 命令添加到你的 ~/.bashrc 或者 ~/.bash_profile 文件中。
      3. .bash_profile.bashrc 都是 Bash shell 启动时会读取的配置文件,但它们的使用场景有所不同。
        • .bash_profile:当你登录系统或者启动一个登录 shell(例如新的终端会话)时,Bash 会读取这个文件。这个文件通常用于执行一次性的任务(例如设置环境变量、运行脚本等),以及启动其他的 shell。
        • .bashrc:当你在当前会话中启动一个新的 Bash 实例(例如新的子 shell 或者新的脚本)时,Bash 会读取这个文件。这个文件通常用于包含在每个子 shell 中都需要的命令,例如别名和函数。
          在这里插入图片描述
    2. 创建快捷命令:

      alias 快捷命令='具体的命令'
      

      在这里插入图片描述

    3. 让文件生效

      source ~/.bashrc
      
    4. 使用which 快捷命令
      在这里插入图片描述

  • 相关阅读:
    项目质量管理
    MYSQL 敏感数据加密后进行模糊查询
    ChatGpt接口流式输出解决方案
    一台电脑远程内网的另外一台电脑,禁止远程的电脑连接外网,只允许内网连接
    浅述C++模板——函数模板及类模板
    12.2-12.4总结
    【面试经典150 | 哈希表】字母异位词分组
    Python学习笔记(04)
    什么是保护性暂停模式 Guarded Suspension
    Vue3 -- computed 生命周期钩子 Provide函数 侦听数据的变化 watch script setup语法
  • 原文地址:https://blog.csdn.net/qq_43546676/article/details/126960692