Linux管道及IO重定向小练习

简介:

1.统计/usr/bin目录下的文件个数

1
2
3
[root@localhost ~] # ls /usr/bin | wc -l
1306
[root@localhost ~] #


2.取出当前系统上所有用户的SHELL,要求,每种SHELL只显示一次,并且按顺序进行显示

1
2
3
4
5
6
7
8
9
10
[root@localhost ~] # cut -d: -f7 /etc/passwd | sort -u
/bin/bash
/bin/nologin
/bin/sync
/bin/tcsh
/sbin/halt
/sbin/login
/sbin/nologin
/sbin/shutdown
[root@localhost ~] #


3.思考:如何显示/var/log目录下每个文件的内容类型?

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~] # file /var/log/*
/var/log/acpid :            ASCII text
/var/log/anaconda .log:     ASCII English text, with very long lines
/var/log/anaconda .syslog:  ASCII English text
/var/log/anaconda .xlog:    ASCII English text
/var/log/audit :            directory
/var/log/boot .log:         empty
/var/log/boot .log.1:       empty
/var/log/boot .log.2:       empty
/var/log/boot .log.3:       empty
/var/log/boot .log.4:       empty


4.取出/etc/inittab文件的第6行

1
2
3
4
5
6
7
8
9
10
[root@localhost ~] # head -6 /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
[root@localhost ~] # head -6 /etc/inittab | tail -1
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
[root@localhost ~] #


5.取出/etc/passwd文件中倒数第9个用户的用户名和SHELL,显示到屏幕上并将其保存至/tmp/uses文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~] # tail -9 /etc/passwd
zhangfengzhe10:x:1102:1102:: /home/zhangfengzhe10 : /bin/bash
zhangfengzhe11:x:1103:1103:: /home/zhangfengzhe11 : /sbin/nologin
zhangfengzheforsys:x:101:102:: /home/zhangfengzheforsys : /bin/bash
test1:x:1104:1104:: /home/test1 : /bin/bash
mandriva:x:4004:3004:: /home/mandriva : /bin/bash
fedora:x:2003:2003:Fedora Commnuity: /home/fedora : /bin/tcsh
hbase:x:102:103:: /home/hbase : /bin/nologin
openstack:x:4005:4005:: /home/openstack : /bin/bash
hive:x:5000:5000:: /home/hive : /bin/bash
[root@localhost ~] # tail -9 /etc/passwd | head -1
zhangfengzhe10:x:1102:1102:: /home/zhangfengzhe10 : /bin/bash
[root@localhost ~] # tail -9 /etc/passwd | head -1 | cut -d: -f1,7
zhangfengzhe10: /bin/bash
[root@localhost ~] # tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee /tmp/users
zhangfengzhe10: /bin/bash
[root@localhost ~] # cat /tmp/users
zhangfengzhe10: /bin/bash
[root@localhost ~] #


6.显示/etc目录下所有以pa开头的文件,并统计其个数

1
2
3
4
5
6
7
[root@localhost ~] # ls -ld /etc/pa*/
drwxr-xr-x 2 root root 4096 Mar  5  2012  /etc/pam .d/
drwxr-xr-x 2 root root 4096 Aug 17  2011  /etc/pam_pkcs11/
drwxr-xr-x 3 root root 4096 Aug 17  2011  /etc/pango/
[root@localhost ~] # ls -ld /etc/pa*/ | wc -l
3
[root@localhost ~] #


7.不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~] # echo "alias cls='clear'"
alias  cls= 'clear'
[root@localhost ~] # echo "alias cls='clear'" >> ~/.bashrc
[root@localhost ~] # tail -1 ~/.bashrc
alias  cls= 'clear'
[root@localhost ~] # tail  ~/.bashrc
alias  cp = 'cp -i'
alias  mv = 'mv -i'
# Source global definitions
if  [ -f  /etc/bashrc  ];  then
     /etc/bashrc
fi
alias  cls= 'clear'
[root@localhost ~] #


LINUX的重要哲学思想:

组合小命令完成复杂功能。



本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1413214,如需转载请自行联系原作者




相关文章
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
335 0
|
7月前
|
监控 Linux
Linux命令大全:echo与tail实现输出重定向。
这样,我们实现了使用echo和tail命令进行输出重定向的目的。在实际应用中,输出重定向技巧可节省时间,提高工作效率。希望本文内容对您了解和掌握Linux系统中echo与tail命令以及输出重定向的操作有所帮助。
233 27
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
627 1
Linux C/C++之IO多路复用(aio)
|
6月前
|
Linux C语言 网络架构
Linux的基础IO内容补充-FILE
而当我们将运行结果重定向到log.txt文件时,数据的刷新策略就变为了全缓冲,此时我们使用printf和fwrite函数打印的数据都打印到了C语言自带的缓冲区当中,之后当我们使用fork函数创建子进程时,由于进程间具有独立性,而之后当父进程或是子进程对要刷新缓冲区内容时,本质就是对父子进程共享的数据进行了修改,此时就需要对数据进行写时拷贝,至此缓冲区当中的数据就变成了两份,一份父进程的,一份子进程的,所以重定向到log.txt文件当中printf和fwrite函数打印的数据就有两份。此时我们就可以知道,
103 0
|
6月前
|
存储 Linux Shell
Linux的基础IO
那么,这里我们温习一下操作系统的概念我们在Linux平台下运行C代码时,C库函数就是对Linux系统调用接口进行的封装,在Windows平台下运行C代码时,C库函数就是对Windows系统调用接口进行的封装,这样做使得语言有了跨平台性,也方便进行二次开发。这就是因为在根本上操作系统确实像银行一样,并不完全信任用户程序,因为直接开放底层资源(如内存、磁盘、硬件访问权限)给用户程序会带来巨大的风险。所以就向银行一样他的服务是由工作人员隔着一层玻璃,然后对顾客进行服务的。
87 0
|
10月前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
428 34
|
缓存 安全 Linux
Linux 五种IO模型
Linux 五种IO模型
|
12月前
|
Linux API C语言
Linux基础IO
Linux基础IO操作是系统管理和开发的基本技能。通过掌握文件描述符、重定向与管道、性能分析工具、文件系统操作以及网络IO命令等内容,可以更高效地进行系统操作和脚本编写。希望本文提供的知识和示例能帮助读者更深入地理解和运用Linux IO操作。
238 14
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
443 0
Linux C/C++之IO多路复用(poll,epoll)