2020-06-27 输入输出,重定向和globing的使用

基础描述

程序:指令+数据

数据:输入+输出(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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。