shell介绍,history,别名,通配符及重定向
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell介绍,history,别名,通配符及重定向相关的知识,希望对你有一定的参考价值。
shell介绍
- shell是一个命令解释器,提供用户和机器之间的交互
- 支持特定的语法,比如逻辑判断,循环
- 每个用户都可以有自己特定的shell
- CentOS7默认shell为bash,(Bourne Agin Shell纪念Bourne命名的)
- 还有zsh,ksh等
历史命令
- history命令---查看历史命令
- .bash_history---命令历史保存文件,在用户的家目录下,退出终端时保存进去
[[email protected] ~]# ls /root/.bash_history /root/.bash_history
- 最大能存1000条
- history -c清空命令历史,只是清空内存中的,不会删除文件中的,
[[email protected] ~]# history -c [[email protected] ~]# history 2 history
- 由变量HISTSIZE定义的
[[email protected] ~]# echo $HISTSIZE 1000
- /etc/profile中可以修改变量可以增大减小数量
[[email protected] ~]# vim /etc/profile HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=5000 [[email protected] ~]# source /etc/profile [[email protected] ~]# echo $HISTSIZE 5000 改完需要source才能生效
- HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" ---加入这个变量可以显示历史命令的使用时间
- 永久生效,编辑文件
[[email protected] ~]# vim /etc/profile HISTSIZE=5000 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" [[email protected] ~]# source /etc/profile
- 永久生效,编辑文件
- 命令历史永久保存:chattr +a ~/.bash_history
---赋予a权限后,只能追加不能删除,如果没有正确退出终端,记录的命令不全 - !! ---执行历史中最后一条命令
- !755 ---执行历史里755条命令
- !mkdir ---执行倒数第一个mkdir开头的命令
命令补全和别名
- tab键,敲一下(补全唯一的)敲两下(显示以它开头的所有)
- Centos7支持命令的参数补全,需要安装yum install -y bash-completion,并重启系统
- alias可以给命令设置别名
[[email protected] ~]# alias restartnet=‘systemctl restart network.service‘ [[email protected] ~]# 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 restartnet=‘systemctl restart network.service‘ alias rm=‘rm -i‘ alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
- unalias 加上别名---取消命令的别名
- 各用户都有自己配置别名的文件~/.bashrc,在用户的家目录下
- ls /etc/profile.d/ ----还有一些在这个目录下
[[email protected] ~]# ls /etc/profile.d/ 256term.csh colorgrep.csh colorls.sh less.csh vim.sh 256term.sh colorgrep.sh lang.csh less.sh which2.csh bash_completion.sh colorls.csh lang.sh vim.csh which2.sh
通配符
- ls .txt---可以代表任意字符和字符串
[[email protected] ~]# ls *.txt 1.txt 2.txt 3.txt a.txt bb.txt [[email protected] ~]# ls *txt 1.txt 2.txt 3.txt a.txt bb.txt [[email protected] ~]# ls *txt* 1.txt 2.txt 3.txt a.txt bb.txt
- ls ?.txt----?只能代表一个字符
[[email protected] ~]# ls ?.txt 1.txt 2.txt 3.txt a.txt [[email protected] ~]# ls 1.txt 2.txt 3.txt anaconda-ks.cfg a.txt bb.txt [[email protected] ~]# ls ?txt ls: 无法访问?txt: 没有那个文件或目录
- ls [0-9].txt ---指定范围中的一个字符,数字字母都可以指定
[[email protected] ~]# ls [123].txt 1.txt 2.txt 3.txt [[email protected] ~]# ls [0-3].txt 1.txt 2.txt 3.txt [[email protected] ~]# ls [12].txt 1.txt 2.txt [[email protected] ~]# ls [0-9a-zA-Z].txt 1.txt 2.txt 3.txt a.txt
- ls {1,2}.txt ---1或2.txt的文件
[[email protected] ~]# ls {1,2,3,a}.txt 1.txt 2.txt 3.txt a.txt
输入输出重定向
- cat 1.txt > 2.txt 把2.txt清空把1.txt内容输入
- cat 1.txt >> 2.txt 把1.txt内容追加到2.txt
- 2> 错误重定向
- 2>> 错误追加重定向
- \>+2> 等于 &> 正确和错误的信息重定向到
[[email protected] ~]# echo 1212241 > a.txt [[email protected] ~]# ls [12].txt aaa.txt &> a.txt [[email protected] ~]# cat a.txt ls: 无法访问aaa.txt: 没有那个文件或目录 1.txt 2.txt
- &>> ---正确和错误的信息追加重定向
[[email protected] ~]# ls [12].txt aaa.txt &>> a.txt [[email protected] ~]# cat a.txt ls: 无法访问aaa.txt: 没有那个文件或目录 1.txt 2.txt ls: 无法访问aaa.txt: 没有那个文件或目录 1.txt 2.txt
- 同时使用,正确的错误的分别重定向,也可以追加
[[email protected] ~]# ls [12].txt aaa.txt >1.txt 2> a.txt [[email protected] ~]# cat 1.txt 1.txt 2.txt [[email protected] ~]# cat a.txt ls: 无法访问aaa.txt: 没有那个文件或目录
- < 输入重定向
[[email protected] ~]# wc -l <1.txt ---打印1.txt的行数,左边必须是命令 2 [[email protected] ~]# 2.txt < 1.txt -bash: 2.txt: 未找到命令
- command >1.txt 2>&1,
command命令调用指定的指令并执行,命令执行时不查询shell函数,无视同名函数。command命令只能够执行shell内部的命令,这里的相当于将正确与错误的信息都写入1.txt上,&1相当于1.txt
以上是关于shell介绍,history,别名,通配符及重定向的主要内容,如果未能解决你的问题,请参考以下文章
Linux学习笔记(二十三)shell介绍history命令历史命令补全和别名通配符
shell介绍命令历史 命令补全和别名 通配符输入输出重定向
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重
shell介绍,命令历史,命令补全和别名,通配符 ,输入输出重定向