环境变量:定义用户的工作环境某个方面的属性
文本文件的查看命令:
cat 连接 能够将后面跟的多个文件的内容,依次显示
cat -n 在显示时出现行号
    -E 显示行结束符
    -v  显示非打印字符不显示制表符tab 要想显示要用-T
 tac 逆显示 即和cat的显示结果相反
 more less
 more 能实现从前向后显示,不能从后向前 比如 # more /etc/passwd      查看哪个文件就在more or less 后加上文件名即可
 less   能从前向后,也能从后向前              # less  /etc/shadow
如果文件很长只想看一部分怎么办?用head/tail命令后跟文件名
 head -数字/head -n 数字 tail和head的用法相同     如# head -2  /etc/passwd  只看文件的前两行 = # head -n 2  /etc/passwd
 tail -f 不退出并一直查看文件内容,可以监控文件内容变化 ctrl+c退出  # tail -2  /etc/passwd = # tail -n 2  /etc/passwd只看文件的后两行
 wc:words counter 单词统计 什么都不加三者都显示
     -l 只显示行数
     -w  只显示单词数      以-w为例  # wc -w /etc/passwd     即passwd 中有多少单词 
     -c   只显示字符数
cut  -d  : 表示以谁为分隔符    默认分隔符
     -d :-f1,7 指定显示第一个和第七个   # cut -d: -f1,7  /etc/passwd   切出即只显示passwd的第一和第七条信息 
     -d' '-f1,7 空白分隔符。。
sort     对文本内容进行排序,不排数字,区分大小写,默认是升序a-z
     -r 逆序排序,不对文件本身内容排序,仅仅是将显示结果显示到屏幕
     -n 以数值大小的方式进行比较排序
     -f 如果排序时不区pa分大小写
     -u 排序后若有重复行则只显示一次,去除重复行
uniq  唯一的,本身不能独立使用,如果两行相同但不是连续出现的,则还是认为不是相同行
     -u 只显示不重复的行
     -d 只显示重复的行,但只显示一次,告诉你这行曾经重复过
     -c 显示这一行重复的次数
tr   SET1 SET2  把1中的替换成2中的字符  # tr 'abc''ABC' < /etc/passwd  或 # cat /etc/passwd | tr "abc" "ABC"
   -d   SET1  把出现的字符1、字符2统统删除   # tr -d  "a" < /etc/passwd   # cat /etc/passwd | tr +d  "a"
   +d  将删掉的字符添加上
   正则表达式:regular expression ,缩写regex。由元字符组合的式子,可以当做用pattern以匹配符合指定特定的字符串
正则表达式分为:1、基本正则表达式 2、扩展正则表达式
下面总结一下元字符的使用方法
 先用nano编辑器编辑一个文本文档redhat.txt
 步骤:# nano redhat.txt
 内容  what is redhat
       redhat
       she has a redhat
       redhat is a hat
       redhat is a redhat
       Redhat is red
       # hfjdgkasljfgjlkfglh
       !fghkajglrkjklj
编辑好按ctrl+o保存 enter 确定 ctrl+x 退出编辑模式
文本查找工具:grep,egrep,fgrep  主要是grep
元字符的使用
^PATTERN  出现在行首,也叫定位符 # grep --color=auto “^redhat” redhat.txt 查找redhat出现在行首的行
PATTERN$ 行尾锚定符               # grep --color=auto “redhat$” redhat.txt
^PATTERN $ 以指定字符串开头结尾且这一行只有这个字符串 # grep --color=auto “^redhat$” redhat.txt 查找以redhat开头结尾且这一行只有redhat这一个单词或字母
\<PATTERN 字符串词首锚定符 若是锚定单词“\<PATTERN "  # grep --color=auto “\<r” redhat.txt 查找以r开头的单词
PATTERN\> 词尾   # grep --color=auto “\<r” redhat.txt  查找以h结尾的单词
.         匹配任意单个字符 如以r开头中间有四个字符以t结尾则表示为”r....t"# grep --color=auto “r...t” redhat.txt  查找以r开头中间有三个字符以t结尾,一个点代表一位
*        匹配此前的字符0到任意次 a*b
.*       匹配任意长度的任意字符 贪婪模式:  默认情况下尽可能匹配符合模式的字符串# grep --color=auto “r.*t” redhat.txt   查找以r开头中间是任意字符以t结尾的字符串
?       匹配此前的字符0次或一次
\{m,n\}   匹配此前字符至少m次至多n次比如# grep --color=auto “r\{0,2\}t” redhat.txt  查找以r开头以t结尾中间至多有两个字符 至多5次\{0,5\}   至少5次\{5,\}  只五次\{5\}
[]   匹配指定范围内的任意单个字符如 # grep --color=auto “[a-s]” redhat.txt 查找文件中a-s的字母 只要含有a-s范围内的字母都显示
[^]   匹配指定范围外的任意单个字符 如# grep --color=auto “[^a-c]” redhat.txt  查找文件中不是a-c范围内的字母
[:space:] 
比如以r 开头t结尾的任意字母至少出现3次至多出现10次#  grep --color=auto "r[[:alpha:]\{3,10}"
\(\)  字符分组或引用

grep       支持正则表达式,根据指定的模式从而找到一个或多个文本文档,符合或匹配制定模式的行的显示出来
     --color=auto  显示要显示字符的颜色   # grep --color=auto “redhat” redhat.txt  查找redhat.txt中有redhat的 行 --color=auto使显示被找字的颜色
     -v  表示取反即显示不匹配的   # grep -v --color=auto “[cC]” redhat.txt   与-i的结果相反,即-i没有显示的-v显示出来了
     -i  字母忽略大小写   # grep  -i --color=auto “[cC]” redhat.txt 忽略大小写
     -r  搜索多个文件,递归搜索  # grep -r  --color=auto “r" /etc  -r         如果搜索的是目录则会搜索目录及其子目录中的多个文件,递归搜索
     -B n   显示匹配行和匹配行之前的n行 # grep -B 2 --color=auto “[r]” redhat.txt     显示匹配行和匹配行之前的2行
     -A n    显示匹配行和匹配行之后的n行# grep -A 2 --color=auto “[r]” redhat.txt    显示匹配行及其后的两行
     -C  n  显示匹配行的上下n行 # grep -C 2 --color=auto “[r]” redhat.txt      显示匹配行的上下2行
     -o 只显示被模块匹配到的行而非此行字符串 # grep -o --color=auto “h” redhat.txt    只显示出现的字母h
     -E  只表示扩展正则表达式
练习
1、创建一个用户mandriva,其ID号为2002,基本组为disto(组ID为3003),附加组为linux;
# groupadd -g 3003 disto
# groupadd  linux
# useradd -u 2002 -g disto -G linux mandriva
2、创建一个用户fedora,其全名为Fedora Community,默认shell为csh;
#  useradd  -c "Fedora Communit" -s /bin/csh  Fedora
3、修改mandriva的ID号为4004,基本组为linux,附加组为disto和fedora;
# usermod -u 4004 -g linux -G disto,Fedora  mandriva
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;
#  passwd -n 2 -x 50 Fedora 
5、将mandriva的默认shell改为/bin/bash;
#  useradd -s /bin/bash mandriva
练习2、新建用户jerry; 然后复制/etc/skel目录至/tmp,要求为/tmp/skel目录指定权限,要求如下:
(1)属主属组均为jerry,包括内部的所有文件;
# useradd jerry
# cp -r /etc/skel  /tmp
(2)skel及其内部的所有文件的属组没有任何权限,其它用户也没有任何权限;
#  chmod -R go= /tmp/skel   
#  ll -a  /tmp/skel    查看是否修改成功
(3)将/tmp/skel/.bashrc的权限再改为跟/etc/issue一样;
# chmod  --reference=/etc/issue  /tmp/skel/.bashrc     注:--reference 是和谁睡一样 比如把A的权限/属主属组改成和B一样 则为# chmod  --reference=B  A   # chown --reference=B A
练习3:查找当前系统上名字为user1的用户的帐号的相关信息, /etc/passwd, user11, myuser1
# grep "^user1:" /etc/passwd
# grep "^user1\>" /etc/passwd
练习3:查找当前系统上以其为附加组的用户有两个或两个以上的组的相关信息, /etc/group, :,
# grep --color=auto "[^:]*:[^:]*:[^:][[:alpha:]]\{1,\},.*" /etc/group
或扩展正则表达式
# grep -E --color=auto  "([^:]:*){3}([[:alpha:]]*,){1,}" /etc/group
练习4:查找当前系统上其用户帐号密码最长使用期为99999天的用户帐号的相关信息;99999
# grep "[^:]*:[^:]*:[^:]*:[^:]*:99999:" /etc/shadow  查找最长使用期限用户的相关信息
# grep  -E --color=auto  "([^:]*){4}:99999:" /etc/shadow 查找最长使用期限99999
练习5:
1、显示/proc/meminfo文件中以不区分大小的s开头的行;
# grep --color=auto "^[sS]"  /proc/meminfo
2、显示/etc/passwd中以nologin结尾的行;
# grep --color=auto "nologin\>" /etc/passwd
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
# grep --color=auto "^#[[:space:]]\{1,\}[^[:space:]].*" /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
# grep --color=auto  ":[0-9]:" /etc/inittab
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
# grep --color=auto "^[[:space:]]\{1,\}"  /boot/grub/grub.conf
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
# grep --color=auto "^[0-9]\>" /etc/inittab
 
 
alias 取别名的命令使用非常简单
例如我们嫌这个命令太长又是经常使用的则可以使用aliasa命令用grep 替换grep  --color=auto使其简单易记,可以这样写 # alias grep="grep --color=auto"