本博客不注重格式,最主要的目的是给自己当笔记用,当然大家也可以参考.
shell在linux是一种最基础的交方式,它提供了多种语言给使用者,在这里不一一说明
bash是我们最常用的也是CentOS默认的bash,关于定义和原理请自行度娘.
查看当前默认shell类型
]$ echo $SHELL #查看变量 $SHELL 如果查看所用变量请用set命令 ]$ cat /etc/shells #当前系统支持的所有 shells
命令提示符:prompt
命令提示符格式 [root@localhost~]$:echo $PS1
root (当前登录用户名) \u
localhost(当前登录主机名) \h
~ 当前目录 \w
$(为普通用户)#(为管理员用户)
其他为可修改格式
shell中可用的命令分为两种:外部命令和内部命令
外部命令:当前系统的某文件系统路径下有对应的可执行文件:which.whereis
内部命令:由shell自带的,
区分内部命令和外部命令
]# type COMMAND
hash命令:执行过的外部命令会缓存到kv(key-value)中,这样当下次执行命令时可加速查询过程
命令格式.COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能;
短选项:-c, 例如:-l, -h
长选项:--word,例如:--all, --human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
1、多选项,以及多参数和命令之间使用空白字符分隔
2、取消和结束命令执行:Ctrl+c,Ctrl+d
3、多个命令可以用;符号分开
4、一个命令可以用\分成多行
命令行扩展、被括起来的集合
命令行扩展:$( ) 或``
例:把一个命令的输出打印给另一个命令的参数
$echo"Thissystem snameis$(hostname) " Thissystem snameis server1.example.com $echo "i am `whoami` " i am root
括号扩展:{ }
打印重复字符串的简化形式
]$echo file{1,3,5} file1file3file5 ]# echo {1..5} 1 2 3 4 5
执行历史命令的快捷方式
重复前一条命令:
上方向键
!!
!-1
CTRL+P
!字符串:重复前一个以"字符串"开头的命令
!MUM:执行history中第NUM条命令
!?字符串:执行包含"字符串的"命令
!-n:重复n个命令之前的命令
CTRL+R来搜索命令历史中的命令
要重新调用上一个命令中的最后一个参数:
!$表示
ESC .
调用历史命令参数:
#CMD !^:调用上一个命令的第一个参数给CMD
#CMD !$:调用上一个命令的最后一个参数给CMD
#CMD !*:调用上一个命令中的所有参数给CMD
#CMD !:n :调用上一个命令的第n个参数给CMD
!n:^ 调用第n条命令的第一个参数
!n:$ 调用第n条命令的最后一个参数
!n:n 调用第n条命令的第n个参数
!n:* 调用第n条命令的所有参数
!string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索以string 开头的命令,并获取它的最后一个参数
!string:n 从命令历史中搜索以string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以string 开头的命令,并获取它的所有参数
命令行历史:histoy命令
histoy命令可以查看当前用户执行的过的命令.当前登录执行的命令会保存在内存中,当用户退出时,这些命令会追加保存到~/.bash_history文件中.
在CenOS中命令默认可以保存1000条,可以通过修改bash环境变量的设置进行修改
HISTSIZE:命令历史记录的条数;
HISTFILE:指定历史文件,默认为~/.bash_history;
HISTFILESIZE:命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令;
ignoreboth:ignoredups, ignorespace;
export 变量名="值“
存放在/etc/profile 或~/.bash_profile
bash快捷键
Ctrl+l 清屏,相当于clear命令
Ctrl+c取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
Ctrl-arrow ctrl-b ctrl-f会向左或向右移动一个字符
Esc-b左移一个单词
Esc-f右移一个单词
本文出自 “11323677” 博客,请务必保留此出处http://zx337954373.blog.51cto.com/11323677/1788366
原文地址:http://zx337954373.blog.51cto.com/11323677/1788366