Linux基础之Shell

2016-12-20  本文已影响0人  Near

1,什么是Shell?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
实际上是一个命令解释器,可以在Shell中输入和执行一些命令,与系统进行交互。

2, 关于Shell的分类?

Shell的分类有多种、查看当前系统中安装了多少的Shell,
可以在etc目录下查看
<code>
cat /etc/shells
</code>

cat /etc/shells

3,如何查看当前系统使用的Shell?

查看当前系统使用的shell的方法有很多种。
一般可以使用:
<code>
echo $SHELL
echo $0
env | grep SHELL
</code>

4, 如何切换当前系统使用的Shell?

使用chsh 命令 +选项和参数。

5, 标准输出&错误输出

想将一个命令执行的结果输出到文件之中,可以使用重定向字符 >
例如:
ls -l hello >a.txt
如果a.txt不存在会创建a.txt文件,如果a.txt存在,使用重定向字符> 会将原有的数据覆盖。
如果不想覆盖原有数据,可以使用>> 将命令的输出结果放在文件后面。
ls -l hello >> a.txt
利用cat a.txt在终端屏幕中显示

在输入命令时,有时候会遇到各种错误,如果想要将错误输出到文件中怎么办呢?
可以使用错误输出命令。
如输入命令
ls -l fff >a.txt fff的文件不存在。
如果有必要可以使用2> 重定向错误输出。例如以下:

yico@10:~/code$ ls -l fff 2>a.txt
yico@10:~/code$ cat a.txt
ls: fff: No such file or directory

还可以标准输出和错误输出相互结合

yico@10:~/code$ ls -l fff  >f 2>a.txt

查看f以及a.txt文件 f为空,a.txt显示为:ls: fff: No such file or directory

使用2>& 将标准的输出和错误输出到一个地方。如下:

yico@10:~/code$ ls fff >f 2>&1
yico@10:~/code$ cat 1
cat: 1: No such file or directory

使用set -C 或者set +C 控制输出是否覆盖
开启set -C后不能够覆盖已存在的文件,而set +C则可以覆盖

shiyanlou:~/ $ set -C                                              
shiyanlou:~/ $ ls >a.out                                        
zsh: \u6587\u4ef6\u5df2\u5b58\u5728: a.out
shiyanlou:~/ $ ls > 1.out                                         
shiyanlou:~/ $ cat 1.out                                           
1.out
1.txt
a.out
a.txt
Code
Desktop
linuxpocketguide
LPG-stuff.tar.gz
\u4e0b\u8f7d
shiyanlou:~/ $ ls > 1.out                                          
zsh: \u6587\u4ef6\u5df2\u5b58\u5728: 1.out
shiyanlou:~/ $ man set                                       
\u6ca1\u6709 set \u7684\u624b\u518c\u9875\u6761\u76ee
shiyanlou:~/ $ set +C                                              
shiyanlou:~/ $ ls >1.out   
set -C 与set +C

在输入输出时,还可以使用tee 命令
tee命令:将数据重定向到文件和屏幕上。即满足了输出到屏幕又满足了输出到文件。
例如:

shiyanlou:~/ $ ls | tee a.txt 
shiyanlou:~/ $ who |tail -n 3 | tr a-z A-Z                          
SHIYANLOU PTS/0        2017-03-04 14:07 (:1.0)
shiyanlou:~/ $ who |tail -n 3 | tr a-z A-Z |tee a.out  

6 ,alias与unalias

alias作为命令别名,在使用的时候能够极大的方便命令的输入。
使用方法:
alias 别名= '命令 -选项|参数'
alias rm='rm-i '
显示当前的alias -p 或者alias。
一般alias rm='rm-i' 不写入bashrc文件中,仅本次生效。
1)将alias的内容写入到当前用户目录下的.bashrc下,当前用户生效。写入到/etc/bashrc文件下,全部生效。
2) 如果需要立即生效则使用 source ~/.bashrc 这也是对.bashrc文件更改后立即生效的办法。
3)撤销某命令别名则使用unalias , 如上述alias rm='rm -- i' ,unalias rm 即可。

上一篇下一篇

猜你喜欢

热点阅读