用户与管理:
root用户:超级管理员,权限已接近完整的系统控制
对系统的损害几乎有无限的能力,除非必要,不要使用root登录机器
普通用户:权限有限
终端 terminal:
服务器非必要部件
用户与主机交互,必然用到的设备
物理终端:直接接入本机的显示器和键盘设备 /dev/console 虚拟终端:
附加在物理终端之上的以软件方式虚拟实现的终端,设备文件路径:/dev/tty#,
CentOS 6默认启动6个虚拟终端 Ctrl+Alt+F#: [1,6]
图形终端:属于虚拟终端,附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;
模拟终端:图形界面打开的命令行以及基于ssh协议或 telnet协议等远程打开的界面,设备文件:/dev/pts/# [0, ∞)
查看当前的终端设备:tty
什么是shell?
Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作 的一种接口。它接收用户输入的命令并把它送入内核去执行。
shell也被称为LINUX的命令解释器(command interpreter)
shell是一种高级程序设计语言
如图所示:

bash shell:
bash 是GNU计划重要的工 具软件之一,目前也是 Linux标准的shell ,与sh兼容。
- 显示当前使用的shell命令: echo ${SHELL}
- 显示当前系统所使用的所有shell: cat /etc/shells
命令运行过程:
输入命令后,回车,shell程序找到键入命令所对应的可执行程序或代码 ,并由其分析后提交给内核分配资源将其运行起来
shell中可执行的命令分为两大类,可以用 type COMMADN 查看
内部命令:由shell自带的,而且通过某命令形式提供 enable命令可以启用或禁用内部命令
外部命令::在当前系统的某文件系统路径下有对应的可执 行程序文件
hash命令:搜寻到的外部命令路径结果缓存至kv(key-value)存储中
多选项,以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:Ctrl+c,Ctrl+d
多个命令可以用;符号分开
一个命令可以用\分成多行
具有补全功能的Tab键:
命令补全
路径补全
bash的快捷键:
- Ctrl+l 清屏,相当于clear命令
- Ctrl+c 取消命令的执行
- Ctrl-a 会移动到命令行的最前面
- Ctrl-e 会移动到命令行的最后面
- Ctrl-u 会删除到行首
- Ctrl-k 会删除到行尾
- arrow ctrl-b ctrl-f会向左或向右移动一个字符
- Esc-b 左移一个单词
- Esc-f 右移一个单词
Linux一些简单的命令:
cal -显示日历
screen命令:
功能:用于协同工作,必须登录同一个用户
打开新的screen: screen –S [SESSION]
加入会话: screen –x [SESSION]
退出并关闭screen: exit
剥离当前screen: Ctrl+a,d
显示所有已经打开的screen: screen -ls
恢复某screen screen -r [SESSION]
echo命令:
功能:功能很强大,这只是一小部分功能,如显示字符
echo会将输入的字符串送往标准输出。
输出的字符串间以空白字符隔开, 并在最后加 上换行号
- echo "$VAR_NAME": 变量会替换,双引号表弱引用
-
- echo '$VAR_NAME': 变量不会替换,强引用
-
- $echo –e "Enter the file name: \c" ## echo 需要使用-e 参数来打印转义字符.
echo命令选项:
- -n 不在字符的最后自动换行
- -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \n 换行且光标移至行首
- \r 光标移至行首,但不换行
- \t 插入tab
- \\ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
- echo -e "\033[43;31mred color\033[0m"
- \xHH 插入HH(十六进制)所代表的ASCII字符
命令行扩展、被括起来的集合:
命令行扩展:$( ) 或 `` :把一个命令的输出打印给另一个命令的参数
- $ 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}