美文网首页
Linux基础之Shell

Linux基础之Shell

作者: Near | 来源:发表于2016-12-20 12:26 被阅读0次

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 即可。

相关文章

  • shell基础

    Linux学习 一、shell介绍 Linux shell基础 什么是shell shell是一个命令解释器,提供...

  • Shell学习

    Linux Shell基础教程 (一) (二) Linux Shell简明教程(推荐) (一) (二) Linux...

  • 大数据、云计算系统顶级架构师课程学习路线图

    大数据之Linux+大数据开发篇 Java Linux基础 Shell编程 Hadoop2.x HDFS YARN...

  • Linux—Shell基础

    ++2016.8.7++byside @Linux—Shell基础 =======================...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Linux基础之Shell

    1,什么是Shell? Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。实际上是一个命令解释器...

  • shell & bash基础命令及巧用

    shell与bash脚本的区别shell是Linux基础命令解释器bash(Bourne Again shell)...

  • linux基础

    linux基础 ============ 1.主要内容: 常用的linux命令(shell命令) l...

  • day28-2019年4月9日

    shell编程基础 1、为什么要学shell编程? linux系统中会大量得使用shell,工作中也需要...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

网友评论

      本文标题:Linux基础之Shell

      本文链接:https://www.haomeiwen.com/subject/nzbxvttx.html