Ctrl + a : 跳转到当前编辑行首
Ctrl + e:跳转到当前编辑行尾
# mkdir /home/dira /home/diab
像这种命令,/home/dira 和 /home/diab 属于单词,如果想删掉单词,可以用backspace慢慢删除,也可以快捷键 Ctrl + w
比如光标此时在如下位置,想删除光标后所有内容,Ctrl + k 。反之删除光标以前所有内容 Ctrl + u
当xshell界面显示内容较多时,使用 clear 或者 Ctrl + l 可以清屏。(WIndows下可以cls)
内部命令 外部命令
内部命令 shell程序自带的命令
外部命令 在系统的某个路径下的可执行程序
外部命令查找 依赖于 PATH变量
查看外部命令搜索路径 查看PATH变量
# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
type pwd查看pwd是内部命令还是外部命令
# type pwd pwd is a shell builtin
which命令查看命令所在的目录
# which ping /bin/ping # which ifconfig /sbin/ifconfig
命令补全
命令补全 连按tab键 列出所有可能的命令。
注意:这里说命令补全并不是什么情况下都可行。比如我以root身份新建一个脚本demo1.sh,默认情况下权限是644,即rw-r--r--。(这个是怎么算的参考:Linux命令——umask、setuid、setgid、sticky bit、chmod、chown )这样的权限是不可执行的。虽然文件后缀是sh,shell脚本道理上可以执行。但是Linux下面又不是根据后缀名区分文件是否可执行,Windows才那么干。这时候你再输入命令./dem,然后tab是没办法补全的,因为他跟就不是一个可执行文件。但是如果把demo1.sh作为ls命令参数,则是可以对demo1.sh进行补全的。接下来执行命令chmod +x demo1.sh,赋予demo1.sh执行权限,现在。/dem就可以补全了。
hash表缓存命令所在位置
# hash hits command 2 /bin/rm 7 /usr/bin/yum 1 /bin/cp 1 /usr/bin/man 9 /bin/ls
hash –d ls 删除ls命令的缓存
hash –r 清空缓存表
# hash hits command 2 /bin/rm 7 /usr/bin/yum 1 /bin/cp 1 /usr/bin/man 9 /bin/ls # hash -d ls # hash hits command 2 /bin/rm 7 /usr/bin/yum 1 /bin/cp 1 /usr/bin/man # hash -r
有了hash缓存,就不用每次输入命令都搜寻$PATH变量了,只在第一次使用命令时搜寻$PATH。但是这里可能会有个问题,在上面rm在/bin/rm下面,如果我把rm移动到/usr/bin下面,再次使用rm时,就会提示“没有哪个文件 或 目录”。解决办法就是使用hash -d rm删除rm这条缓存,在执行一遍rm命令,这样hash回生成一个新位置的缓存。
help hash可以查看hash使用方法
命令历史
命令历史文件 和 命令历史缓存
用户在登陆OS的时候加载命令历史文件,此时执行history看的是命令历史文件内容。如果用户后续又执行了相关操作,再次使用history会看到之前的操作,但新纪录是保存在命令历史缓存里面的。只有当用户退出bash的时候才保存到命令历史文件。同一用户不同终端登陆时,对命令历史文件的操作是追加写的。
缓存多少条命令
# echo $HISTSIZE 1000
命令历史文件能够保存多少条命令
# echo $HISTFILESIZE 1000
查看命令历史文件
# echo $HISTFILE /root/.bash_history
查看保存命令历史
# cat /root/.bash_history ip addr show ping www.baidu.com ping 192.168.80.2 shutdown -h now
将缓存的新命令(连接Linux以后,相较命令历史文件新增加的命令) 追加到历史文件 history -a 如果是-w就是覆盖写。
# history -a # cat /root/.bash_history ip addr show ping www.baidu.com ping 192.168.80.2 shutdown -h now hash history man history help history history cd / history echo $HISTSIZE echo $HISTFILESIZE echo $HISTFILE cat /root/.bash_history history –a history history –a help history history -a
查看$HISTCONTROL变量的值
# echo $HISTCONTROL ignoredups
$HISTCONTROL取值
ignoredups 不记录后面重复的命令 只记录第一个
ignorespace 不记录以空格开始的命令
ignoreboth 不记录以空格开始命令 也不记录后面重复的命令
执行以前的命令
!!执行上一条命令
history查看命令历史
!6 可以执行命令历史中第6行命令
!-1 可以执行命令历史中的倒数第一个命令
上下键可以翻命令历史
当前命令 调用上一条命令的最后一个参数
第一种方法
ESC松开 再按 .
第二种方法 输入!$
History命令参数
-c 清空命令历史
-w 保存命令历史到历史文件
-a 附加命令历史 到历史文件
-d 4 删除命令历史的第4条命
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
文件名通配符
通配符 特殊的字符 不表示字符的表面意义 而是能够匹配符合指定特征的字符
* 代表任意长度的字符
? 代表任意单个字符
[] 代表指定范围的单个字符
使用专门的方法标识特定字符
[[:space:]] 空格
[[:digit:]] [0-9]
[[:lower:]] [a-z]
[[:upper:]] [A-Z]
[[:alpha:]] [a-Z]
命令别名
语法:
alias cmdalias=’command [option] [argument]’
查看当前用户可用的别名
[root@51cto ~]# alias alias cp='cp -i' 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'