linux基础2


命令链接符                                                                                              
 
    有时候,我们为输入方便为把多个命令放在一起输入执行。有点类似于dos下的批处理。就是一组命令的集合。那么我们看看都有哪些符号用于命令之间的连接。
——————————————————————————- 

管道
  将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:
  命令1 | 命令2 | 命令3… | 命令n
例如:
[root@localhost test]# ls -l /etc | more   显示/etc目录下的所有文件,以分页形式more
[root@localhost test]# ls -l /etc | grep init | wc -l     显示/etc目录下的所有文件,查找init文件,显示查找结果的数量。
——————————————————————————-
;(逗号)
用;间隔的各命令按顺序依次执行
[root@localhost ~]# pwd ; ll ; data
——————————————————————————- 
&&
command1 && command2
  成功                执行
  失败                不执行

[root@localhost ~]# lskk && pwd     如果第一个命令执行失败,第二个命令就不执行。

前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,他后面的命令才能被执行
——————————————————————————– 
||
[root@localhost ~]# lskk || pwd     如果第一个命令执行失败,第二个命令就执行。

command1 || command2
  成功                不执行
  失败                 执行

前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,他后面的命令才被执行。

 

输入/输出重定向                                                                                    
 
    其实,对于我们的计算机来讲,我们的标准输入设备是键盘,标准输入设备是显示器。
假如,我告诉,如果我们的输入不用键盘了,输出不在显示上了。你会说这怎么稿?即便是使用计算机多年的人,一下子也会迷糊。呵呵!看了我下面几个操作,你就明白了。
同标准I/O一样,Shell 对于每一个进程预先定义了个文件描述
(0、1、2)。分别对应于:
0 (stdin)标准输入
1 (stdout)标准输出;
2 (stderr)标准错误输出。
 
输出重定向
    我们可将某个输入的信息保存到一个文件中。
[root@localhost ~]# ls -l /tmp > /tmp.msg      将查看tmp目录的信息保存到/tmp.msg 文件中。屏幕中不显示任何结果。

[root@localhost test]# vi /tmp.msg                 查看/tmp.msg 文件信息
总用量 8
srwxr-xr-x  1 root  root  0  2月 22 19:36 mapping-root
srwxrwxrwx  1 mysql mysql 0  2月 27 22:35 mysql.sock

 
[root@localhost ~]# data >>/tmp.msg   “ >>”表示追加,在/tmp.msg 再追加一些新的信息。
 
 
输入重定向
      我们也可以将某个输入保存到一个文件中。
     上面我们学到一个wall命令,后面跟的信息可以广播表其它在线用户,当然,我们可以将要广播的信息保存到一个文件中,当然,如果有兴趣,我们还可以设定时间进行发送。
[root@localhost ~]# wall < /etc/motd    将motd文件中的信息进行广播。
 
错误输出重定向
    假如,我要对一个目录进行备份(/usr),备份到/backup /usr.bak目录下,可以备份时间要很久,我不想一直盯着屏幕看,这时我就可以设置,如果备份时发生错误,将错误信息保存到/bak.error文件 中。这样我就可以找朋友喝喝茶,聊聊天,回来看错误信息就可以了。
[root@localhost ~]# cp -R /usr  /backup/usr.bak 2> /bak.error
 

别名的使用                                                                                            

     在上一节中,在查看当前目录下的文件时,我说到了一个 ll  命令,看一楼回复中说,他是 ls -l 命令的别名,不是所有的linux都有。
     别名嘛,顾名思义,不同的两个名字指的是一个人,不同的两个命令具有相同的作用。
现在,你一定很想知道自己的系统中都有哪些别名。

[root@localhost ~]# alias             查询系统中的别名

alias cp=’cp -i’
alias l.=’ls -d .* –color=tty’
alias ll=’ls -l –color=tty’
alias ls=’ls –color=tty’
alias mv=’mv -i’
alias rm=’rm -i’
alias vi=’vim’
alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’

 
如何定义别名,假如我在dos下用习惯了copy 而不想用cp ,那么就可以为cp 定义一个copy的别名。
[root@localhost ~]# alias copy=cp              将cp命令功能赋于给copy
[root@localhost ~]# alias drm=”rm -rf”       将“ rm -rf ” 命令定义一个drm的别名。
 
[root@localhost ~]# unalias  copy       取消别名

原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/278297.html

(0)
上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐

发表回复

登录后才能评论