CentOS基本命令学习

练习:

         显示/etc目录下,以非字母开头,后面跟了一具字母及其任意长度任意字符的文件或目录

[root@localhost~]#  mkdir -vp /etc/{1sdf,2wer,3dfg}
mkdir: created directory `/etc/1sdf'
mkdir: created directory `/etc/2wer'
mkdir: created directory `/etc/3dfg'
[root@localhost ~]#  ls -d /etc/[^a-z]*
/etc/1sdf /etc/2wer  /etc/3dfg
[root@localhost ~]# rmdir/etc/{1sdf,2wer,3dfg}
[root@localhost ~]#  ls -d /etc/[^a-z]*
ls: cannot access /etc/[^a-z]*: No suchfile or directory

 

         复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu.com目录中。

[root@localhost ~]# mkdir /tmp/mageedu.com
[root@localhost ~]# cp -r /etc/*.d/tmp/mageedu.com/
[root@localhost ~]# ls /tmp/mageedu.com/
[root@localhost ~]# rm -rf/tmp/mageedu.com/

         tee命令的用法

tee 命令:用来将标准输入的内容输出到标准输出并可以保存为文件

参数

-a 附加到文件-i 无视中断--help 显示帮助信息--version 显示版本信息
[root@localhost ~]# tee fuck
abc
abc
123
123
wosjoewqer
wosjoewqer
^C
[root@localhost ~]# cat fuck
abc
123
wosjoewqer
[root@localhost ~]# ll fuck
-rw-r--r--. 1 root root 19 Aug 23 18:23fuck

目录管理类命令:

         mkdir, rmdir, tree, dirname, basename

 

mkdir

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

长选项必须使用的参数对于短选项时也是必需使用的。
  -m, --mode=模式       设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
  -p, --parents         需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
  -v, --verbose         每次创建新目录都显示信息
  -Z, --context=CTX     将每个创建的目录的SELinux 安全环境设置为CTX
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

练习:

                            如何创建目录:x_m,x_n, y_m, y_n

[root@localhost ~]# mkdir -pv {x,y}_{m,n}
mkdir: created directory `x_m'
mkdir: created directory `x_n'
mkdir: created directory `y_m'
mkdir: created directory `y_n'
[root@localhost ~]# ls -l
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 x_m
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 x_n
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 y_m
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 y_n

 

rmdir

用法:rmdir [选项]... 目录...
删除指定的空目录。

      --ignore-fail-on-non-empty
                        忽略仅由目录非空产生的所有错误
  -p, --parents         删除指定目录及其上级文件夹,例如"rmdir -p a/b/c'"
                        与"rmdir a/b/c a/b a'" 基本相同
  -v, --verbose         输出处理的目录详情
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

 

[root@localhost ~]# rmdir -pv {x,y}_{m,n}
rmdir: removing directory, `x_m'
rmdir: removing directory, `x_n'
rmdir: removing directory, `y_m'
rmdir: removing directory, `y_n'
[root@localhost ~]# ls -l

 

dirname

dirname 命令:显示指定路径处了文件名之外的路径前缀

 

basename

用法:basename 名称 [后缀]
  或:basename 选项
去掉前导的目录部分后打印“名称”。
如果指定的话,还会去掉尾随的“后缀”。
      --help     显示此帮助信息并退出
      --version  输出版本信息并退出

 

 

文本文件查看命令:

        

         cat, tac, more, less, tail, head

cat

用法:cat [选项] [文件]...
将[文件]或标准输入组合输出到标准输出。

  -A, --show-all           等价于 -vET
  -b, --number-nonblank    对非空输出行编号
  -e                       等价于 -vE
  -E, --show-ends          在每行结束处显示 $
  -n, --number             对输出的所有行编号
  -s, --squeeze-blank      不输出多行空行
  -t                       与 -vT 等价
  -T, --show-tabs          将跳格字符显示为 ^I
  -u                       (被忽略)
  -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
      --help     显示此帮助信息并退出
      --version  输出版本信息并退出

如果[文件]缺省,或者[文件]为 - ,则读取标准输入。

 

Tac

用法:tac [选项]... [文件]...
将每个指定文件按行倒置并写到标准输出。
如果不指定文件,或文件为"-",则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
  -b, --before                  在行前而非行尾添加分隔标志
  -r, --regex                   将分隔标志视作正则表达式来解析
  -s, --separator=字符串        使用指定字符串代替换行作为分隔标志
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

 

    more, less

 

文件管理命令:

        

         cp, mv, rm

cp

用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。


长选项必须使用的参数对于短选项时也是必需使用的。

  -a, --archive                      等于-dR --preserve=all
      --backup[=CONTROL            为每个已存在的目标文件创建备份
  -b                          类似--backup 但不接受参数
      --copy-contents              在递归处理是复制特殊文件内容
  -d                          等于--no-dereference --preserve=links
  -f, --force                 如果目标文件无法打开则将其移除并重试(当 -n 选项
                                      存在时则不需再选此项)
  -i, --interactive           覆盖前询问(使前面的 -n 选项失效)
  -H                          跟随源文件中的命令行符号链接
  -l, --link                  链接文件而不复制
  -L, --dereference           总是跟随符号链接
  -n, --no-clobber            不要覆盖已存在的文件(使前面的 -i 选项失效)
  -P, --no-dereference               不跟随源文件中的符号链接
  -p                          等于--preserve=模式,所有权,时间戳
      --preserve[=属性列表  保持指定的属性(默认:模式,所有权,时间戳),如果
                                      可能保持附加属性:环境、链接、xattr 等
  -c                          same as --preserve=context
      --sno-preserve=属性列表      不保留指定的文件属性
      --parents                    复制前在目标目录创建来源文件路径中的所有目录
  -R, -r, --recursive         递归复制目录及其子目录内的所有内容
      --reflink[=WHEN]             控制克隆/CoW 副本。请查看下面的内如。
      --remove-destination  尝试打开目标文件前先删除已存在的目的地
                                      文件 (相对于 --force 选项)
      --sparse=WHEN         控制创建稀疏文件的方式
      --strip-trailing-slashes     删除参数中所有源文件/目录末端的斜杠
  -s, --symbolic-link         只创建符号链接而不复制文件
  -S, --suffix=后缀           自行指定备份文件的后缀
  -t,  --target-directory=目录      将所有参数指定的源文件/目录
                                          复制至目标目录
  -T, --no-target-directory   将目标目录视作普通文件
  -u, --update                copy only when the SOURCE file is newer
                                than the destination file or when the
                                destination file is missing
  -v, --verbose               explain what is being done
  -x, --one-file-system        stay on this filesystem
  -Z, --context=CONTEXT        set security context ofcopy to CONTEXT

      --help        显示此帮助信息并退出
      --version             显示版本信息并退出


默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也
被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用
--sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文
建为稀疏件。
使用--sparse=never 参数禁止创建稀疏文件。


当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。


备份文件的后缀为"~",除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL环境
变量来选择。以下是可用的变量值:


  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份


有一个特别情况:如果同时指定--force 和--backup选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份。

mv

用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...
将源文件重命名为目标文件,或将源文件移动至指定目录。

长选项必须使用的参数对于短选项时也是必需使用的。

     --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                 只在源文件文件比目标文件新,或目标文件
                               不存在时才进行移动
  -v, --verbose         详细显示进行的步骤
     --help            显示此帮助信息并退出
     --version         显示版本信息并退出

备份文件的后缀为"~",除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL环境
变量来选择。以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

rm

用法:rm [选项]... 文件...
删除 (unlink) 文件。

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



默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。

要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
  rm -- -foo
  rm ./-foo

请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用shred。

 

 

文件处理工具:

    wc, cut, sort, uniq

wc

wc命令的功能为统计指定文件中的字节数、单词数、行数, 并将统计结果显示输出
 
参数
 

-c, --bytes打印字节数-m, --chars  打印字符数 -l, --lines  打印行数 -L, --max-line-length  打印最长行的长度-w, --words 打印单词数
[root@localhost~]#cat/etc/passwd |ws –l  查看passwd文件有多少行
[root@localhost~]#echo“qqq www eee” |wc –w  查看输出有多少个单词
[root@localhost~]#echo“21312123” | wc –m  查看输出有多少个字符


 

cut

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 作为 输出分隔符, 缺省 (的 输出分隔符) 为 输入分隔符 
--help
    显示 帮助信息, 然后 结束 
--version
    显示 版本信息, 然后 结束 

使用 且 只使用 -b, -c 或 -f 中的 一个 选项. LIST 由 一个 范围 (range) 或 逗号 隔开的 多个 范围 组成. 范围 是 下列 形式 之一:

N
    第 N 个 字节, 字符 或 字段, 从 1 计数 起 
N-
    从 第 N 个 字节, 字符 或 字段 直至 行尾 
N-M
    从 第 N 到 第 M (幷包括 第M) 个 字节, 字符 或 字段 
-M
    从 第 1 到 第 M (幷包括 第M) 个 字节, 字符 或 字段 

如果 没有 指定 文件 FILE, 或 FILE 是 -, 就从 标准输入 读取 数据.
 

sort

 
用法:sort [选项]... [文件]...
 或:sort [选项]... --files0-from=F
串联排序所有指定文件并将结果写到标准输出。

长选项必须使用的参数对于短选项时也是必需使用的。
排序选项:

  -b, --ignore-leading-blanks   忽略前导的空白区域
  -d, --dictionary-order        只考虑空白区域和字母字符
  -f, --ignore-case             忽略字母大小写
  -g, --general-numeric-sort    按照常规数值排序
  -i, --ignore-nonprinting      只排序可打印字符
  -M, --month-sort              比较 (未知) < "一月" < ... < "十二月"
                                在LC_ALL=C 时为(unknown) < `JAN' < ... < `DEC'
  -h, --human-numeric-sort    使用易读性数字(例如: 2K 1G)
  -n, --numeric-sort            根据字符串数值比较
  -R, --random-sort             根据随机hash 排序
      --random-source=文件      从指定文件中获得随机字节
  -r, --reverse                 逆序输出排序结果
      --sort=WORD               按照WORD 指定的格式排序:
                                        一般数字-g,高可读性-h,月份-M,数字-n,
                                        随机-R,版本-V
  -V, --version-sort            在文本内进行自然版本排序

其他选项:

      --batch-size=NMERGE       一次最多合并NMERGE 个输入;如果输入更多
                                        则使用临时文件
  -c, --check, --check=diagnose-first   检查输入是否已排序,若已有序则不进行操作
  -C, --check=quiet, --check=silent     类似-c,但不报告第一个无序行
      --compress-program=程序   使用指定程序压缩临时文件;使用该程序
                                        的-d 参数解压缩文件
      --debug                   为用于排序的行添加注释,并将有可能有问题的
                                        用法输出到标准错误输出
      --files0-from=文件        从指定文件读取以NUL 终止的名称,如果该文件被
                                        指定为"-"则从标准输入读文件名
  -k, --key=位置1[,位置2]       在位置1 开始一个key,在位置2 终止(默认为行尾)
                                参看POS 语法。
  -m, --merge                   合并已排序的文件,不再进行排序
  -o, --output=文件             将结果写入到文件而非标准输出
  -s, --stable                  禁用last-resort 比较以稳定比较算法
  -S, --buffer-size=大小        指定主内存缓存大小
  -t, --field-separator=分隔符  使用指定的分隔符代替非空格到空格的转换
  -T, --temporary-directory=目录        使用指定目录而非$TMPDIR 或/tmp 作为
                                        临时目录,可用多个选项指定多个目录
      --parallel=N              将同时运行的排序数改变为N
  -u, --unique          配合-c,严格校验排序;不配合-c,则只输出一次排序结果
  -z, --zero-terminated 以0 字节而非新行作为行尾标志
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

POS 是F[.C][OPTS],F 代表域编号,C 是域中字母的位置,F 和C 均从1开始计数
如果没有有效的-t 或-b 选项存在,则从前导空格后开始计数字符。OPTS 是一个或多个
由单个字母表示的顺序选项,以此覆盖此key 的全局顺序设置。如果没有指定key 则
将其整个行。

指定的大小可以使用以下单位之一:
内存使用率% 1%,b 1、K 1024 (默认),M、G、T、P、E、Z、Y 等依此类推。

如果不指定文件,或者文件为"-",则从标准输入读取数据。

*** 警告 ***
本地环境变量会影响排序结果。
如果希望以字节的自然值获得最传统的排序结果,请设置LC_ALL=C。
[root@www ~]# cat /etc/passwd | sort                   #sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序。
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3       #/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3n      #用数字排序,默认是以字符串来排序的
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3nr      #倒序排列,默认是升序排序
[root@www ~]# ccat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r      #对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序
[root@www ~]# cat /etc/passwd |  sort -t':' -k 7 -u      #查看/etc/passwd有多少个shell:对/etc
 

uniq

用法:uniq [选项]... [文件]
从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

不附加任何选项时匹配行将在首次出现处被合并。

长选项必须使用的参数对于短选项时也是必需使用的。
  -c, --count           在每行前加上表示相应行目出现次数的前缀编号
  -d, --repeated        只输出重复的行
  -D, --all-repeated[=delimit-method    显示所有重复的行
                        delimit-method={none(default),prepend,separate}
                        以空行为界限
  -f, --skip-fields=N   比较时跳过前N 列
  -i, --ignore-case     在比较的时候不区分大小写
  -s, --skip-chars=N    比较时跳过前N 个字符
  -u, --unique          只显示唯一的行
  -z, --zero-terminated 使用'\0'作为行结束符,而不是新换行
  -w, --check-chars=N   对每行第N 个字符以后的内容不作对照

若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过。

提示:uniq 不会检查重复的行,除非它们是相邻的行。
如果您想先对输入排序,使用没有uniq 的"sort -u"。
同时,比较服从"LC_COLLATE" 变量所指定的规则。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章