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 –r 清除缓存;

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 –文本编辑

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 –e “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 开头的命令,并获取它的所有参数