`
wx1569466809
  • 浏览: 72146 次
文章分类
社区版块
存档分类
最新评论

history、重定向、alias

 
阅读更多

第八章 shell基础

8.1 shell介绍

>Shell是一个命令解释器,提供用户和机器之间的交互,支持特定的语法,比如逻辑判断、循环。每个用户都可以有自己特定的shell,CentOS7的默认shell为bash(Bourne Agin Shell),常见的还有zsh(power-shell)、ksh(Korn shell)。

8.2 命令历史(history)

history命令

语法: history [-c]
-c:=clear 清除内存中的命令,不能删除配置文件中的历史命令

[root@adai003 ~]# history
    1  ls
    2  ls /tmp/
    3  ls /boot/
    4  ls /
    5  dhclient
……
[root@adai003 ~]# ls /root/.bash_history
/root/.bash_history     history的家目录

显示使用过的命令历史,默认保存1000条使用过的命令(注:此令需要是在正常关机操作情况下的处1000条命)!

history环境变量

  • 变量HISTSIZE
[root@adai003 ~]# echo $HISTSIZE
1000

该变量决定命令历史保存的命令的数目。

  • 定义变量HISTSIZE
编辑其配置文件
[root@adai003 ~]# vim /etc/profile 
……
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
……
[root@adai003 ~]# echo $HISTSIZE
1000
[root@adai003 ~]# source /etc/profile
[root@adai003 ~]# echo $HISTSIZE
2000

搜索关键字"HIST"找到‘HISTSIZE=1000’,在此更改其数字,保存退出,然后执行命令‘source /etc/profile’刷新该配置文件才会生效。

  • 更改history显示格式
[root@adai003 ~]# echo $HISTTIMEFORMAT

[root@adai003 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
[root@adai003 ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[root@adai003 ~]# history
    1  2017/06/28 18:50:11 history
    2  2017/06/28 18:51:32 echo $HISTTIMEFORMAT
    3  2017/06/28 18:51:43 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    4  2017/06/28 18:51:45 echo $HISTTIMEFORMAT
    5  2017/06/28 18:52:32 history

直接为‘HISTTIMEFORMAT’赋值即可,不过此时该格式只适用于当前终端。如果要其使用于所有用户,则需要将其写入history配置文件并刷新后生效。

[root@adai003 ~]# vim /etc/profile 
……
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
……
保存退出!
[root@adai003 ~]# source /etc/profile
  • 命令历史永久保存
    即,使命令历史记录只能写入不能被删除!
[root@adai003 ~]# chattr +a ~/.bash_history

使用文件特殊权限,为‘.bash_history’文件配置‘a’权限(只可追加,不可删除),限于正常关机操作。

‘!!’命令

[root@adai003 ~]# w
……
[root@adai003 ~]# !!
w
……

‘!’的用法:‘!n’(n代表数字),表示运行命令历史中的第n条命令;‘!word’,表示运行上一次以该word开头的命令。
eg:

[root@adai003 ~]# history
    1  2017/06/28 18:50:11 history
    2  2017/06/28 18:51:32 echo $HISTTIMEFORMAT
    3  2017/06/28 18:51:43 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    4  2017/06/28 18:51:45 echo $HISTTIMEFORMAT
    5  2017/06/28 18:52:32 history
[root@adai003 ~]# !4
echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[root@adai003 ~]# !HIST
HISTSIZE=1000

8.3 命令补全和别名

命令补全Tab

按一次tab可以补全一个命令或参数(需要安装包bash-completion,并重启系统);按两次tab可以显示以某字母开头的所有命令或文件名。

alias命令

语法: alias [命令别名]=[具体命令] 设置别名
取消别名:unalias [命令别名]

直接输入alias会显示系统所有的别名:

[root@adai003 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@adai003 ~]# 

系统别名存放在配置文件‘~/.bashrc’和‘ls /etc/profile.d/’下:

[root@adai003 ~]# cat !$
cat .bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
[root@adai003 ~]# ls /etc/profile.d/
256term.csh         colorgrep.sh  lang.sh                qt-graphicssystem.sh  which2.sh
256term.sh          colorls.csh   less.csh               vim.csh
bash_completion.sh  colorls.sh    less.sh                vim.sh
colorgrep.csh       lang.csh      qt-graphicssystem.csh  which2.csh

8.4 通配符

  • 通配符‘*’代表零个或多个任意字符
  • 通配符‘?’代表一个任意字符
  • 中括号‘[]’,“ls [0-9].txt”表示0-9区间内的任意.txt文件
  • 花括号‘{}’,“ls {1,2,3}.txt”表示括号内任意.txt文件

输入输出重定向

“>,>>,<,2>,2>>”
‘>’:输出重定向
‘>>’:追加重定向
‘2>’:错误重定向
‘<’:输入重定向
使用‘>’命令时会将文件内原有内容删除。

[root@adai003 tmp]# echo adaixuelinux > 1.txt
[root@adai003 tmp]# cat 1.txt
adaixuelinux
[root@adai003 tmp]# echo adaixu > 1.txt
[root@adai003 tmp]# cat 1.txt
adaixu
#####################################

[root@adai003 tmp]# echo adaixu >> 1.txt
[root@adai003 tmp]# cat 1.txt
adaixu
adaixu

#####################################

[root@adai003 tmp]# lsaaa
-bash: lsaaa: 未找到命令
[root@adai003 tmp]# lsaaa 2> 2.txt
[root@adai003 tmp]# cat 2.txt
-bash: lsaaa: 未找到命令

输入重定向:必须定向到(<左边)一个命令下
[root@adai003 tmp]# wc -l 1.txt   
“ wc -l”该命令用于查看文件行数
2 1.txt
  • 应用
[root@adai003 tmp]# ls {1,2}.txt aaaa.txt > 1.txt 2> 3.txt
[root@adai003 tmp]# cat 1.txt
1.txt
2.txt
[root@adai003 tmp]# cat 3.txt
ls: 无法访问aaaa.txt: 没有那个文件或目录

说明: 使用ls命令查看 {1,2}.txt aaaa.txt,1.txt和2.txt文件存在,可以使用ls查看,aaaa.txt不存在,使用ls查看会报错,‘> 1.txt 2> 3.txt’意思是将正确信息保存到1.txt,将错误信息保存到3.txt。

转载于:https://my.oschina.net/1995blog/blog/1593428

分享到:
评论

相关推荐

    Vue下路由History模式打包后页面空白的解决方法

    当用户在 History 模式下刷新页面或直接访问某个子路由时,服务器需要能够正确地将所有请求重定向到 `index.html`,以便 Vue Router 能够接管并解析路由。对于 Nginx 服务器,可以添加以下配置来实现这一目标: ```...

    vue-router启用history模式下的开发及非根目录部署方法

    如果最终都没有找到,将会内部重定向到最后一个参数指定的地址,这里是`/test/project1/index.html`,从而解决404的问题。 ### 总结 通过上述配置,我们可以在Vue-Router启用history模式下开发,并在非根目录部署...

    Bash使用 文档.doc

    四、查看使用过的命令(history)和定义命令的别名(alias) bash 中可以查看使用过的命令历史记录(history),并可以定义命令的别名(alias),以便快速地执行常用的命令。 五、重定向与管道命令 bash 中可以...

    实验报告2_shell及shell编程.doc

    - 使用`history`和`alias`,并保存到文件,通过`vi`编辑删除序号。 - 添加命令别名至`.bashrc`,确保登录后可用。 - 分析脚本,理解其功能,如用户验证和消息发送。 - 编写脚本来统计目录中的文件类型数量。 - 实现`...

    实验十二 Bash Shell相关指令练习

    3. `alias`:列出当前已设置的命令别名,方便快速执行常用命令。 4. `history`:显示历史执行过的命令列表。 5. `cat ~/.bash_history`:查看指定用户的.bash_history文件,其中记录了登录期间执行的命令。 6. `cat ...

    实验2-shell及shell编程.docx

    2. 掌握 Bash 常用命令: history 、 alias 、 fg 、 bg 、 jobs 、输入输出重定向 Bash 提供了许多实用的命令,例如 history 命令可以查看命令历史记录, alias 命令可以设置命令别名, fg 和 bg 命令可以控制作业...

    vue-router的HTML5 History 模式设置

    alias /usr/local/test/; index index.htm index.html; # 用于处理所有非文件请求,将其重定向到 index.html try_files $uri $uri/ /index.html; } } ``` 这里需要注意的是,如果项目不在服务器的根目录下,...

    shell学习资料

    通过执行命令“history”,可以查看历史命令列表,而“history –c”则用于清除历史记录。调用历史命令可以通过“!n”来执行历史记录中的第n条命令,或者使用“!str”来执行以“str”开头的历史命令。 命令别名是一...

    鸟哥的 Linux 私房菜第11章-认识与学习 BASH1

    `history`则可以查看和重复执行之前输入过的命令,`HISTSIZE`则可设置历史命令的数量。 7. **Bash shell 的操作环境** Shell的环境配置涉及到路径、指令搜索顺序、登录和非登录shell的配置文件(如`.bash_profile`...

    Shell编程常见代码.md

    - 错误输出重定向:`错误命令 2&gt; 文件名` (覆盖) 或 `错误命令 2&gt;&gt; 文件名` (追加) - 综合重定向:`命令 &&gt; 文件名` (覆盖) 或 `命令 &&gt;&gt; 文件名` (追加) - **输入重定向**:从文件而非键盘接收输入数据。 - ...

    shell 基础概述 Bash基本命令

    用户可以通过`history`命令查看之前执行过的命令历史,这对于日常运维非常有用。Tab键可以自动完成文件名和命令,极大地提高了效率。默认情况下,系统会保存一定数量的历史命令,这个数字可以在`/etc/profile`中修改...

    shell 编程

    - 设置别名:`alias &lt;别名&gt;=&lt;命令&gt;` - 取消别名:`unalias &lt;别名&gt;` - **标准输入输出**:用于处理数据流的方向。 - **标准输入**:从设备(通常是键盘)接收输入。 - **标准输出**:向设备(通常是屏幕)输出...

    02.任务二:Vue-Router 原理实现

    - 通过 `redirect` 和 `alias` 属性可以实现 URL 的重定向和别名设置。 11. **路由的当前状态** - `this.$route` 可在任何组件中访问当前激活的路由信息,如路径、参数、查询等。 12. **编程式导航** - 使用 `...

    linux基本命令大全.pdf

    * Ctrl+r 在 history 表中查询用户和组 课程外知识 * find -amin n 查找系统中最后 N 分钟访问的文件 * find -atime n 查找系统中最后 n*24 小时访问的文件 * find -cmin n 查找系统中最后 N 分钟被改变文件状态的...

    LINUX_and_UNIX_SHELL_program

    - 别名可简化常用命令,如`alias ll='ls -l'`。 - Shell函数类似于别名,但可以包含更复杂的逻辑。 10. **环境变量与配置文件** - 环境变量影响Shell的行为,如`PATH`定义搜索可执行文件的路径。 - `.bashrc`和...

    Ubuntu常用命令

    标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)可以通过重定向和管道(pipeline)的方式进行控制。例如,使用命令格式"command &gt; file"可以将命令的输出重定向到文件中。 12. 用户管理 Linux系统...

    命令命令的执行

    Bash提供了许多扩展功能,如brace expansion(花括号扩展)、globbing(通配符匹配)、history substitution(历史替换)等,极大地增强了命令的使用灵活性。 总结,Linux程序设计中的Shell程序设计是学习和理解...

    Shell基本命令.rar

    15. **pipe** (管道) 和 `&gt;` (重定向):`command1 | command2`将`command1`的输出作为`command2`的输入,`command &gt; file`则将`command`的输出重定向到`file`中。 16. **alias**:创建别名。`alias aliasname='...

    learnvuerouter.rar

    有时需要在用户访问某个路径时自动重定向到另一个路径,或者设置别名。这可以通过 `redirect` 和 `alias` 属性实现: ```javascript // 重定向 { path: '/old', redirect: '/new' } // 别名 { path: '/old', alias...

    linux命令.pdf

    此外,Bash shell还支持重定向、管道等操作,比如`用于输入重定向,`&gt;`用于输出重定向,`2&gt;`用于错误重定向,`&gt;&gt;`用于追加,`&&gt;`用于同时重定向输出和错误,以及`|`用于管道连接命令。 理解并熟练掌握这些基础命令...

Global site tag (gtag.js) - Google Analytics