一、用户登录

    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

                Linux入门及命令详解_date      

    终端实际上是一个设备,一个设备要想与系统进行交互,必须要有交互式接口,当我们打开一个终端时,系统会自动地在终端上运行一个交互式程序。

三、交互式接口

    交互式接口:启动终端后,在终端设备附加一个交互式应用程序。

    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;

                Linux入门及命令详解_入门_02

    显示当前系统使用的所有shell;

                Linux入门及命令详解_date_03

六、命令提示符

    命令提示符(prompt)

                Linux入门及命令详解_date_04

    显示提示符格式:echo $PS1,自己可以定义喜欢提示符的格式

                Linux入门及命令详解_入门_05

格式[\u@\h \W]\$各个含义分别为用户名、@符号、主机名、当前家目录,其中提示符格式有两种,#表示管理员登录,$表示普通用户登录。

七、执行命令

    输入命令,回车:

        提请shell程序找到键入的命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来,表现为一个或多个进程。

八、shell命令类型

    内部命令:由shell自带的,而且通过某命令形式提供;

        enable命令可以启用或禁用内部命令

                Linux入门及命令详解_Linux_06

    外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;可通过which,whereis命令来查找到其可执行程序文件;whereis和which区别在于whereis除了显示外部命令路径所在位置,还可以显示命令的帮助文档;which只能显示外部命令路径位置;

                Linux入门及命令详解_date_07

    区别当前使用的命令是内部或外部命令:

        #type COMMAND

                Linux入门及命令详解_Linux_08

    hash命令:

        搜寻到的外部命令路径结果缓存至kv(key-value)存储中

            hash:显示所有缓存;

                Linux入门及命令详解_date_09

            hash -d:清空指定的命令缓存

                Linux入门及命令详解_Linux_10

            hash -r:清空所有命令缓存  

                Linux入门及命令详解_入门_11

    命令优先级:内置命令>alias>hash>外部命令

九、命令格式

    COMMAND  [OPTIONS...]  [ARGUMENTS]    

        选项(OPTIONS):用于启用或关闭命令的某个或某些功能;        

            短选项:-c,例如:-l,-h

            长选项:--word,例如:- -all

        参数(ARGUMENTS):命令的作用对象,比如文件名,用户名等;

    注意:

        ①多选项,以及多参数和命令之间使用空白字符分割

        ②取消和结束命令执行:Ctrl+c,Ctrl+d

        ③多个命令可以用;符号分开

        ④一个命令可以有\分成多行

十、简单命令

cal命令

    cal:显示日历

                Linux入门及命令详解_Linux_12

    选项:

        -1(数字1):显示单月输出;

                Linux入门及命令详解_入门_13 

        -3:显示临近三个月的日历; 

                Linux入门及命令详解_入门_14

        -s:将星期日作为周的第一天;

                Linux入门及命令详解_Linux_15

         -m:将星期一作为周的第一天; 

                Linux入门及命令详解_date_16

        -j:显示“Julian”日期,也就是一年当中的第几天; 

                Linux入门及命令详解_date_17

        -y:显示当前年的日历。

                Linux入门及命令详解_入门_18

                Linux入门及命令详解_入门_19

                

    参数:

        月份;

        年份;

                 Linux入门及命令详解_Linux_20

nano命令

    nano:文本编辑,这里不重点讲这个命令,后面会重点将Vim编辑器;


screen命令(这命令很有用,当你在进行备份时,不必担心因断电或其他因素导致备份停止,screen可以窗口切换和恢复等),使用这个命令前提是服务器用户名、主机名、操作系统版本要一致;

    创建新screen会话:screen -S 【SESSION】--》这是会话名称,随意取;

                Linux入门及命令详解_date_21

    显示所有已经打开的screen会话:screen -ls

                Linux入门及命令详解_入门_22               

    加入screen会话:screen -x 【SESSION】

                Linux入门及命令详解_入门_23

    退出并关闭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)


    括号扩展:{}

        打印重复字符串的简化形式

                Linux入门及命令详解_入门_24