目录
-
用户登录
-
终端shell介绍
-
简单命令
-
Tab键补全
-
执行命令
-
命令行历史
-
bash快捷键
-
使用gnome-terminal
用户登录
1.root用户
一个特殊的管理账户
超级用户
root已经接近完整的系统控制,不正当操作,几乎对系统有无限的损害能力
除非必要,不要登录为 root
2. 普通(非特权)用户
权限有限,造成的伤害有限
终端
终端设备的分类:https://blog.csdn.net/yazhouren/article/details/78793367
设备终端
键盘鼠标显示器
物理终端
控制台console
虚拟终端
tty 可能有n个,Ctrl + Alt + F7
图形终端
startx,xwindows
串行终端
ttys
伪终端
连pty,SSH远程接
查看当前的终端设备:#tty
交互式接口
- 交互式接口:启动终端后,在终端设备附加一个交互式应用程序
- GUI:Graphic User Interface
X protocol, window manager, desktop Desktop:
GNOME (C, 图形库gtk), KDE (C++, 图 形 库 qt) XFCE (轻量级桌面)
- CLI:Command Line Interface
shell程序sh (bourn 史蒂夫·伯恩) csh tcsh ksh (korn) bash (bourn again shell)GPL zsh:
什么是shell
- Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
- shell也被称为LINUX的命令解释器(command interpreter)
- shell是一种高级程序设计语言
bash shell
- GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux标准的shell,与sh兼容
- CentOS默认使用
- 显示当前使用的shell echo ${SHELL}
- 显示当前系统使用的所有shell cat /etc/shells
命令提示符
- 命令提示符:prompt
[root@localhost ~]#
# 管理员 $ 普通用户
- 显示提示符格式
[root@localhost ~]#echo $PS1
- 修改提示符格式
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
执行命令
- 输入命令后回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来
- 在shell中行可执的命令有两类
内部命令:由shell自带的,而且通过某命令形式提供
help 内部命令列表enable cmd 启用内部命令
enable –n cmd 禁用内部命令enable –n 查看所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
查看路径:which -a |--skip-alias ; whereis
- 区别指定的命令是内部或外部命令type COMMAND
执行外部命令
- 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 清除缓存
命令别名
alias
VALUE alias NAME='VALUE'
仅对当前用户:~/.bashrc
- 显示当前shell进程所有可用的命令别名
- 定义别名NAME,其相当于执行命令
- 在命令行中定义的别名,仅对当前shell进程有效
- 如果想永久有效,要定义在配置文件中
对所有用户有效:/etc/bashrc
- 编辑配置给出的新配置不会立即生效
- bash进程重新读取配置文件source /path/to/config_file
. /path/to/config_file
- 撤消别名:unalias
unalias [-a] name [name ...]
-a 取消所有别名
- 如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME “ALIASNAME” ’ALIASNAME’
command ALIASNAME
/path/commmand
命令格式
- COMMAND [OPTIONS...] [ARGUMENTS...]
- 选项:用于启用或关闭命令的某个或某些功能 短选项:-c 例如:-l, -h
长选项:--word 例如:--all, --human-readable
2.参数:命令的作用对象,比如文件名,用户名等
- 注意:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用;符号分开
- 一个命令可以用\分成多行
令行扩展、被括起来的集合
- 命令行扩展:$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
echo "This system's name is $(hostname) "
This system's name is server1.example.com echo "i am `whoami` "
i am root
- 括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}
file1 file3 file5 rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}
命令行历史
- 使用up(向上)和down(向下)键来上下浏览从前输入的命令
- ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
- Ctrl+g:从历史搜索模式退出
- 要重新调用前一个命令中最后一个参数
!$ 表 示
Esc, .(点击Esc键后松开,然后点击 . 键)
Alt+ .(按住Alt键的同时点击 . 键)
- 重复前一个命令,有4种方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入!-1 并回车执行
按 Ctrl+p 并回车执行
- !:0 执行前一条命令(去除参数)
- Ctrl + n 显示当前历史中的下一条命令,但不执行
- Ctrl + j 执行当前命令
- !n 执行history命令输出对应序号n的命令
- !-n 执行history历史中倒数第n个命令
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组合快捷键经常和其它软件冲突
gnome-terminal
- 应用程序->附件->终端
- 支持多个“标签”shell的图形化终端模拟器
Ctrl-Shift-v 把文本粘帖到当前光标处
Ctrl-Shift-c 复制选中的文本
Ctrl-PaUp/PgUn 切换到下一个/前一个标签页
Ctrl-Shift-w 关闭一个标签页
Ctrl-Shift-t 创建一个标签页
Ctrl-Shift-q 关闭当前窗口
Ctrl-Shift-n 创建新窗口