Linux命令(备忘)
统计文件行数:
语法:wc [选项] 文件…
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
该命令各选项含义如下:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
cd - 切换到上次访问的目录
cut
cut -b 3 输出第三个字节
cut -c 3 输出第三个字符
cut -d “:” 3 输出以冒号分隔的第三位
Linux查看系统版本信息
cat /etc/issue
cat /proc/version
lsb_release -a
tr
进行替换
tr ‘A-Z’ ‘a-z’ 将大写字母换成小写
删除字符
tr -d ‘0-9 ’ 删除数字
tr -d ‘ab’ 删除字母a b字符集补集 tr -c
echo hello 1 char 2 next 3 | tr -d -c ‘0-9 \n’
-d删除,-c 补集里的内容。 补集包括除了数字,空格,换行之外的所有字符。压缩字符,去重复只保留第一个 tr -s
tr -s ’ ’ 去除多余的空格
tr -s ‘abc’ 去除连续的字母a,b,c
如 echo aaabcc | tr -s ‘abc’ 结果: abc
grep
选取命令grep [-acinv] [–color=auto] ‘要找的字符串’ filename
-a :将二进制文件以text文件的方式查找数据
-c :计算找到的’字符串’的次数
-i :忽略大小写
-n :显示行数高级用法
-A :后面加数字,表示after的意思,表显示找到的字符串的那一行的后面的n行
-B :后面加数字,表示before的意思, 表显示找到的字符串的那一行的前面的n行grep -v ‘^$’ a.txt | grep -v ‘^#’
前半段表示去除空白行,后半段表示去除#开头
sed
常用选项
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i∶直接修改读取的档案内容,而不是由屏幕输出。常用命令
a :新增,a的后面可以接字符串,这些字符串会出现在新的一行(当前行的下一行);
sed -n ‘1a hahaha’ a.txt //在第1行后面添加hahaha;
sed -n ‘1,3a hello world’ a.txt //在第1到第三行后分别添加hello world
如a.txt里原来的内容: 1 2 3 结果: 1 hello world 2 hello world 3 hello world
c :替换,后面接字符串,替换n1,n2之间的行;
sed ‘1,2c hi’ a.txt //将第一到第二行替换成hi源文件: 1 2 3 结果: hi 3
d :删除,后面通常不接参数;
sed ‘1,2d’ a.txt //删除第一到第二行
sed ‘1d’ a.txt //删除第一行
sed ‘1,$d’ a.txt //删除第一到最后一行
sed ‘$d’ a.txt //删除最后一行i :插入,后面接字符串,出现在当前行的上一行,跟参数a基本一样;
p :打印,通常跟sed -n一起用
s :替换,可以直接进行替换工作。通常和正则表达式搭配。 1,20s/old/new/g
awk
NF 每一行字符总数
NR 当前行数
FS 分隔字符,默认空格awk [-F field-separator] ‘commands’ input-file(s)
[-F field-separator] 分隔符,默认是空格
‘commands’ 核心内容
input-file(s) 输入文件awk -F : ‘{print $1,$2,$3 }’ //输出以:分隔的第一、第二、第三个参数($0表示一整行)
awk ‘NR=1 {print \$1 “\n”} NR>1 {print \$1,\$2}’ //第一行输出第一个参数,下面行输出第一第二个参数
test
-e //改文件名是否存在
-f //该文件是否存在, 且是否是文件(file)
-d //该文件是否存在, 且是否是目录(directory)
-r //该文件名是否存在,且是否有可读权限
-w //该文件名是否存在,且是否有可写权限
-x //该文件名是否存在,且是否有可执行权限