Linux——note shell常用命令 cut 、sort、unqi、tee、tr、split和shell中连接符&& ||

1、cut

常用作将一个文件分段

cut -d‘分隔符‘ [-cf] n

-d 后面指定分隔符,用单引号引起来。

-f 指定第几段

-c 后面只有一个数字表示截取第几个字符,后面跟一个数字区域,表示截取从几到几。

[[email protected] ~]# cut -d: -f 3 /etc/passwd

[[email protected] ~]# cut -d: -f 3,4 /etc/passwd

[[email protected] ~]# cut -c 10 /etc/passwd

[[email protected] ~]# cut -c 1-10 /etc/passwd

2、sort(排序默认以ASCII值排序)

sort [-t 分隔符] [-kn1,n2] [-nru]

-t 分隔符:作用与cut的-的一个意思

-n 使用纯数字排序默认升序

-r 反向排序,数字降序

-u 去重复

-kn1,n2: 由n1区间排序到n2区间,可以只写kn1,即只对n1字段排序。

[[email protected] ~]# sort /etc/passwd

[[email protected] ~]# sort -t: -k3 /etc/passwd

[[email protected] ~]# sort -t: -k3 -n /etc/passwd

[[email protected] ~]# sort -t: -k3,5 -n /etc/passwd 指定范围

[[email protected] ~]# sort -t: -k3,5 -r -n /etc/passwd

user1:x:510:510::/home/user1:/bin/bash

user2:x:508:500::/home/user3:/sbin/nologin

[[email protected] ~]# sort -u 2.txt

[[email protected] ~]# sort -nu 2.txt -nu一起使用时会将里面的多个字符串或字符当作一个数字来处理,只显示一个字符串或字符。

sort排序时,-n选项会把所有字母都看成是0,再加个-u去重复,当然就剩一个字符串或字符了。

3、wc

wc -l(计算行)-w(word) -m(大小即多少个字符)

[[email protected] ~]# wc -l 1.txt 2.txt

2 1.txt

22 2.txt

24 总用量

[[email protected] ~]# wc -w 1.txt (以一个分隔符为一个word)

6 1.txt

[[email protected] ~]# cat 1.txt

ls: 无法访问11111: 没有那个文件或目录

ls: 无法访问11111: 没有那个文件或目录

[[email protected] ~]# wc -m 1.txt

50 1.txt

[[email protected] ~]# echo "12345"|wc -m  换行符也是一个字符

6

wc -c, --bytes 输 出 字 节 数 统 计

-m, --chars 输 出 字 符 数 统 计

-l, --lines 输 出 行 数 统 计

-w, --words print the word counts就是文档当中有几个词

4、uniq和tee

uniq去重复并计算出有多少行重复,比sort -u多一个功能。

uniq -c 统计重复行数,并把行数写在前面,弊端就是若重复的两字符不在一起就无法判断重复需要先排序。

[[email protected] ~]# uniq -c 2.txt

[[email protected] ~]# sort  2.txt|uniq -c

若不加-c选项就和sort -u 一致了。

tee  后跟文件名,类似重定向>,但比重定向多一个功能,在把文件写入后面所跟的文件的同时还显示在屏幕上

[[email protected] ~]# echo "123" > 1.txt

[[email protected] ~]# cat 1.txt

123

[[email protected] ~]# echo "11111"|tee 1.txt

11111

[[email protected] ~]# echo "123" > 1.txt

[[email protected] ~]# cat 1.txt

123

[[email protected] ~]# echo "11111"|tee 1.txt

11111

tee -i 使用追加模式进行重定向

单引号里面所有特殊符号都会变成普通符号,比如 ‘123$a‘ 这里面的$a就不是引用变量了, 如果用双引号就可以引用变量 "123$a" 我具体举个例子吧:

[[email protected] ~]# a=9; echo ‘123$a‘; b=8; echo "123$b"

123$a

1238

5、tr和split

tr 用于替换字符,常用作文档中出现的特殊符号处理

tr -d 删除某个字符,-d后面跟要删除的字符

-s 把重复的字符去掉

注:替换、删除以及去重复是针对一个字符来讲的,针对一个字符串就不管用了。

[[email protected] ~]# ls *.txt | tr ‘a-z‘ ‘A-Z‘

123.TXT

#1.TXT

1.TXT

2.TXT

3.TXT

A.TXT

[[email protected] ~]# echo "hfdufeurh273498834ndlgj"|tr ‘h‘ ‘H‘

HfdufeurH273498834ndlgj

[[email protected] ~]# echo "hfdufeurh273498834ndlgj"|tr ‘abcfd‘ ‘ABCFD‘

hFDuFeurh273498834nDlgj

split 用于切割文档

split -b 依据大小来分割文档,单位为byte(若要写以M,K为单位则需指明如split -b 100m /100k)

-l 依据行来分割文档

[[email protected] split_dir]# ls

anaconda-ks.cfg

[[email protected] split_dir]# wc -l anaconda-ks.cfg

32 anaconda-ks.cfg

[[email protected] split_dir]# split -l 10 anaconda-ks.cfg

[[email protected] split_dir]# ls

anaconda-ks.cfg  xaa  xab  xac  xad

[[email protected] split_dir]# wc -l x*

10 xaa

10 xab

10 xac

2 xad

32 总用量

[[email protected] split_dir]# du -sb anaconda-ks.cfg

943     anaconda-ks.cfg

[[email protected] split_dir]# split -b 100 anaconda-ks.cfg

[[email protected] split_dir]# ls -lh x*

-rw-r--r-- 1 root root 100 1月   6 23:29 xaa

-rw-r--r-- 1 root root 100 1月   6 23:29 xab

-rw-r--r-- 1 root root 100 1月   6 23:29 xac

-rw-r--r-- 1 root root 100 1月   6 23:29 xad

-rw-r--r-- 1 root root 100 1月   6 23:29 xae

-rw-r--r-- 1 root root 100 1月   6 23:29 xaf

-rw-r--r-- 1 root root 100 1月   6 23:29 xag

-rw-r--r-- 1 root root 100 1月   6 23:29 xah

-rw-r--r-- 1 root root 100 1月   6 23:29 xai

-rw-r--r-- 1 root root  43 1月   6 23:29 xaj

可以给分割的文件命令如:

[[email protected] split_dir]# split -l 10 anaconda-ks.cfg new_

[[email protected] split_dir]# ls

anaconda-ks.cfg  new_ab  new_ad  xab  xad  xaf  xah  xaj

new_aa           new_ac  xaa     xac  xae  xag  xai

6、shell中的连接符&& ||

&& 左边命令执行成功后,才会执行右边命令

|| 左边命令执行不成功,才会执行右边命令

;  左边命令执行成功与否,右边命令都会执行

[[email protected] ~]# ls 1.txt && ls 2.txt

1.txt

2.txt

[[email protected] ~]# ls 10.txt && ls 2.txt

ls: 无法访问10.txt: 没有那个文件或目录

[[email protected] ~]# ls 1.txt || ls 20.txt

1.txt

[[email protected] ~]# ls 10.txt || ls 2.txt

ls: 无法访问10.txt: 没有那个文件或目录

2.txt

[[email protected] ~]# ls 1.txt ||  ls 2.txt

1.txt

[[email protected] ~]# ls 10.txt ; ls 2.txt

ls: 无法访问10.txt: 没有那个文件或目录

2.txt

[[email protected] ~]# ls 1.txt ;  ls 2.txt

1.txt

2.txt

Linux——note shell常用命令 cut 、sort、unqi、tee、tr、split和shell中连接符&& ||

时间: 2024-12-25 17:46:48

Linux——note shell常用命令 cut 、sort、unqi、tee、tr、split和shell中连接符&& ||的相关文章

Shell 常用命令

Shell 常用命令 这篇博客记录了一些 Shell 常用命令 供未来查阅. 添加ll 为了简化 "ls -l",可以在~/.bash_profile中加入: 1 2 alias ll='ls -l' 获得参数 $0是命令本身$1是第一个参数 $ $可以认为是 获取内容 . 内置变量 bash有很多内置变量,我们可以使用$获取到它们,例如: 1 2 3 4 5 $PWD $HOME $PATH $(pwd) 读取配置 配置数据可以像下面一样: 1 2 3 4 Fansy:UtilToo

Linux Shell常用命令总结

1.   find       find pathname -options [-print -exec -ok]       让我们来看看该命令的参数:       pathname find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录.       -print find命令将匹配的文件输出到标准输出.       -exec find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' {} \;,注意{}和\:之间的空格,同时两个{}

Linux Shell常用技巧(六) sort uniq tar split

Linux Shell常用技巧(六) sort uniq tar split 十二.   行的排序命令sort:   1.  sort命令行选项: 选项 描述 -t 字段之间的分隔符 -f 基于字符排序时忽略大小写 -k 定义排序的域字段,或者是基于域字段的部分数据进行排序 -m 将已排序的输入文件,合并为一个排序后的输出数据流 -n 以整数类型比较字段 -o outfile 将输出写到指定的文件 -r 倒置排序的顺序为由大到小,正常排序为由小到大 -u 只有唯一的记录,丢弃所有具有相同键值的记

Linux文本处理常用命令

1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.  (2)基本元字符集及其含义      ^ :只匹配行首.   如^a 匹配以a开头的行abc,a2e,a12,aaa,......      $ :只匹配行尾.   如^a 匹配以a结尾的行bca,12a,aaa,.......      * :匹配0个或多个此单字符. 如(a)* 匹配 空,a,aa,aaa,....      [] :只匹配[]内字符

SHELL常用命令总结

http://blog.chinaunix.net/uid-25311424-id-2956521.html 一.mkdir命令 1.用途:创建目录 2.参数: (1).-p :如果路径中的某些目录不存在,则会自动创建目录,默认的mode由执行环境中的umask决定,即mode = 0777 - umask;无参数则路径中的目录不存在则将无法创建 (2).-m : 指定目录的权限; 3.例子: 示例一 [[email protected] ~]# umask 0022 [[email prote

dirname和shell常用命令

$ cd `dirname $0` 和PWD%}  显示当前目录名称${#var}             替换为变量字符个数特殊变量$ 当前SHELL的PID? 前一个命令的退出状态! 后台执行的上一个工作的PID 读取用户输入read                        从终端读取输入存入内置变量REPLYread var                  从终端读取输入存入变量var    read first .. last       从终端读取多个变量依次存入,若输入较多,

Linux查看系统配置常用命令

Linux查看系统配置常用命令: 系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# env # 查看环境变量 资源# free -m # 查看内存使用量和交换区使用量# df -h # 查看各

Linux系统巡检常用命令

# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -s

linux上的常用命令

一.常用远程拷贝命令 1.scp scp  /etc/hosts/file.txt [email protected]:/remotepath 2.rsync rsync  -vzrtopgu   --progress /etc/hosts 192.168.2.38:/etc/hosts rsync对应的服务是:xinetd service xinetd statusxinetd (pid 4758) is running... sync参数的具体解释如下: -v, --verbose 详细模式