每个用户的主目录下还有几个这样的隐藏文件:
.bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。
.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。
.bash_history :记录命令历史用的。
.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中。
Linux shell中的特殊字符
* 代表零个或多个任意字符
? 代表一个任意字符
# 代表注释说明的意思,#号后面的内容忽略掉;
\ 脱意字符,将后面的特殊字符(* $)还原为普通字符;
| 管道符,讲前面命令执行的结果作为后面命令的输入;
$ 引用变量
; 分隔2个命令,2个命令都执行,不管前面命令是否错误 ls a.txt ; cat a.txt
& 把命令放到后台运行
&& 命令的连接符,第一个执行成功才会执行第二个;
|| 分隔命令,只有前面命令运行不成功,才会执行后面的命令;
cut 截取某一个字段、字符
-d 指定分隔符,分割字符用单引号 ' ' 括起来
-f 指定第哪个区间
-c 指定第几个字符;指定多个字符 -c 1,5 ;可以指定一个区间 -c 1-4 ;
列出以:号分隔列出第7列的内容,只显示前3行;
[root@localhost ~]# cut -d: -f 7 passwd | head -3
/bin/bash
/sbin/nologin
/sbin/nologin
[root@linuxidc ~]# head -3 passwd |cut -c 1-4
root
bin:
daem
sort 排序输出 默认按首字母升序的顺序排列;
-t 指定分隔符
-k 指定以哪个区间进行排序
-r 逆序排列
-u 删除重复的
-n 按照数字大小排序
-f 忽略大小写
按:号分隔,按第3列uid排序;
[root@localhost ~]# sort -t: -n -k 3 passwd |head -3
root:x:0:0:root:/root:/bin/bash
ROOT:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
wc 统计行数、单词数、字节数
wc -l 统计行数
wc -w 统计单词数
wc -c 统计字符数(wc -m 一样的功能)
[root@linuxidc ~]# wc -l /etc/passwd
24 /etc/passwd
[root@linuxidc ~]# wc -w /etc/passwd
32 /etc/passwd
[root@linuxidc ~]# wc -c /etc/passwd
1041 /etc/passwd
[root@linuxidc ~]# wc /etc/passwd
24 32 1041 /etc/passwd
uniq 去除重复的行
针对数字的话,需要先进行sort排序,再去除重复的行。
-c 统计重复的行数,并写在最前面;
[root@linuxidc tmp]# uniq 1.txt
111
222
111
333
[root@linuxidc tmp]# sort 1.txt | uniq -c
2 111
1 222
1 333
[root@linuxidc tmp]# sort test.txt |uniq -c
2 12345
1 67899
2 abc
1 helloworld
tee 重定向文件,并且同时还在屏幕上显示;
类似与重定向 “>”, 但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
12 [root@linuxidc ~]# echo 'abcdefg' | tee test.txt
abcdefg
tr 替换字符
常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号;
-d 删除某个字符
把小写字母变成大写字母
123 [root@linuxidc ~]# head -2 passwd | tr '[a-z]' '[A-Z]'
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
替换一个字符
[root@linuxidc ~]# head -2 passwd | tr 'r' 'R'
Root:x:0:0:Root:/Root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
split 切割文档
-b 依据大小来分割文档,单位为byte
-l 依据行数来分割文档。
示例一,按b大小分割
[root@linuxidc ~]# ls -lb passwd
-rw-r--r--. 1 root root 1076 Apr 9 15:14 passwd
[root@linuxidc ~]# split -b 500 passwd
[root@linuxidc ~]# ls -l
-rw-r--r--. 1 root root 500 Apr 9 15:17 xaa
-rw-r--r--. 1 root root 500 Apr 9 15:17 xab
-rw-r--r--. 1 root root 76 Apr 9 15:17 xac
示例二,按l行数分割