1、用户登录
1)、root用户:一个特殊的管理帐户,也被称为超级用户,root已接近完整的系统控制,对系统损害几乎有无限的能力,除非必要,否则不要登录为root;
2)、普通(非特权)用户:权限有限,造成损害的能力比较有限。
2、终端及shell
1)、终端是服务器非必要部件;
2)、用户与主机交互,必然用到的设备:
物理终端:直接接入本机的显示器和键盘设备,既是/dev/console;
虚拟终端:附加在物理终端之上的以软件方式虚拟实现的;
3)、终端设备文件路径为/dev/tty#,其中CentOS 6默认启动6个虚拟终端,可用 Ctrl+Alt+F#进行终端切换,其中#是1-6;
4)、图形终端是属于虚拟终端,附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;模拟终端是图形界面打开的命令行以及基于ssh协议或telnet协议等远程打开的操作界面,其设备文件:/dev/pts/# [0, ∞ );
5)、查看当前的终端设备:tty;
6)、交互式接口:启动终端后,在终端设备附加一个交互式应用程序:
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是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。shell也被称为LINUX 的命令解释器(command interpreter)。GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux 标准的shell,兼容sh。
7)、显示当前使用的shell:
#echo ${SHELL}
显示当前系统使用的所有shell:
#cat /etc/shells
8)、命令提示符prompt:
管理员:#
普通用户:$
3、命令及命令格式
1)、在shell中可执行的命令有两类:
内部命令:由shell自带的,而且通过某命令形式提供,enable命令可以启用或禁用内部命令;
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件,可用which ,whereis命令显示外部命令的路径;
2)、区别当前使用的命令是内部或外部命令:
# type COMMAND
3)、hash命令:搜寻到的外部命令路径结果缓存至kv(key-value)存储中,
hash 显示hash缓存,hash �Cr 清除缓存;
4)、COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能;
短选项:-c, 例如:-l, -h
长选项:--word ,例如:--all, --human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
1 、多选项,以及多参数和命令之间使用空白字符分隔;
2 、取消和结束命令执行:Ctrl+c ,Ctrl+d;
3 、多个命令可以用;符号分开;
4 、一个命令可以用\分成多行;
4、一些简单命令
1)、date -显示日期和时间
Linux 的两种时钟:
系统时钟:由Linux内核通过CPU 的工作频率进行的;
硬件时钟:主板
hwclock ,clock: 显示硬件时钟
-s, --hctosys以硬件时钟为准,校正系统时钟
-w, --systohc以系统时钟为准,校正硬件时钟
2)、cal -显示日历
3)、nano �C文本编辑
4)、screen命令:
打开新的screen:
# screen
退出并关闭screen:
# exit
剥离当前screen:
Ctrl+a,d
远程求助:
#screen -S session
远程帮助:
#screen -x session
显示所有已经打开的screen:
screen -ls
恢复某screen
screen -r [SESSION]
5)、echo命令
功能:显示字符
语法:echo [-neE][ 字符串]
说明:echo 会将输入的字符串送往标准输出。
输出的字符串间以空白字符隔开,并在最后加上换行号
echo "$VAR_NAME": 变量会替换,双引号表弱引用
echo '$VAR_NAME': 变量不会替换,强引用
$echo �Ce “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字符
6)、命令补全
内部命令:
外部命令:bash 根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令。
用户给定的字符串只有一条惟一对应的命令,直接补全;否则,再次Tab 会给出列表。
路径补全:把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名。如果惟一,则直接补全;否则,再次Tab。
7)、history命令
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令
#: 显示最近的条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量:
HISTSIZE :命令历史记录的条数;
HISTFILE :指定历史文件,默认为~/.bash_history;
HISTFILESIZE :命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups :忽略重复的命令,连续且相同方为“重复”
ignorespace :忽略所有以空白开头的命令
ignoreboth :ignoredups, ignorespace
erasedups: 删除重复命令
export 变量名=" 值“
存放在 /etc/profile 或 或 ~/.bash_profile
5、命令行历史
1)、重复前一个命令,有4 种方法:
重复前一个命令 使用上方向键,并回车执行。
按 !! 并回车执行。
输入 !-1 并回车执行。
按 Ctrl+p 并回车执行。
2)、其他的调用命令行历史的方法
! 字符串: 重复前一个以“字符串”开头的命令
!num: 按照history 命令输出中的序号重复对应命令
!?字符串: 重复前一个包含abc 的命令
!-n : 重复n 个命令之前的那个命令
使用up(向上)和down(向下)键来上下浏览从前输入的命令
键入ctrl-r 来在命令历史中搜索命令
3)、要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc击键后松开,然后点击 .键)
Alt+ .(按住Alt击键的同时点击 .键)
4)、调用历史参数
#cmd !^ : 利用上一个命令的第一个参数做cmd的参数
#cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
#cmd !* : 利用上一个命令的全部参数做cmd的参数
#cmd !:n : 利用上一个命令的第n 个参数做cmd的参数
!n:^ 调用第n 条命令的第一个参数
!n:$ 调用第n 条命令的最后一个参数
!m:n 调用第m 条命令的第 第n个参数
!n:* 调用第n 条命令的所有参数
!string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索以 string 开头的命令, 并获取它的最后一个参数
!string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数