1.终端terminal
(1)设备终端 键盘,鼠标,显示器
(2)物理终端(/dev/console) 控制台concole
(3)串行终端(/dev/ttyS#) ttyS
(4)虚拟终端(tty:teletypewriters,/dev/tty#)
tty可以有n个,Ctrl+Alt+F#
(5)图形终端(/dev/tty7)startx,xwindows
CentOS6:Ctrl+Alt+F7
CentOS7:在哪个终端启动,即位于哪个虚拟终端
(6)伪终端(pty:pseudo-tty,/dev/pty/#)
pty,SSH远程连接
查看当前终端设备命令:tty
2.命令提示符
(1)命令提示符:prompt
[root@localhost~]#
# 代表管理员
$ 代表普通用户
(2)显示提示符格式
[root@localhost~]#echo $PS1
(3)修改提示符格式
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
\e 控制符\033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
3.Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率。
hash常见用法
hash 显示hash缓存表
hash -l 显示hash缓存,可作为输入使用
hash -p path name 将命令全路径path起别名为name
hash -t name 打印缓存中name的路径
hash -d name 清除name缓存
hash -r 清除缓存
4.命令别名
(1)显示当前shell进程所有可用的命令
alias
(2)定义别名NAME,其相当于执行命令VALUE
alias NAME='VALUE'
以上仅对当前shell进程生效,如果想永久生效,要定义在配置文件中:
仅对当前用户:~/.bashrc
对所有用户生效:/etc/bashrc
编辑以上配置文件后不会立即生效,可以以下命令重新读取配置文件使其生效:
souce /path/to/config_file
. /path/to/config_file
(3)撤销别名:unalias
unalisa [-a] name [name...]
-a 取消所有别名
如果别名同原命令同名,如要执行原命令,可使用
\ALIASNAME
"ALIASNAME"
'ALIASNAME'
command ALIASNAME
/path/command
5.日期与时间
Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
相关命令:
date 显示和设置系统时间
date +%s
date -d @1509536066
hwclock,clock:显示硬件时钟
-s,--hctosys 以硬件时钟为准,校正系统时间
-w,--systohc 以系统时钟为准,校正硬件时间
时区:/etc/localtime
显示日历:cal -y
6.命令行历史
重复前一个命令,有4种方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
Ctrl + n 显示当前历史中的下一条命令,但不执行
Ctrl + j 执行当前命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
Ctrl + r 在历史命令中搜索命令
Ctrl + r 从历史命令搜索中退出
要重新调用上一条命令的最后一个参数:
!$ 用!$表示
ESC,. (点击ESC键后松开,再点击 . 键)
ALT+. (按住ALT键同时点击 . 键)
7.简单命令
(1)关机与重启
关机:halt , poweroff
重启:reboot
-f:强制,不调用shutdown
-p:切断电源
关机或重启:shutdown
shutdown [OPTION]...[TIME] [MESSAGE]
-r reboot即重启
-h halt即关机
-c cancel 取消关机
TIME:无指定,默认相当于+1(CentOS7)
now:立刻,相当于+0
+m:相对时间表示法,几分钟之后;例如 +3
hh:mm:绝对时间表示,指明具体时间
(2)用户登录信息查看命令:
whoami:显示当前登录有效用户
who:系统当前所有的登录会话
w:系统当前所有的登录会话及所做的操作
(3)screen命令:
screen -S [SESSION] 创建新的screen会话
screen -x [SESSION] 加入screen会话
screen -ls 显示所有已经打开的screen会话
screen -r [SESSION] 恢复某screen会话
exit 退出并关闭screen会话
Ctrl+a,d 剥离当前screen会话
(4)echo命令:
echo [-neE] [字符串]
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符解释功能
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
(5)history命令:
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c 清空命令历史
-d offset 删除历史中指定的第offset个命令
n 显示最近的n条历史命令
-a 追加本次会话新执行的命令历史列表至历史文件
-r 读历史文件附加到历史列表
-w 保存历史列表到指定的历史文件
-n 读历史文件中未读过的行到历史列表中
-p 展开历史参数成多行,但不存在历史列表中
-s 展开历史参数成一行,附加在历史列表中
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T" 显示时间
HISTIGNORE="str1:str2*...." 忽略str1命令,str2开头的命令
HISTCONTROL:控制命令历史的记录方式
ignoredups:默认,忽略重复的命令,连续且相同为“重复”
ignorespace:忽略所有以空白字符开头的命令
ignoreboth:相当于ignoredups,ignorespace的组合
相关变量存放在 /etc/profile 或 ~/bash_profile
8.bash快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + N 提示输入指定字符后,重复显示该字符N次
注意:Alt组合快捷键经常和其它软件冲突
9.获得帮助
(1)whatis 显示命令的简短描述
刚安装后不可立即使用,可用makewhatis | mandb 制作数据库
使用示例:what cal 或 man -f cal
(2)获得帮助
内部命令:help COMMAND 或 man bash
外部命令:
(1) COMMAND --help 或 COMMAND -h
(2) 使用手册(manual) man COMMAND
(3) 信息页 info COMMAND
(4) 程序自身的帮助文档 README,INSTALL,ChangeLog
(5) 程序官方文档
(6) 发行版的官方文档
(7) Google
(3)man命令
提供命令帮助的文件,手册页存放在/usr/share/man,配置文件 /etc/man.config | man_db.conf,如果支持中文,还需安装包man-pages-zh-CN
(1) man章节
man 1 man
1:用户命令;
2:系统调用;
3:C库调用;
4:设备文件及特殊文件;
5:配置文件格式;
6:游戏;
7:杂项;
8:管理类命令;
9:Linux内核API
(2) man帮助段落说明
NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
<> 必选内容
a|b 二选一
{ } 分组
... 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
(3) 相关命令
man [章节] keyword 查看man手册页
man -a keywork 列出所有帮助
man -k keyword 列出所有匹配的页面
man -f keywork 相当于whatis
man -w [章节] keywork 打印man帮助文件的路径
(4) 手册中操作方法
space:向下翻屏
b:向上翻屏
d:向下翻半屏
u:向上翻半屏
q:退出
#:跳转至第#行
1G:回到文件首部
G:翻至文件尾部
/KEYWORD:搜索KEYWORD关键字,从当前位置向下搜,不区分大小写;按 n 搜索下一个,N 搜索上一个
?KEYWORD:搜索KEYWORD关键字,从当前位置向上搜,不区分大小写;按 n 表示搜索方向同向的下一个,N 表示搜索方向反向搜索上一个