RHEL6入门系列之十一,内/外部命令、重定向、管道

简介:

前面一口气介绍了18个命令,可能大家都已经有些晕了。学习Linux就是这样,它不像Windows那样的傻瓜式操作,要想学好Linux是必须要下苦功的。所以,Linux本身就不是一个面向普通用户的桌面操作系统,而是面向专业运维人员的服务器操作系统。不过大家也没必要把Linux中的所有命令都一口气全学完,其实只要掌握了前面这18个命令,就可以说已经通过了Linux入门的第一关,就已经可以来做一些基本操作了。关键还在于要反复练习,把基础打好。

今天主要介绍几个在Bash中经常用到的基本概念和功能。

一、内部命令和外部命令
 
内部命令,指的是集成在 Shell里的命令,属于shell的一部分,系统中没有与命令单独对应的程序文件。只要shell被执行,内部命令就自动载入内存,用户可以直接使用。如cd命令等。
外部命令,考虑到运行效率等原因,不可能把所有的命令都集成在 shell里,更多的Linux命令是独立于shell之外的,这些就称为外部命令。每个外部命令都对应了系统中的一个文件,而Linux系统必须要知道外部命令对应的程序文件所在的位置,才能由shell加载并执行这些命令。如cp、ls等都属于外部命令。
外部命令的程序文件大都存放在 /bin、/sbin、/usr/bin……这些目录里,Linux系统会默认将这些路径添加到一个名为PATH的变量里,执行“echo $PATH”命令可以显示出PATH变量里的保存的目录路径(路径之间用“:”间隔)。
[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
每当要执行一个外部命令时, Linux系统就会先从PATH变量所保存的这些路径里去寻找命令所对应的的程序文件,只有找到了程序文件才能正确地去执行外部命令。这也就意味着,如果把一个外部命令所对应的程序文件删了,或者是存放外部命令程序文件的目录没有添加到PATH变量里,这些都会导致外部命令无法正常执行,这点我们在以后还会再提到。当然对于我们目前而言,并不需要知道这些外部命令的具体位置,甚至不用刻意地去分辨一个命令到底是内部还是外部命令,因为它们的使用方法都是基本类似的。
 
明白了内部命令和外部命令的区别之后,下面介绍几个相关的命令。
 
1、which 命令——查找外部命令所对应的程序文件
 
which命令用于查找 Linux外部命令所对应的程序文件,其搜索范围由环境变量PATH决定。
如,查找 ls命令所对应的程序文件。
[root@localhost ~]# which ls
alias ls='ls --color=auto'
        /bin/ls
执行命令后,首先显示出系统中所设置的 ls命令的别名,然后是ls命令的程序文件“/bin/ls”。
如果要查找的是一个内部命令,那将找不到任何对应的程序文件。
[root@localhost ~]# which cd
/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
 
2、help 命令——查看内部命令的帮助信息
help命令只能查看内部命令的帮助信息。
如,查看 pwd命令的帮助信息。

 当用help查看外部命令的帮助信息时则会报错。
[root@localhost ~]# help ls
-bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'.

对于外部命令,大都可以使用一个通用的命令选项“ --help”,以查看命令的帮助信息。
如,使用“ --help”选项查看ls命令的帮助信息。

3、man命令——查看命令的帮助手册

help命令查看的帮助信息较为简略,如果要查看更为详尽的帮助信息,可以使用 man命令查看指定命令的帮助手册。
如,查看 ls命令的帮助手册。
[root@localhost ~]# man ls
执行 man命令后将进入阅读环境,按q键可以退出。
无论内部命令还是外部命令,都可以使用 man命令查看其帮助手册。
 
二、重定向
 
Linux系统中标准的输入设备为键盘,标准输出设备为屏幕,但在某些情况下,我们希望能从键盘以外的其他输入设备读取数据,或者将数据送到屏幕外的其他输出设备,这种情况称为重定向。 Shell中输入输出重定向主要依靠重定向符号来实现,重定向的目标通常是一个文件。
 
1.  输入重定向
输入重定向就是将命令中接收输入的途径由默认的键盘重定向为指定的文件,需要使用“ <”重定向操作符。如命令“wc < f1”就表示将f1文件的信息作为wc命令的输入。
输入重定向并不常使用,所以这里就不过多介绍了。
 
2.  输出重定向
输出重定向是将命令的输出结果重定向到一个文件中,而不是显示在屏幕上。输出重定向使用“ >”或“>>”操作符,分别用于覆盖、追加文件。
>”重定向符后面指定的文件如果不存在,在命令执行中将建立该文件,并保存命令结果到文件中。“>”重定向符后面指定的文件如果存在,命令执行时将清空文件的内容并保存命令结果到文件中。
如,查看 /etc/passwd文件的内容,并将输出结果保存到pass.txt文件中。
[root@localhost ~]# cat /etc/passwd > pass.txt
执行该命令后,会在当前目录下生成一个名为 pass.txt的文件,文件中的内容就是“cat /etc/passwd”命令执行的结果。
>>”重定向操作符可以将命令执行的结果重定向并追加到指定文件的末尾保存,而不覆盖文件中原有的内容。
如,查看 /etc/shadow文件的后3行内容,并将输出结果追加保存到pass.txt文件中。
[root@localhost ~]# tail -3 /etc/shadow >> pass.txt
 
三、管道符“|”
 
通过管道符“ |”,可以把多个简单的命令连接起来实现更加复杂的功能。
管道符“ |”用于连接左右两个命令,将“|”左边命令的执行结果作为“|”右边命令的输入,这样“|”就像一根管道一样连接着左右两条命令,并在管道中实现数据从左至右的传输。
ls命令与more命令使用管道符组合使用便可以实现目录列表分页显示的功能。
如,分页显示 /etc目录下所有文件和子目录的详细信息。
[root@localhost ~]# ls -lh /etc | more
ls命令与 grep命令使用管道符组合使用可以只显示目录列表中包含特定关键字的列表项。
如,显示 /etc目录下包含有“net”关键字的所有文件和子目录的详细信息。
[root@localhost ~]# ls -lh /etc | grep net
-rwxr-xr-x. 1 root root 1.3K 4月  10 2012 auto.net
-rw-r--r--. 1 root root    74 5 31 2012 issue.net
-rw-r--r--. 1 root root 767 11月  30 2009 netconfig
-rw-r--r--. 1 root root    58 5 23 2012 networks
drwxr-xr-x. 2 root root 4.0K 1月    8 19:14 xinetd.d
如,统计一下 /etc目录下所有以“.conf”结尾的文件的个数。
[root@localhost ~]# ls -l /etc/*.conf | wc –l      
44                         
如,查看 /etc/httpd/conf/httpd.conf文件中除了以“#”开头的行和空行以外的内容。
[root@localhost ~]# grep -v “^#” /etc/httpd/conf/httpd.conf | gerp –v “^$”

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1118336
相关文章
|
4月前
|
Linux Shell PHP
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
49 0
|
5月前
|
弹性计算 运维 Shell
Linux加强篇003-管道符、重定向与环境变量
山重水复疑无路,柳暗花明又一村
248 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 发送和接收传真 efax命令 使用指南
【Shell 命令集合 网络通讯 】Linux 发送和接收传真 efax命令 使用指南
28 0
|
8月前
|
Linux 编译器
疯了!终于有人告诉我什么是重定向 管道命令 环境变量PATH!
FHS本质一套规定Linux目录结构,软件建议安装位置的标准。使用Linux来开发产品或者发布软件的公司、个人太多,如果每家公司或者个人都按照自己的意愿来配置文件或者软件的存放位置,这无疑是一场灾难。
74 0
|
Unix Shell Linux
Linux Shell重定向 管道命令 awk编程 sed文件操作高阶函数
在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍。 作者:有勇气的牛排
Linux Shell重定向 管道命令 awk编程 sed文件操作高阶函数
|
Shell Linux 数据安全/隐私保护
大话Linux——管道符重定向和环境变量
3、管道符、重定向与环境变量 3.1、输入输出重定向 标准输入重定向(STDIN,文件描述符为0)默认从键盘输入,还可以从其他文件或命令输入 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕
101 0
|
Linux Shell
Linux重定向用法详解
Linux重定向用法详解
101 0
|
Linux
Linux 重定向与管道符
Linux 重定向与管道符
95 0
|
安全 Java Linux
linux入门系列7--管道符、重定向、环境变量
前面文章我们学习了linux基础命令,如果将不同命令组合使用则可以成倍提高工作效率。本文将学习重定向、管道符、通配符、转义符、以及重要的环境变量相关知识,为后面的shell编程打下基础。
164 0