Linux一些命令总结

最近用到一些Linux里面的命令,把他们小结一下,留着备用。


脚本开始行:

#!/bin/sh   #表示注释

. ~/.bash_profile “.”表示执行,~表示当前用户,.bash_profile是配置文件。

也可在此执行其他相关的类似配置文件,如:

. $AUDIT_BASE/shell/base_env.sh  base_env.sh文件里面设置了一些变量的值。

 

cd 目录   切换到某一个目录,这个命令比较简单,不用细说。

 

mkdir   创建一个文件夹

用法:mkdir [选项]..目录...
若指定目录不存在则创建目录。

长选项必须使用的参数对于短选项时也是必需使用的。
  -m, --mode=模式    设置权限模式(类似chmod),而不是rwxrwxrwx 减umask

         mkdir -m a=rw bbb   #创建指定属性的目录
  -p, --parents  需要时创建目标目录的上层目录,但即使这些目录已存在也不当 作错误处理

mkdir -p 111/abc   #创建目录,父目录存在,建之

   -v, --verbose     每次创建新目录都显示信息
  -Z, --context=CTX   将每个创建的目录的SELinux 安全环境设置为CTX
      --help     显示此帮助信息并退出
      --version   显示版本信息并退出

 

gzip/gunzip  压缩、解压文件。

 语法:gzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...] 

       或 gzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]

说明:gzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为".gz"。事实上gzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

参数:

 -a--ascii  使用ASCII文字模式。 

 -c--stdout--to-stdout  把解压后的文件输出到标准输出设备。 

 -f-force  强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 

 -h--help  在线帮助。 

 -l--list  列出压缩文件的相关信息。 

 -L--license  显示版本与版权信息。 

 -n--no-name  解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理。 

 -N--name  解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。 

 -q--quiet  不显示警告信息。 

 -r--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 

 -S<压缩字尾字符串>--suffix<压缩字尾字符串 更改压缩字尾字符串。 

 -t--test  测试压缩文件是否正确无误。 

 -v--verbose  显示指令执行过程。 

 -V--version 显示版本信息。               

echo命令:显示文本

允许在标准输出上显示STRING(s).
-n 不输出行尾的换行符.
-e 允许对下面列出的加反斜线转义的字符进行解释.
-E 禁止对在STRINGs中的那些序列进行解释.

 在没有 -E 的情况下,可承认并可以内置替换以下序列:

 \NNN

字符的ASCII代码为NNN(八进制)

 \\

反斜线

 \a

报警符(BEL)

 \b

退格符

 \c

禁止尾随的换行符

 \f

换页符

 \n

换行符

 \r

回车符

 \t

水平制表符

 \v

纵向制表符

 

补充:可通过此命令给变量赋值。如:

tmpdate=20141014

date=`echo $tmpdate|cut -c1-4`

则此时date=2014

 

cut命令:在文件的每一行中提取片断

在 每个文件 FILE 的 各行 中把 提取的 片断 显示在 标准输出.
-b, --bytes=LIST
     输出 这些 字节 
-c, --characters=LIST
    输出 这些 字符 
-d, --delimiter=DELIM
    使用 DELIM 取代 TAB 做 字段(field) 分隔符 
-f, --fields=LIST
    输出 这些 字段 
-n
    (忽略
-s, --only-delimited
    不显示 没有 分隔符 的 行 
--output-delimiter=STRING
    使用 STRING 作为 输出分隔符缺省 (的 输出分隔符为 输入分隔符 

使用 且 只使用 -b, -c 或 -f 中的 一个 选项. LIST 由 一个范围 (range) 或 逗号 隔开的 多个 范围 组成范围 是 下列 形式 之一:
N
    第 个 字节字符 或 字段从 计数 起 
N-
    从 第 个 字节字符 或 字段 直至 行尾 
N-M
    从 第 到 第 M (并包括 第M) 个 字节字符 或 字段 
-M
    从 第 到 第 M (并包括 第M) 个 字节字符 或 字段 
如果 没有 指定 文件 FILE, 或 FILE 是 -, 就从 标准输入 读取 数据

sed命令:文本处理命令,最常用的是替换功能。

参数:

 -n, --quiet, --silent    取消自动打印模式空间
 -e 脚本, --expression=脚本   添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件  添加“脚本文件”到程序的运行列表
  --follow-symlinks    直接修改文件时跟随软链接
  -i[扩展名], --in-place[=扩展名]    直接修改文件(如果指定扩展名就备份文件)
  -l N, --line-length=N   指定“l”命令的换行期望长度
  --posix  关闭所有 GNU 扩展
  -r, --regexp-extended  在脚本中使用扩展正则表达式
 -s, --separate  将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered  从输入文件读取最少的数据,更频繁的刷新输出

例子:

sed 's/root/tankzhang/' test |grep tank

test文件里面的root替换为tankzhang,值替换一次,替换完成后查找tank匹配项。

sed 's/root/tankzhang/g' test |grep zhang

tankzhang把文件test中的root全部替换掉,其中g这个字母是global的缩写。

 

grep命令:文本搜索工具,可以使用正则表达式搜索文本。

匹配模式选择:
 -E, --extended-regexp     扩展正则表达式egrep
 -F, --fixed-strings       一个换行符分隔的字符串的集合fgrep
 -G, --basic-regexp        基本正则
 -P, --perl-regexp         调用的perl正则
 -e, --regexp=PATTERN      后面根正则模式,默认无
 -f, --file=FILE           从文件中获得匹配模式
 -i, --ignore-case         不区分大小写
 -w, --word-regexp         匹配整个单词
 -x, --line-regexp         匹配整行
 -z, --null-data           一个 字节的数据行,但不是空行

杂项:
 -s, --no-messages         不显示错误信息
 -v, --invert-match        显示不匹配的行
 -V, --version             显示版本号
 --help                    显示帮助信息
 --mmap                use memory-mapped input if possible

输入控制:
 -m, --max-count=NUM       匹配的最大数
 -b, --byte-offset         打印匹配行前面打印该行所在的块号码。
 -n, --line-number         显示的加上匹配所在的行号
 --line-buffered           刷新输出每一行
 -H, --with-filename       当搜索多个文件时,显示匹配文件名前缀
 -h, --no-filename         当搜索多个文件时,不显示匹配文件名前缀
 --label=LABEL            print LABEL as filename for standard input
 -o, --only-matching       只显示一行中匹配PATTERN 的部分
 -q, --quiet, --silent      不显示任何东西
 --binary-files=TYPE   假定二进制文件的TYPE 类型;
                                      TYPE 可以是`binary', `text', `without-match'
 -a, --text                匹配二进制的东西
 -I                        不匹配二进制的东西
 -d, --directories=ACTION  目录操作,读取,递归,跳过
 -D, --devices=ACTION      设置对设备,FIFO,管道的操作,读取,跳过
 -R, -r, --recursive       递归调用
 --include=PATTERN     只查找匹配FILE_PATTERN 的文件
 --exclude=PATTERN     跳过匹配FILE_PATTERN 的文件和目录
 --exclude-from=FILE   跳过所有除FILE 以外的文件
 -L, --files-without-match 匹配多个文件时,显示不匹配的文件名
 -l, --files-with-matches  匹配多个文件时,显示匹配的文件名
 -c, --count               显示匹配了多少次
 -Z, --null                FILE 文件最后打印空字符

文件控制:
 -B, --before-context=NUM  打印匹配本身以及前面的几个行由NUM控制
 -A, --after-context=NUM   打印匹配本身以及随后的几个行由NUM控制
 -C, --context=NUM         打印匹配本身以及随后,前面的几个行由NUM控制
 -NUM                      -C的用法一样的
 --color[=WHEN],
 --colour[=WHEN]       使用标志高亮匹配字串;
 
 -U, --binary               使用标志高亮匹配字串;
 -u, --unix-byte-offsets   CR 字符不存在,报告字节偏移(MSDOS 模式)

 

rm命令:删除文件。

  -f, --force           强制删除。忽略不存在的文件,不提示确认
    -i                    在删除前需要确认
  -I                    在删除超过三个文件或者递归删除前要求确认。此选项比-i 
                        示内容更少,但同样可以阻止大多数错误发生
      --interactive[=WHEN]      根据指定的WHEN 进行确认提示:neveronce (-I)
                                或者always (-i)。如果此参数不加WHEN 则总是提示
      --one-file-system         递归删除一个层级时,跳过所有不符合命令行参
                                数的文件系统上的文件
      --no-preserve-roo 不特殊对待"/"
      --preserve-root   不允许删除"/"(默认)
 -r, -R, --recursive   递归删除目录及其内容

要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
   rm -- -foo
   rm ./-foo
请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用shred

linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长,的错误。

这时可以用find命令来结合使用。

例:

1rm * -rf 改为:

       find . -name "*" | xargs rm -rf '*' 就行了。

2rm test* -rf 改为:

       find . -name "test*" | xargs rm -rf "test*"

 

mv命令:移动文件、重命名文件

长选项必须使用的参数对于短选项时也是必需使用的。
      --backup[=CONTROL]       为每个已存在的目标文件创建备份
   -b                           类似--backup 但不接受参数
   -f, --force                  覆盖前不询问
   -i, --interactive            覆盖前询问
   -n, --no-clobber             不覆盖已存在文件
如果指定了-i-f-n 中的多个,仅最后一个生效。
      --strip-trailing-slashes  去掉每个源文件参数尾部的斜线
   -S, --suffix=SUFFIX           替换常用的备份文件后缀
   -t, --target-directory=DIRECTORY      将所有参数指定的源文件或目录
                                         移动至 指定目录
   -T, --no-target-directory     将目标文件视作普通文件处理
   -u, --update                  只在源文件文件比目标文件新,或目标文件
                                 不存在时才进行移动

备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:
  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

 

awk命令:

awklinux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。他读取输出,或者文件的方式是一行,一行的读,根据你给出的条件进行查找,并在找出来的行中进行操作,感觉他的设计思想,真的很简单,但是结合实际情况,具体操作起来就没有那么简单了。他有三种形势,awkgawknawk,平时所说的awk其实就是gawk

目前处理文本用到比较多的是将文本中的参数按需求处理后打印处理。

例:awk  ‘{ print  $1","$2 }’ test     打印test文件每一行的第一和第二个参数(默认空格分割)。

 

此命令其他用法后续再另外总结。


chmod命令:可用于更改权限。

用法:chmod [选项]... 模式[,模式]... 文件...
 或:chmod [选项]... 八进制模式 文件...
 或:chmod [选项]... --reference=参考文件 文件...


将每个文件的模式更改为指定值。
  -c, --changes         类似 --verbose,但只在有更改时才显示结果
      --no-preserve-root        不特殊对待根目录(默认)
      --preserve-root           禁止对根目录进行递归操作
  -f, --silent, --quiet 去除大部份的错误信息
  -v, --verbose         为处理的所有文件显示诊断信息
      --reference=参考文件      使用指定参考文件的模式,而非自行指定权限模式
  -R, --recursive               以递归方式更改所有的文件及子目录
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出


每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"
操作对像
   u 文件属主权限
   g 同组用户权限
   o 其它用户权限
   a 所有用户(包括以上三种)


权限设定
   + 增加权限
   - 取消权限
   =  唯一设定权限


权限类别
   r 读权限
   w 写权限
   x 执行权限
   X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
   s 文件属主和组id
   l 给文件加锁,使其它用户无法访问


   r-->4
   w-->2
   x-->1


暂时先总结这些,后续命令下次再继续总结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值