一、用户登录
root用户
① 一个特殊的管理账户;
②又叫超级管理员;
③对系统的损害有无限的能力;
④除非必要,否则不要用root登录;
普通用户
①权限有限;
②造成系统损害的能力比较有限;
二、终端(terminal)
服务器非必要部件;
用户与主机交互,必然用到的设备;
①物理终端:直接接入本机的显示器和键盘设备/dev/console;
②虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,设备文件路径/dev/tty;centos6默认启用的6个虚拟终端,Ctrl+Alt+F2-Ctrl+Alt+F6;
③图形终端:属于虚拟终端,附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境,也是虚拟终端的一种切换方式,Ctrl+Alt+F2-Ctrl+Alt+F6;
④模拟终端:图形界面打开的命令行以及基于SSH协议或Telnet协议等远程打开的界面,设备文件路径/dev/pts/#,[0,∞);
查看当前终端设备:tty
终端实际上是一个设备,一个设备要想与系统进行交互,必须要有交互式接口,当我们打开一个终端时,系统会自动地在终端上运行一个交互式程序。
三、交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序。
GUI(图形化界面):Graphic User Interface,是基于X协议实现的窗口管理器。
Linux桌面系统由:
GNONE(C程序开发,gtk开发库)
KDE(C++程序开发,qt开发库)
XFCE(轻量级桌面)
CLI(命令行界面):Command Line Interface。
对应的叫shell程序,用户想要与系统交互,必须要通过shell,不同的程序员开发的程序不一样。但是都可以实现同样的功能(交互式功能),shell程序有很多种,如:Sh,csh,Ksh,Bash,zsh。
四、什么是shell
shell的含义
①shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接受用户输入的命令并把它送入内核去执行。
②shell也被称为Linux的命令解释器(command interpreter)。
③shell是一种高级程序设计语言。
五、bash shell
GUN Bourne-Again Shell(bash)是GUN计划中重要的工具软件之一,目前也是Linux中标准的shell,与sh兼容。;
centos默认使用bash shell;
显示当前使用的shell;
显示当前系统使用的所有shell;
六、命令提示符
命令提示符(prompt)
显示提示符格式:echo $PS1,自己可以定义喜欢提示符的格式。
格式[\u@\h \W]\$各个含义分别为用户名、@符号、主机名、当前家目录,其中提示符格式有两种,#表示管理员登录,$表示普通用户登录。
七、执行命令
输入命令,回车:
提请shell程序找到键入的命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来,表现为一个或多个进程。
八、shell命令类型
内部命令:由shell自带的,而且通过某命令形式提供;
enable命令可以启用或禁用内部命令
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;可通过which,whereis命令来查找到其可执行程序文件;whereis和which区别在于whereis除了显示外部命令路径所在位置,还可以显示命令的帮助文档;which只能显示外部命令路径位置;
区别当前使用的命令是内部或外部命令:
#type COMMAND
hash命令:
搜寻到的外部命令路径结果缓存至kv(key-value)存储中
hash:显示所有缓存;
hash -d:清空指定的命令缓存
hash -r:清空所有命令缓存
命令优先级:内置命令>alias>hash>外部命令
九、命令格式
COMMAND [OPTIONS...] [ARGUMENTS]
选项(OPTIONS):用于启用或关闭命令的某个或某些功能;
短选项:-c,例如:-l,-h
长选项:--word,例如:- -all
参数(ARGUMENTS):命令的作用对象,比如文件名,用户名等;
注意:
①多选项,以及多参数和命令之间使用空白字符分割
②取消和结束命令执行:Ctrl+c,Ctrl+d
③多个命令可以用;符号分开
④一个命令可以有\分成多行
十、简单命令
cal命令
cal:显示日历
选项:
-1(数字1):显示单月输出;
-3:显示临近三个月的日历;
-s:将星期日作为周的第一天;
-m:将星期一作为周的第一天;
-j:显示“Julian”日期,也就是一年当中的第几天;
-y:显示当前年的日历。
参数:
月份;
年份;
nano命令
nano:文本编辑,这里不重点讲这个命令,后面会重点将Vim编辑器;
screen命令(这命令很有用,当你在进行备份时,不必担心因断电或其他因素导致备份停止,screen可以窗口切换和恢复等),使用这个命令前提是服务器用户名、主机名、操作系统版本要一致;
创建新screen会话:screen -S 【SESSION】--》这是会话名称,随意取;
显示所有已经打开的screen会话:screen -ls
加入screen会话:screen -x 【SESSION】
退出并关闭screen会话:exit-----》这里就不演示了
剥离当前screen会话:Ctrl+a,d-----》这里就不演示了,这里可以在Linux系统运行一个‘yes’命令,它会一直循环,然后按Ctrl+a,在按d,就会剥离当前窗口,但是它还是在一直循环。输入screen -r可以恢复玻璃的窗口;
恢复某screen会话:screen -r 【SESSION】---》这里就不演示了
date命令
date:显示系统日期和时间(以+开头,后面接格式)
date [OPTIONS]..+[FORMAT]
OPTIONS:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
例如: date -d yesterday:显示昨天日期;
date -d '-2 day':显示前天日期;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
例如:date -s "2017-07-08 10:20:30"
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
FORMAT:
%F:按照指定格式显示(年月日)
%T:时间(小时、分钟、秒)
%D,%x:显示日期 mm/dd/yy
%Y:年
%m:月份
%d:日
%H:小时.24小时制(00-23)
%M:分钟
%S:秒
%s:从1970年1月1日到现在所经过的秒数
%w:一个星期的第几天(0代表星期天)
%p 显示出AM或PM
%r 显示时间,12小时制(hummus %p)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sunset)
A 星期的全称(SundaySaturday)
%h,%b 月的简称(Jan Dec)
%B 月的全称(JanuaryDecember)
%c 日期和时间(Tue Nov 2014:12:58 2012)
%d 一个月的第几天(01~31)
%j 一年的第几天(001~366)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
设置时间:
①date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
MM:月份
DD:几号
hh:小时
mm:分钟
CC两位年份
CCYY:四位年份
ss:秒
②date -s选项来设置时间,例如,date -s "20170718 01:53:01"
Linux系统的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的计时;
硬件时钟:就是主板BIOS提供的时钟,由主板电池供电来维持运行;
clock、hwclock:显示硬件时钟
选项:
-s,--hctosys:以硬件时钟为准,校正系统时钟;
-w,--systohc:以系统时钟为准,校正硬件时钟;
echo命令
echo:显示字符
语法:echo [-ne] [字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符(空格)隔开,并在最后加上换行号
选项:
-n:关闭自动换行功能;
-e:启用转义符;
使用-e选项时,若出现以下字符,则特别加以处理,而不会将它当成一般文字输出;
\a:发出警告声;
\b:退格键(删除键)
\c:最后不加上换行符号(与echo -n 含义相同)
\n:换行且光标移至行首;
\r:回车,即光标移至行首,但不换行;
\t:插入tab键(制表符)
\\:插入\字符;
\0nnn:插入nnn(八进制)所代表的ASCII字符
\033[##m:控制颜色;
第一个#符号是数字3,则表示字体前景色(字符串颜色);
第一个#符号是数字4,则表示字体背景色;
第二个#符号是第二个数字:表示颜色本身:0-7;
如果同时使用前景色和背景色,格式为:\033[3#;4#m;
前景色:31=红色、33=×××、34=深蓝色、35=浅粉色、36=浅蓝色、37=白色
背景色:43=×××、42=绿色、44=蓝色、45=粉色、46=浅蓝色、47=白色
\033[#m:单个数字用于控制字体的加粗,下划线等功能 ;
0:关闭所有属性
1:设置高亮度(加粗)
4:下划线
5:闪烁
7:反显
8:消隐
\033[0m:关闭字体功能;
注:
echo "echo $UID",弱引用,变量会替换;
echo 'echo $UID',强引用,变量不会替换;
echo `echo $UID`,反引号,会区分变量和命令;
echo `hostname`=echo $(hostname)
括号扩展:{}
打印重复字符串的简化形式