一:用户登录
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来自定义用户提示符。
常用参数:
\u 当前用户
\h 主机名简称
\H 主机名
\w 当前工作目录
\W 当前工作目录基名
\t 24小时时间格式
\T 12小时时间格式
\! 命令历史数
\# 开机后命令历史数
命令分类:
shell中的命令有俩类,内部命令和外部命令,使用help或enable可以列出内部命令列表。
内部命令:由shell自带,而且通过某命令形式提供
enable
cmd 启用内部命令
-n cmd 禁用内部命令
-n 查看所有已禁用的内部命令
外部命令:在文件系统路径下有对应的可执行文件,可使用:which --skip-ailas 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