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 ./* # 修改文件所属组
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号