1. 用户分类
    root用户:特权用户,超级用户,对系统有完全的掌握权限
    普通用户:权限有限,操作有一定的限制

    date echo date echo date_bash

  2. 终端terminal
    物理终端:直接接在本机的显示器和键盘设备 /dev/console
    虚拟终端:附加在物理终端的以软件方式虚拟实现的
    设备文件路劲/dev/tty#

    date echo date echo date_人工智能_02


    Ctrl+Alt+F[1,6]可以实现相互切换
    模拟终端:以图形界面打开的命令行以及基于ssh或telnet协议等远程打开的界面,设备件:/dev/pts/[0...]
    查看当前终端设备:tty

    date echo date echo date_shell_03


    交互式接口
    GUIGraphic(图形的) User Interface
       GNOME(C,图形库gtk)
       KDE  (C++,图形库gt)  
       XFCE (轻量级桌面)

    date echo date echo date_shell_04




    CLI:Command Line Interface 命令行接口
       shell程序:sh(bourn) csh tcsh ksh(korn) bash(bourn again shell) GPL zsh
  3. BASH:GNU Bourne-Again Shell,linux标准shell,兼容sh
       显示当前使用的shell: echo ${SHELL} echo $SHELL
       显示当前系统使用的所有shell: cat /etc/shells

    date echo date echo date_bash_05


    命令分类:
       内部命令:由shell自带,可以通过enable命令启用或禁用命令
       外部命令:在当前系统的某文件系统路径下有相对应的可执行程序文件,
       which whereis可以对命令进行查看,获取命令执行文件的路径和帮助文档
       type Command:可以查看命令的类型,内部还是外部命令。

    date echo date echo date_shell_06

  4. hash命令:
       搜索到的外部命令路径结果缓存在kv键值(key-value)存储中
       hash 显示hash缓存 hash -r 清除缓存

    date echo date echo date_操作系统_07



    命令格式:
      COMMAND [OPTIONS...][ARGUMENTS...]
      多选项,多参数和命令之间用空白字符分割
      取消和结束命令执行:Ctrl+c, Ctrl+d
      多个命令可以用;符号分开
      一个命令可以用\分成多行
  5. date:显示时间和日期
      系统时钟:由Linux内核通过CPU工作频率决定的
      硬件时钟:主板上的时间 hwclock clock
            -s: --hctosys 以硬件时钟为准,校准系统时钟
            -w: --systohc 以系统时钟为准,校准硬件时钟

    date echo date echo date_date echo_08




    -d(--date):显示后面描述的时间 "yesterday" "X days ago",当X为正数时,表示前X天的时间,当X为负数时,表示后X天的时间
    -s(--set):设置时间

    date echo date echo date_人工智能_09


    %H:小时        %M:分钟         %s:从1970.1.1到现在经历的秒数     %S:秒
    %d:一个月第几天   %D:日期(mm/dd/yy)  %X:时间(%H%M%S)              %y:年(16)
    %j:一年的第几天   %w:一个星期第几天  %W:一年的第几个星期           %Y:年(2016)
    cal 显示日历
    nano 文本编辑
  6. screen命令:
      打开新的screen: screen -S
      加入会话: screen -x
      退出并关闭screen: exit
      剥离当前screen: Ctrl+a,d
      显示所有已经打开的screen: screen -ls
      恢复某个screen: screen -r

    date echo date echo date_操作系统_10

  7. ECHO:显示字符
     echo "$var_name":变量会替换,双引号表现为弱引用
     echo '$var_name':变量不会被替换,单引号为强引用
     echo `command`(反引号):输出命令执行结果
     echo $(command):同于反引号,输出命令结果

    date echo date echo date_bash_11


    date echo date echo date_bash_12


         -n:不在字符的最后自动换行
         -e:打印转义字符
     
           \b 退格键
           \c 最后不加上换行符号
           \n 换行且光标移至行首
           \r 光标移至行首但不换行
           \t 插入tab
           \\ 插入\字符
           \0nnn 插入nnn(八进制)所代表的ASCII字符
           \xHH 插入HH(十六进制)所代表的ASCII字符
  8. 登录shell时,会读取历史命令文件中记录下的命令 ~/.bash_history  
      ~/.bash_history 记录历史命令  
      ~/bashrc 用户的bash shell的bash信息,当登录时或者打开新的shell时,该文件会被读取
      ~/bash_profile 用户可以使用该文件写入自己使用的shell信息,用户登录,该文件只执行一次,默认情况下,设置一些变量,执行用户的.bashrc文件
      ~/bash_logout 每次退出系统时,执行该文件。
      文件执行顺序: /etc/profile--> (~/.bash_profile | ~/.bash_login | ~/.profile)-->~/.bashrc-->/etc/bashrc-->~/.bash_logout
  9. 重复上一个命令:
       方向键 + enter
       按!! + enter
       !-1 + enter
       按Ctrl + p + enter


    !字符串:重复前一个以"字符串"开头的命令
    !num:按输出的序号重复对应的命令
    !?字符串:重复前一个包含字符串的命令
    !-n:重复n个命令之前的那个命令
    Ctrl + r:在命令历史中搜索 
  10. 调用历史参数

    date echo date echo date_人工智能_13

    date echo date echo date_shell_14


      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开头的所有参数

    date echo date echo date_人工智能_15




转载于:https://blog.51cto.com/11763733/1831966