首页 > 技术文章 > linux的一些命令

mots 2021-01-24 14:21 原文

tar相关

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
  • 查 询:tar -jtv -f filename.tar.bz2
  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

别名

alias lm='ls -al'

变量

定义一个变量可以用以下的方式(如果用变量中包含变量的话可以用双引号,如果使用单引号就是直接输出)
myname="zjy"
用echo可以输出:
echo $myname
export可以把变量升级为环境变量

declare :宣告变量的类型
-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r :将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset

正则表达式

grep
grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:

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

[:alnum:] 代表英文大小写字符及数字,亦即 0-9, A-Z, a-z
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:blank:] 代表空格键与 [Tab] 按键两者
[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:] 代表数字而已,亦即 0-9
[:graph:] 除了空格符 (空格键与 [Tab] 按键) 外的其他所有按键
[:lower:] 代表小写字符,亦即 a-z
[:print:] 代表任何可以被打印出来的字符
[:punct:] 代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 代表大写字符,亦即 A-Z
[:space:] 任何会产生空白的字符,包括空格键, [Tab], CR 等等
[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字符

那个 ^ 符号,在字符集合符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』,
在 [] 之外则代表定位在行首的意义

  1. 搜索特定的字符串
    grep -n 'the' a.txt /把a.txt中带有the的行输出到屏幕上
    grep -vn 'the' a.txt /
    把a.txt中不带有the的行输出到屏幕上

  2. 利用中括号 [] 来搜寻集合字符
    /其实 [] 里面不论有几个字符,他都仅代表某『一个』字符/
    grep -n 't[ae]st' a.txt /每行不管是有tast还是test都会被输出/
    grep -n '[^z]jy' a.txt /把a.txt中把含有jy(但前一个字母不是z)的输出到屏幕上
    grep -n '[^a-z]jy' a.txt /
    把a.txt中把含有jy(但前一个字母不是a到z)的输出到屏幕上
    grep -n '[[1]]jy' a.txt /把a.txt中把含有jy(但前一个字母不是a到z)的输出到屏幕上
    grep -n '^the' regular_express.txt /
    the 在行首/
    grep -n '.$' filename /
    搜索行尾是.的行/
    grep -n '^$' filename /
    搜索空行/
    /
    由此可以理解代表行首之前,$代表行尾之后,$即代表行首行尾间什么都没有,即空行*/

  3. 任意一个字符.与任意个字符*

    grep -n 'g..d' filename
    /搜索有g??d模式的行,g..d有且仅有四个字符/
    grep -n 'ooo' filename
    /
    搜索有两个以上o的行,即前两个o一定存在,最后一个o表示0到n个o, 千万注意这里的与通配符里的不同/
    grep -n 'g.d' filename
    /
    搜索有g开始,d结尾,中间任意个字符的字符串的行*/

4.限定连续字符个数

grep -n 'o\{2\}' filename
    搜索含有两个o字符串的行
grep -n 'go\{2,5\}g' filename
    搜索含有开头g,结尾g,中间2到5个o的字符串的行
grep -n 'go\{2,\}g' filename
    搜索含有开头g,结尾g,中间2个以上o的字符串的行

sed

增删换显
    nl filename | sed '2,5d'
        列出filename每一行,并加行号,然后删除2到5行,
        删除第2行: '2d'
        删除第2行到最后一行: '2,$d'
    nl filename | sed '2a this is a new line'
        在第2行后增加新行,内容是"this is new line"
    nl filename | sed '2i this is a new line'
        在第2行前增加新行,内容是"this is new line"
    nl filename | sed '2a this is new line one \
              > this is new line two'      /*添加两行*/
    nl filename | sed '2,5c this is a replace line'
        将2到5行替换为"this is a replace line"
    nl filename | sed -n '3,5p'
        打印3到5行

  1. :lower: ↩︎

推荐阅读