ls –l kkk>>result.txt
将kkk目录下的文件列表追加到result.txt中。
可是,若kkk目录不存在,出错信息因未转向而仍出现在屏幕上。标准错误的重定向操作符是“2>”或“2>>” (其实标准输出重定向操作符“>”是“1>”的省略形式) 若要将输出转到新文件result.txt,并且当有错误发生时记录到error.txt文件中,应该: ls –l kkk>result.txt 2>error.txt
若要将标准输出和标准错误都转向到同一个文件,应该: ls –l kkk>result.txt 2>&1
2>&1句法告诉Bash那些本来输出到文件描述符2(标准错误)的内容传送到文件描述符1(标准输出),由于文件描述符1已被转向到文件,所以标准错误也被送入到同一文件中。鉴于该操作极其普遍以至于Bash有一专门简化用法: ls –l kkk &>result.txt
②输入转向
输入转向的操作符是“<”。
输入转向可将原本应由键盘输入的数据改由文件或其它输入设备输入。例如以前学过的广播命令wall,其格式是: wall [广播信息]
若只键入wall就回车,程序将等待键盘输入,直到回车再按EOF(ctrl+d)。但为简化经常性的信息发布,我们可以
建立一个包含信息的的文本文件mes.txt,执行: wall ⑴其它教科书上一般都用cat、wc等命令来解释标准输入转 向,这些命令在无参数执行时确实是从标准输入设备输入(这可使其作为过滤器),但有文件名作参数时就直接从该文件输入,而不必非要加转向符。即cat a.txt和cat ⑵ DOS中标准输入和输出设备是CON,标准打印输出是PRN,执行copy con a.txt将接受其后的键盘输入,当按F6或ctrl+z时生成a.txt文件内容。同DOS用法类似,Linux也可以使用cp /dev/stdin a.txt命令去创建文本文件,或者使用cp a.txt /dev/stdout命令去显示文本文件内容。所不同的是Linux系统的文件结束符是ctrl+d而不是DOS中的crtl+z。 五、 命令管道 使用管道操作符“|”将一个以上的命令或程序连接起来,前一个的输出作为后一个的输入,如此形成一个管道。 例:ls –l /dev|more 将目录列表分页显示(more命令后述) (注:管道中的各个命令或程序是同时运行的。) 六、 历史表文件.bash_history ?每个用户的主目录下都有一个名为.bash_history文本文件,该文件记载了用户操作的历史记录。 ?Bash为每个用户维护着一个历史表。 ?用户登录时该文件内容加载到历史表,注销时再更新该文件 ? history命令可以列出用户的操作记录,即历史表。 历史表的每一行称之为一个事件,行首数字表示事件号。 ?用“!”加事件号作命令可以简便地重复该历史事件,如: !385 ? 特殊操作符!!用于重复最近一个命令。 ? 更常用的技巧:在bash下可直接用上光标键回溯操作历史。 七、 shell函数 bash允许用户自定义命令函数,其格式为: name() { command_list;} 即:函数名() { 命令列表;} 注意:⑴左花括号后要有一个空格,规定如此,未必有道理; ⑵命令列表可以是多个命令,每个命令后别忘有分号; ⑶函数中可使用$*提取函数的参数。 例:dir() { ls –ld $*;} 以后就可以用命令dir来列出指定目录中的文件名和目录名, 如:dir /etc 显示/etc目录中的文件和目录列表 八、 命令补全功能 tab键可用来对命令补全,是Linux操作中最常用的技巧之一。 例:在安装一章我们曾接触过一条用于文档安装的命令: mount -t iso9660 -o loop /opt/RedhatLinux9.0文档CD.ISO /mnt/iso 这样长的命令且文件名夹杂汉字,输起来十分不易。 当然可先用mv命令将文件更名为一个简单的文件名,但利用补全bash的功能更为简便: 当输到“mount -t iso9660 -o loop /opt/R”时按tab键,系统会自动依据查找结果补全文件名,简化了不少操作。 若系统没有给予完全补全,说明存在近似的文件需要选择,例: 假设/opt目录中还有一个Redflag.iso,则光标会停在Red后,此时需要按h或f进行下一步选择。 九、 作业控制 进程可以简单地理解为处于调度中的程序, 作业可能有多个进程(如管道)。 ①ps 查看进程状态命令 执行ps命令可以报告系统中进程的运行状况。如: PID TTY TIME CMD 2565 tty1 00:00:00 bash 2597 tty1 00:00:00 ps 即系统正在运行两个进程,bash和ps本身。 常用的ps选项: a e f j l u w t x ps输出域的含义: UID PID %CPU SIZE RSS TTY STAT 进程所有者的名字 进程ID 进程的CPU利用率,计算原因有可能超过100% 进程所使用的虚拟内存量,以K为单位 进程使用的驻留内存量或实际内存量 与进程相关的终端。有时缩写,如p6=/dev/tty6。 进程的状态:R:正在运行或准备运行;S:休眠状态;I:空闲状态;Z:僵尸进程;D:磁盘等待;P:分野等待;W:交换到磁盘;T:终止;N:由nice降低优先级;<:由root提高执行优先级。 显示所有用户的进程 命令执行后显示进程环境变量 输出全部信息 显示进程的父进程PID 以长格式输出 显示用户名和进程的开启时间 以宽格式输出,将一行显示不下的其余部分显示出来 显示与tty设备相关的进程 显示没有控制终端的进程 %MEM 进程使用内存的百分比