Linux 命令2

echo

换行需要加-e参数

$ echo -e "hello\nbaozi"hellobaozi

set

查看变量
-u 严格模式

$ echo $x

$ set -u
$ echo $x
-bash: x: unbound variable

unset

$ x=5
$ unset x

read

-p 提示输入

$ read -p "please enter your name:" name
please enter your name:baozi
$ echo $name
baozi

-t 设置等待输入时长

$ read -p "请在2秒内输入姓名:" -t 2 name
请在2秒内输入姓名:baozi
$ echo $name
baozi

-s 不显示输入的内容

$ read -p "请输入你的密码:" -s pwd
请输入你的密码:
$ echo $pwd
123

-n 指定字符数

$ read -p "输入5个字符:" -n 5 chars
输入5个字符:12345
$ echo $chars
12345

declare

-设定选项
+取消选项
a 数组型
i 整数型
x 环境变量:export
r 只读变量
p 显示类型

示例

$ aa=11
$ bb=22
$ declare -i cc=$aa+$bb
$ echo $cc
33
$ declare -p cc
declare -i cc="33"

定义数组

$ movie[0]=aa
$ movie[1]=bb
$ declare -a movie[2]=cc
$ echo ${movie[1]}
bb
$ echo ${movie[*]}
aa bb cc
$ declare -p movie
declare -a movie='([0]="aa" [1]="bb" [2]="cc")'

cut

-f 指定取第几列,多列使用逗号分隔。
-d 指定分隔符(默认制表符)。

$ cat stu.txt
1   20  qiu
2   43  liu
3   23  zheng
4   32  yang
5   24  qian
$ cat stu1.txt
1 20 qiu
2 43 liu
3 23 zheng
4 32 yang
5 24 qian

$ cut -f 2 stu.txt
20
43
23
32
24
$ cut -f 2,3 stu.txt
20  qiu
43  liu
23  zheng
32  yang
24  qian

$ cut -f 2 -d " "  stu1.txt
20
43
23
32
24
$ cut -f 2,3 -d " " stu1.txt
20 qiu
43 liu
23 zheng
32 yang
24 qian

printf

%s:输出字符串
%i:输出整数
%f:输出浮点数
%m.nf :m表示整数位长度,n表示小数位长度

$ printf '%s' 1 2 3 4 5 6
123456

$ printf '%s\n' 1 2 3 4 5 6
1
2
3
4
5
6

$ printf '%s %s %s\n' 1 2 3 4 5 6
1 2 3
4 5 6

$ printf '%s %s %s %s %s %s\n' 1 2 3 4 5 6
1 2 3 4 5 6

$ printf '%s%s%s\n' 1 2 3 4 5 6
123
456

$ printf '%s%s%s%s%s%s\n' 1 2 3 4 5 6
123456

读取文件内容

$ printf '%s\t%s\t%s\n' $(cat stu.txt)
1   20  qiu
2   43  liu
3   23  zheng
4   32  yang
5   24  qian

sort

-r 降序,默认升序

$ head -n 20 /etc/passwd | grep -v "#" |cut -f 1,2,3 -d ":" > some_passwd
$ cat some_passwd
nobody:*:-2
root:*:0
daemon:*:1
_uucp:*:4
_taskgated:*:13
_networkd:*:24
_installassistant:*:25
_lp:*:26
_postfix:*:27
_scsd:*:31

$ sort some_passwd
_installassistant:*:25
_lp:*:26
_networkd:*:24
_postfix:*:27
_scsd:*:31
_taskgated:*:13
_uucp:*:4
daemon:*:1
nobody:*:-2
root:*:0

$ sort -r some_passwd
root:*:0
nobody:*:-2
daemon:*:1
_uucp:*:4
_taskgated:*:13
_scsd:*:31
_postfix:*:27
_networkd:*:24
_lp:*:26
_installassistant:*:25

-t 指定分隔符,默认制表符
-k n[,m] 按照指定的字段范围排序,默认到末尾。

$ sort -t ":" -k "3,3" some_passwd
nobody:*:-2
root:*:0
daemon:*:1
_taskgated:*:13
_networkd:*:24
_installassistant:*:25
_lp:*:26
_postfix:*:27
_scsd:*:31
_uucp:*:4

$ sort -t ":" -k "3,3" -r some_passwd
_uucp:*:4
_scsd:*:31
_postfix:*:27
_lp:*:26
_installassistant:*:25
_networkd:*:24
_taskgated:*:13
daemon:*:1
root:*:0
nobody:*:-2

-n 以数值方式排序,数字默认是以字符串形式排序的。

$ sort -t ":" -k "3,3" -r -n some_passwd
_scsd:*:31
_postfix:*:27
_lp:*:26
_installassistant:*:25
_networkd:*:24
_taskgated:*:13
_uucp:*:4
daemon:*:1
root:*:0
nobody:*:-2

$ sort -t ":" -k "3,3" -n some_passwd
nobody:*:-2
root:*:0
daemon:*:1
_uucp:*:4
_taskgated:*:13
_networkd:*:24
_installassistant:*:25
_lp:*:26
_postfix:*:27
_scsd:*:31

wc

-l 只统计行数
-w 只统计单词数
-m 只统计字符数

$ wc /etc/passwd
     108     294    6774 /etc/passwd
$ wc -l -w -m /etc/passwd
     108     294    6774 /etc/passwd

你可能感兴趣的:(Linux 命令2)