基础描述
程序:指令+数据
数据:输入+输出(I/O)
任何一个linux文件都有fd:文件描述符
标准输入:STDIN - 0 默认键盘输入
标准输出:STUOUT - 1 默认输出到终端窗口
标准错误输出:STUERR - 2 默认输出到终端窗口
I/0指令
I/0重定向:改变出入输出的默认位置
> 把STUOUT重定向到文件;重定向后会覆盖文件内容
SET -C禁止将重定向的内容覆盖文件,但可以追加;注:SET 是shell内嵌命令;在SET -C模式下需要覆盖的命令:>| file;
SET +C 允许覆盖
>> 原有内容基础上,追加内容
2> 把STUERR重定向到文件;2>> STUERR重定向追加到文件
&> 把所有输出重定向 到文件;&>>把所有输出重定向追加到文件
() 合并多个程序的STUOUT 例:( cal 2007 ; cal 2008 ) > all.txt
< 把STUIN 重定向到文件:tr
例:
tr ‘a-z’ ‘A-Z’< /etc/issue
该命令会把/etc/issue中的小写字符都转换成大写字符
tr –d abc < /etc/fstab
删除fstab文件中的所有abc中任意字符
tr 命令:转换和删除字符
tr [option]...SET1 [SET2]
option:
-c –C --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d --delete:删除所有属于第一字符集的字符
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
------------------------------------------------------------------------------------------------------------------------------------------
globing
[ ]匹配指定范围内的任意单个字符
例:[a-z],[A-Z],[0-9],[a-z0-9]
常用的几种特殊格式:
[[:upper:]] 所有大写字母
[[:lower:]] 所有小写字母
[[:alpha:]] 所有字母
[[:digit:]] 所有数字
[[:alnum:]] 所有的数字和字母
[[:space:]] 所有的空白字符
[[:punct:]] 所有的标点符号
[^] 匹配指定范围外的任意单个字符
例:
[^[:upper:]] 所有大写字母范围外的某个字符
[^0-9] 0-9范围外的某个字符
[^[:alnum:]] 所有字母和数据范围外的某个字符
1.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
ls -d /etc/[^[:alpha:]][:alpha:]*
2.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
mkdir /tmp/mytest1
cp -r /tmp/p*[^0-9] /tmp/mytest1
3.将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue|tr 'a-z' 'A-Z' > /tmp/issue.out
4.用户和用户组相关命令和用法
1.创建组distro,其GID为2019;
groupadd -g 2019 distro
2.创建用户mandriva, 其ID号为1005;基本组为distro
useradd -u 1005 -g distro mandriva
3.创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
4.给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
passwd mageia
chage -M 7 mageia
5.删除mandriva,但保留其家目录;
userdel mandriva
6.创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
useradd -u 2002 -g distro -G peguin slackware
7.修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
8.为用户slackware新增附加组admins;
usermod -G admins slackware