8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向

简介:

8.1 shell介绍

1. shell是一个命令解释器,提供用户和机器之前的交换

2. 每个用户都可以有自己特定的shell

3. CentOS7默认shell是bash(Bourne Agin Shell); shell还有zsh、ksh等

zsh、ksh这两种shell命令没有安装,

可以用yum list搜索下这两个命令的安装包:

[root@hao-01 ~]# yum list |grep zsh

[root@hao-01 ~]# yum list |grep ksh

4. shell有自己的特定语法,比如逻辑判断、循环

8.2 命令历史

1. 查看命令历史内所有命令

[root@hao-01 ~]# history

2. 查看命令历史存放的文件路径(用户夹目录.bash_history):

ls /用户夹目录/.bash_history

[root@hao-01 ~]# ls /root/.bash_history

注意:非正常命令退出终端,本次输入过的命令,不会保存到这个文件里,

再次打开终端,命令历史里也找不到(不完整)!!!

3. 查看命令历史存放文件储存的命令最大数值

[root@hao-01 ~]# echo $HISTSIZE

clipboard.png

4. 修改 命令历史存放文件储存的命令最大数值

[root@hao-01 ~]# vi /etc/profile

修改存储最大数值:HISTSIZE=最大数值(数字)

clipboard.png

5. 即刻生效 /etc/profile的修改:

[root@hao-01 ~]# source /etc/profile

6. 环境变量,命令历史命令标记 年月日,时分秒(只限当前终端生效!) :

[root@hao-01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

7. 修改 命令历史命令标记的日期时间(永久生效的!) :

[root@hao-01 ~]# vi /etc/profile

添加:命令历史命令标记日期时间的环境变量: HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

clipboard.png

8. 即刻生效 /etc/profile的修改:

[root@hao-01 ~]# source /etc/profile

9. 查看命令历史内所有命令

[root@hao-01 ~]# history

clipboard.png

10. .bash_history存放历史命令文件添加特殊a权限(避免被修改删除):

chattr +a  /用户夹目录/.bash_history

[root@hao-01 ~]# chattr +a /root/.bash_history

11. 执行上一条命令!!

[root@hao-01 ~]# !!

clipboard.png

12. 执行命令历史编号对应命令

!命令历史命令编号

[root@hao-01 ~]# !978

13. 执行ls开头,最近执行过得命令:

[root@hao-01 ~]# !ls

8.3 命令补全和别名

1. 敲一下 Tab键,参数可补全,需要安装bash-completion包:

[root@hao-01 ~]# yum install -y bash-completion

2. 重启系统(生效):

[root@hao-01 ~]# reboot

3. 敲一下 Tab键: 自动补全命令、路径 、centos7还可以补全参数

4. 敲两下 Tab键: 列出以输入的命令为开头的多个命令

5. 设定 自定义别名命令 

alias 自定义的别名命令='原命令'

[root@hao-01 ~]# alias haols='ls'

clipboard.png

6. 列出所有别名命令(alias) :

[root@hao-01 ~]# alias

clipboard.png

7. 查看 自定义alias(别名命令)存放文件:

ls  /用户夹目录/.bashrc                            

[root@hao-01 ~]# ls /root/.bashrc

8. 查看 别名命令存放脚步所在目录:

[root@hao-01 ~]# ls /etc/profile.d/

9. 取消(删除) 自定义别名命令

unalias  自定义的别名命令

[root@hao-01 ~]# unalias haols

clipboard.png

8.4 通配符

1. 当前目录列出,包含.txt的文件(*表示多个任意的字符) :

[root@hao-01 ~]# ls *.txt

clipboard.png

[root@hao-01 ~]# ls *txt

clipboard.png

2. 当前目录列出,(匹配)所有1开头的文件或目录 :

[root@hao-01 ~]# ls 1*

clipboard.png

3. 当前目录列出, 包含.txt文件(?表示一个任意的字符) :

[root@hao-01 ~]# ls ?.txt

clipboard.png

4. 当前目录列出,[]内范围数字包含.txt的文件(数字最大范围0-9) :

[root@hao-01 ~]# ls [0-9].txt

clipboard.png

匹配出指定数字包含.txt的文件:

[root@hao-01 ~]# ls [09].txt

clipboard.png

5. 当前目录列出,[]内范围字母包含.txt的文件(字母范围 a-z或A-Z) :

[root@hao-01 ~]# ls [a-z].txt

clipboard.png

匹配出指定字母包含.txt的文件:

[root@hao-01 ~]# ls [az].txt

clipboard.png

6. 当前目录列出,[]内范围数字和字母包含.txt的文 :

[root@hao-01 ~]# ls [0-9a-z].txt

clipboard.png

7. 当前目录列出,[]内数字开头带有.txt的文件 :

(方括号只支持单数,数字最大到9)注意:方括号每个字符之间可不加逗号分割!!!)

[root@hao-01 ~]# ls [1,2,3,4,11,22,33,44].txt

clipboard.png

8. 当前目录列出,{}内数字开头带有.txt的文件(花括号支持多位字符) :

注意:花括号每个字符之间必须加逗号分割

[root@hao-01 ~]# ls {1,2,3,4,11,22,33,44}.txt

clipboard.png

8.5 输入输出重定向

输出:命令结果,输出到右边文件

1. 输出重定向注意:>(一个大于号)后面文件原有内容会被删除

前面命令输出结果输出后面文件(原有内容被删): 前面命令 >  后面文件

[root@hao-01 ~]# cat 1.txt > 2.txt

2. 输出追加重定向:注意:>>(两个大于号)后面文件原有内容不会被删除

前面命令输出结果追加到 >后面文件(原有内容不会删): 前面命令 >>  后面文件

[root@hao-01 ~]# cat 1.txt >> 2.txt

3. 输出错误命令输出重定向

错误命令的输出结果,输出后面文件(原有内容被删):前面错误命令  2>  后面文件

[root@hao-01 ~]# cataa 1.txt  2>  2.txt

[root@hao-01 ~]# cat 2.txt

clipboard.png

4. 输出错误命令追加重定向

错误命令的输出结果追加后面文件(原有内容不会删):前面错误的命令 2>>  后面文件

[root@hao-01 ~]# cataa 1.txt  2>>  2.txt

clipboard.png

输入:文件内容,输入到左边命令

1. 1.txt内容,输入到wc -l命令执行:

命令 <  文件

[root@hao-01 ~]# wc -l <  2.txt

clipboard.png










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/2059488,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
3天前
|
存储 Shell 数据安全/隐私保护
Shell 内建命令:Shell 的内在魔力
Shell 内建命令比外部命令执行快,不需额外进程。`type` 命令用来检查命令类型。内建命令如 `cd`、`alias` 和 `echo` 直接在 Shell 中执行,不涉及磁盘 I/O。`type` 示例展示了 `cd` 是内建的,`ifconfig` 是外部的。`bash` 包含多种内建命令,如 `cd` 用于切换目录,`alias` 定义别名,`read` 从输入读取数据。`echo` 默认加换行,`echo -n` 可避免。
16 5
|
2天前
|
Shell 虚拟化
分布式系统详解--框架(Zookeeper-基本shell命令)
分布式系统详解--框架(Zookeeper-基本shell命令)
8 1
|
5天前
|
安全 Shell Linux
探索Linux命令chsh:更改用户的默认shell
`chsh`是Linux命令,用于更改用户的默认登录shell。它涉及用户环境配置和系统安全,允许用户选择更适合自己的shell以提升效率。命令有交互式选项和参数如`-s`来指定新shell。在使用时要注意新shell的可执行性、权限问题及选择合适的shell。例如,要更改为bash,用户可运行`chsh`后按提示操作,而root用户能用`sudo chsh -s /bin/zsh john`为用户`john`设定zsh。在更改前,确认shell路径、权限,并了解不同shell的特点。
|
2天前
|
分布式计算 Hadoop Shell
分布式系统详解--框架(Hadoop-基本shell命令)
分布式系统详解--框架(Hadoop-基本shell命令)
5 0
|
3天前
|
Unix Shell Linux
Shell 重定向:控制数据流向的艺术
在Unix/Linux中,Shell提供输入输出重定向来灵活控制数据流。了解和运用重定向能提升Shell效率。标准输入(0)、输出(1)和错误输出(2)是基础。`&gt;`用于覆盖输出,`&gt;&gt;`用于追加,而`&lt;`用于改变输入源。错误输出可单独重定向,如`2&gt;`或`2&gt;&gt;`。组合使用如`2&gt;&1`可合并输出和错误到同一文件。输入重定向示例:`cat &lt;&lt;END`读取直到`END`。掌握这些,可高效管理命令输出。
14 0
|
6天前
|
Shell
Shell [[]] 命令:条件判断的升级版
`[[ ]]` 是 Bash 中增强型的条件判断命令,提供比 `[ ]` 更多的灵活性,如无需引号包裹变量、直接字符串比较及正则支持。例如: ```markdown - 不加引号比较:`[[ -z $str1 ]]` - 逻辑运算:`[[ -z $str1 ]] || [[ -z $str2 ]]` - 正则匹配:`[[ $phone =~ ^1[0-9]{10}$ ]]` ``` 它不支持 `-a` 和 `-o`,但能用 `&&` 和 `||` 进行逻辑操作。用于复杂字符串验证和文件处理时非常有用。
14 0
|
6天前
|
Shell Windows
Shell test [] 命令:条件判断的艺术
`test` 命令在Shell脚本中用于条件检测,涉及数值、字符串和文件比较。例如,`test $a -eq $b` 检查两个数是否相等;`-e` 检查文件是否存在;`-w` 检查文件是否可写。数值比较不支持 `&gt;=` 和 `&lt;=`,需用 `-ge` 和 `-le`。字符串比较时注意空值,使用双引号。逻辑运算包括 `-a`(与)、`-o`(或)和 `!`(非)。文件类型和权限检测也是`test`的重要用途。
10 0
|
6天前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解