一:用户登录
root用户:管理员账户,也被称为超级用户,root拥有对Linux系统的所有权限,甚至可以把自己杀死(rm -rf /*),除非必须,一般不用root用户登录系统
普通用户:权限受到限制,只可以对自己有权限的文件进行操作
二:终端(terminal)
终端:
- 设备终端:鼠标,键盘,显示器
- 物理终端:控制台(/dev/console)
- 虚拟终端:/dev/tty[1-6] 在物理机旁边可以使用Alt+F【1-6】进行切换
- 串行终端:/dev/ttyS
- 伪终端:/dev/pts/# 通过ssh远程即可打开一个伪终端
ps:可以使用#tty命令来查看当前终端
[root@centos6 ~]#tty /dev/pts/0
交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
- GUI:Graphic User Interface,及图形化窗口,常见图形桌面有GNOME、KDE和XFCE等,CentOS默认为GNOME桌面
- CLI:Command Line Interface,及命令行窗口,常用的shell有sh、csh、tcsh、ksh、bash和zsh等,默认shell为bash
[root@centos6 ~]#cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh
可以看到系统支持的shell
shell:
shell也被称为LINUX的命令解释器(command interpreter)。是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。同时shell也是一种高级程序设计语言,即bash脚本语言
bash:
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是Linux标准的shell,与sh兼容。同时也是CentOS的默认shell。
[root@centos6 ~]#echo $SHELL /bin/bash
命令提示符
管理员的是#,普通用户为$。使用echo $PS1可以查看当前用户的提示符格式,也可以修改变量或者写入/etc/profile.d/file.sh来自定义用户提示符。
PS1="[e[1;33m][u@h W]\$ [e[0m]"
常用参数:
u 当前用户
h 主机名简称
H 主机名
w 当前工作目录
W 当前工作目录基名
24小时时间格式
T 12小时时间格式
! 命令历史数
# 开机后命令历史数
三:命令(COMMAND)
命令分类
shell中的命令有俩类,内部命令和外部命令,使用help或enable可以列出内部命令列表。
内部命令:由shell自带,而且通过某命令形式提供
enable
cmd 启用内部命令
-n cmd 禁用内部命令
-n 查看所有已禁用的内部命令
外部命令:在文件系统路径下有对应的可执行文件,可使用:which --skip-alias cmd 查看命令可执行文件的路径
[root@centos6 ~]#which --skip-alias ls /bin/ls
ps:使用type命令可以判断命令是内部命令还是外部命令,如果显示路径则是外部命令
[root@centos6 ~]#type pwd pwd is a shell builtin [root@centos6 ~]#type ls ls is aliased to `ls --color=auto'
Hash缓存
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利用hash缓存表可大大提高命令的调用速率。
hash
-l 显示hash缓存
-p path cmd 将命令全路径path起别名为cmd
-t cmd 打印缓存中name的路径
-d cmd 清除cmd缓存
-r 清除全部缓存
命令别名(alias)
alias 显示当前shell中已定义的命令别名
CMD=‘VALUE’ 定义别名
unalias name取消别名
-a 取消所有别名
如果想永久生效需要写入~/.bashrc(对当前用户生效)或/etc/bashrc(对所有用户生效,全局),不建议修改全局配置文件
ps: 使用source或.可重读配置文件,使其立即生效
如果别名和原命令名重名,使用双引号、单引号或者来执行原命令
命令格式
COMMAND [OPTIONS...] [ARGUMENTS...]
选项分为长选项和短选项,如下,执行结果是一样的
[root@centos6 ~]#ls -a . clear .gnome2 install.log.syslog .pulse-cookie .. .config .gnote .kde .ssh .abrt .cshrc .gnupg .local .tcshrc anaconda-ks.cfg .dbus .gstreamer-0.10 motd Templates .bash_history Desktop .gtk-bookmarks Music Videos .bash_logout Documents .gvfs .nautilus .viminfo .bash_profile Downloads .ICEauthority Pictures .Xauthority .bashrc .esd_auth .imsettings.log Public .cache .gconf install.log .pulse [root@centos6 ~]#ls --all . clear .gnome2 install.log.syslog .pulse-cookie .. .config .gnote .kde .ssh .abrt .cshrc .gnupg .local .tcshrc anaconda-ks.cfg .dbus .gstreamer-0.10 motd Templates .bash_history Desktop .gtk-bookmarks Music Videos .bash_logout Documents .gvfs .nautilus .viminfo .bash_profile Downloads .ICEauthority Pictures .Xauthority .bashrc .esd_auth .imsettings.log Public .cache .gconf install.log .pulse
参数是命令的作用对象,如文件名、用户名等
[root@centos6 ~]#id root uid=0(root) gid=0(root) groups=0(root)
ps:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用;符号分开
- 一个命令可以用分成多行
日期和时间
Linux分为俩种时钟,系统时钟和硬件时间,系统时间由CPU振荡器计时,硬件时间为主板BIOS时间
date 可以用来显示或设定系统的日期与时间。
-d<字符串>:显示字符串所指的日期与时间。 -s<字符串>:根据字符串来设置日期与时间。
%H 小时(以00-23来表示)。 %I 小时(以01-12来表示)。 %K 小时(以0-23来表示)。 %l 小时(以0-12来表示)。 %M 分钟(以00-59来表示)。 %P AM或PM。 %r 时间(含时分秒,小时以12小时AM/PM来表示)。 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 %S 秒(以本地的惯用法来表示)。 %T 时间(含时分秒,小时以24小时制来表示)。 %X 时间(以本地的惯用法来表示)。 %Z 市区。 %a 星期的缩写。 %A 星期的完整名称。 %b 月份英文名的缩写。 %B 月份的完整英文名称。 %c 日期与时间。只输入date指令也会显示同样的结果。 %d 日期(以01-31来表示)。 %D 日期(含年月日)。 %j 该年中的第几天。 %m 月份(以01-12来表示)。 %U 该年中的周数。 %w 该周的天数,0代表周日,1代表周一,异词类推。 %x 日期(以本地的惯用法来表示)。 %y 年份(以00-99来表示)。 %Y 年份(以四位数来表示)。 %n 在显示时,插入新的一行。 %t 在显示时,插入tab。 MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要) ss 秒(选择性)
hwclock, clock : 显示硬件时钟
-s, --hctosys以硬件时钟为准,校正系统时钟
-w, --systohc以系统时钟为准,校正硬件时钟
tzselect(CentOS6.x)
timedatectl(CentOS7.x)
list-timezone 列出所有时区
set-timezone “时区” 设置时区
status 列出当前时区
/usr/share/zoneinfo/Asia/Shanghai 时区
/etc/localtime 时区
cal -y 显示日历
常用命令
- halt 关机
- poweroff 关机
- shutdown [OPTION]... TIME [MESSAGE] 关机或重启
- -r +TIME重启
- TIME:now立刻执行,+m相对时间,几分钟后执行,hh:mm绝对时间,具体时间关机
- -h +TIME关机
- -c 取消关机
- -r +TIME重启
- reboot 重启
- whoami 显示当前登录的用户
- who 显示当前系统所有的登录会话
- w 系统当前所有的登录会话及所做的操作
- nano 文本编辑器
- screen CentOS6.x默认没有安装,需要用rpm或yum安装后使用
- -S [SESSION] 新建会话
- -x [SESSION] 加入会话
- exit 退出并关闭会话
- Ctrl+a,d 安装Ctrl+a松开按d,剥离当前screen会话
- -ls 列出所有已建立的会话
- -r [SESSION] 恢复screen会话
- echo [-neE] [arg ...] 显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
- -e 启用字符的解释功能
- a 发出警告声
- 退格键
- c 最后不加换行符号
- 换行且光标移至行首
- 回车,光标移至行首但不换行
- 插入tab
- \插入“”字符
- -e 启用字符的解释功能