linux 常用命令

linux 命令 shell 基本语法

进程相关
  • 杀掉进程

    kill `ps -efww | grep 项目名 | grep -v grep | grep -v less | awk '{print $2}'`
    
  • 查看进程号

    ps -efww | grep 项目名 | grep -v grep | grep -v less | awk '{print $2}'
    

IP 相关
  • 获取本机ip

    ifconfig                           # 基本方法
    hostname -I                        # 获取所有ip
    hostname -I | awk '{print $1}'     # 获取ip
    

sed 相关命令
  • 查看第几行的文字

    sed -n '2,5p' nowcoder.txt
    sed -n '5p' nowcoder.txt
    # -n 不可缺少
    
  • 打印空行的行号:

    sed -n '/^$/=' nowcoder.txt
    
  • 打印非空的行

    sed -n '/[^$]/p' nowcoder.txt
    grep -v '^$' nowcoder.txt    grep -v             # 取非
    cat nowcoder.txt | awk NF
    

打印相关
  • echo 打印换行

    echo -e "\n=== desc ==="                   # 比 Python 语法多一个 -e
    

cat 相关
  • 过滤长度小于8的单词

    cat nowcoder.txt | xargs -n 1 | awk 'length($1)<8 {print $1}'
    
  • 统计单词出现次数,并排序

    cat nowcoder.txt | xargs -n 1 | sort | uniq -c | sort | awk '{print $2 " " $1}'
    

查找并删除文件
  • find 和 xargs 配合

    find / -name file_name | xargs rm -rf
    

xargs 命令
  • 特点

    • 命令传递参数的一个过滤器,也是组合多个命令的一个工具

    • 一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令

    • 可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行

    • 一般是和管道一起使用

  • 应用示例

    # cat test.txt
    
    a b c d e f g
    h i j k l m n
    o p q
    r s t
    u v w x y z
    
    • 多行输入单行输出: 默认输出在同一行

      cat test.txt | xargs
      a b c d e f g h i j k l m n o p q r s t u v w x y z
      
    • -n 限制每行输出的数量

      cat test.txt | xargs -n 3
      a b c
      d e f
      g h i
      j k l
      m n o
      p q r
      s t u
      v w x
      y z
      

uname 相关命令
  • 基本用法

    -a或--all  显示全部的信息。
    -m或--machine  显示电脑类型
    -n或--nodename  显示在网络上的主机名称。
    -r或--release  显示操作系统的发行编号。
    -s或--sysname  显示操作系统名称。
    -v  显示操作系统的版本。
    --help  显示帮助。
    --version  显示版本信息。
    

tail 命令
  • tail -n +10 file.txt 从第10行开始显示

  • tail -n -10 file.txt 显示最后10行

  • tail -f file.txt 持续显示

    tail -n +10 file.txt | head -1    # 显示第10行
    

head命令
  • head -n file.txt 显示前n行
  • 不指定n的话,显示前10行

grep 正则匹配
  • 基本用法

    选项与参数:
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
    --color=auto :可以将找到的关键词部分加上颜色的显示喔!
    
  • grep -E 或者 egrep, 扩展正则功能

    grep -E '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt
    正则的使用要求:
        []限定范围
        {}表示次数
        ()分组,注意匹配括号时转义
        ^、$严格限定首尾
    

循环、wc、head、seq
columns=$(cat file.txt | head -n 1 | wc -w)
for i in $(seq 1 $columns)
do
    awk '{print $'''$i'''}' file.txt | xargs
done

ll 命令不生效
  • 修改.bashrc文件

    alias ll='ls -l'
    
  • 使.bashrc文件生效

    source .bashrc
    

获取当前目录
current_dir=$(pwd)
echo "current_dir is $current_dir"

seq 命令
  • 基本参数

    seq [选项]... 尾数
    seq [选项]... 首数 尾数
    seq [选项]... 首数 增量 尾数
    
    -f, --format=格式 使用printf 样式的浮点格式
    -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n)
    -w, --equal-width 在列前添加0 使得宽度相同
    
    seq -f "%3g" 9 11         # 默认空格补齐
    seq -f "str%03g" 9 11     # 默认0补齐
    seq -w 98 101             # 同宽输出
    seq -s "=" 9 11           # 指定分隔符
    
    # 用于for循环
    for i in $(seq 1 10)
    do
      echo $i
    done
    
    

单引号、双引号、反引号
  • 单引号
    • 单引号将其中的内容都作为了字符串来,忽略所有的命令和特殊字符,类似于一个字符串的用法
  • 双引号
    • 双引号与单引号的区别在于其可以包含特殊字符(单引号直接输出内部字符串,不解析特殊字符;双引号内则会解析特殊字符),包括', ", $, \,如果要忽略特殊字符,就可以利用\来转义
  • 反引号
    • 反引号用来包含一个命令字符串的,其中的命令会先执行; $(cmd)类似
myname="$name its me" 
echo $myname 
VBird its me 

myname='$name its me' 
echo $myname 
$name its me 

快速创建 if、for 结构
  • pycharm 中写if、for后停止,等pycharm提示,回车即可获取 if 、for的标准结构

    if [  ]; then
        
    fi
    
    
    for (( i = 0; i < n; i++ )); do
        
    done
    
    
    for i in {1..5} ; do
        
    done
    

uniq 命令
  • 主要功能:用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用

  • 参数解释

    -c或--count 在每列旁边显示该行重复出现的次数。
    -d或--repeated 仅显示重复出现的行列。
    -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
    -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
    -u或--unique 仅显示出一次的行列。
    -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
    --help 显示帮助。
    --version 显示版本信息。
    [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
    [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端
    
  • 示例,最好搭配 sort 命令

    uniq -c testfile.txt  # 统计每行出现的次数
    3 test              #前面的数字的意义为该行共出现了3次  
    4 Hello             #前面的数字的意义为该行共出现了4次  
    2 Linux
    

sort 命令
  • 主要功能:sort命令以行为单位对文本进行排序

    sort [-b/d/f/g/i/M/n/r] [InFile]
    
  • 参数解释

    -b: ignore-leading-blanks,忽略前面空格符部分
    -d: data-order,仅考虑空格和字母数字字符
    -f: ignore-case,忽略大小写
    -g: general-numeric-sort,根据一般数值进行排序
    -i: ignore-nonprinting,忽略不可打印的字符,比如换行符、回车符
    -M: month-sort,以月份进行排序
    -n: numeric-sort,根据字符串数值进行排序
    -r: reverse,反向输出排序结果
    -k N: key,以第N列进行排序
    
  • 示例

    sort -nr
    

awk 语法
  • 常用的情况

    awk '{print $2 " " $1}'  # 打印指定列的信息
    

wget
  • 参数 避免验证

    wget https://mirrors.aliyun.com/xxxx/.4.12.tar.gz --no-check-certificate
    

chown、 chgrp
  • 修改所属用户

    chown -R zhangsan ./*   # 修改文件所属用户
    
  • 修改所属组

    chgrp -R zhangsan ./*  # 修改文件所属组
    
posted @ 2021-10-21 16:25  疯狂列表推导式  阅读(33)  评论(0编辑  收藏  举报