2018-Linux系统基础-linux-04.字符界面

第四章:Linux字符界面操作

1. 字符界面简介

  1. 对linux服务器的维护基本上是在命令行界面下进行的

1.1. 进入linux命令行界面

  1. linux字符界面
    1. 在启动时,修改命令进入字符界面:使用gedit打开文件/etc/inittab
      • 在其中找到initdefault一行:将其修改为id:3:initdefault
      • 重启计算机即可
    2. 命令:[root@PC-LINUX ~]# ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
    3. 改变后重新引导即可
      1. 超级用户登录后提示符:#
      2. 其他用户登录后提示符:$
    4. 如果在字符界面想要重启图形界面,可以输入命令startx启动linux的图形界面。
  2. 使用终端:应用程序->收藏->终端
    1. 进入终端
    2. 修改首选项:编辑当前配置文件即可
    3. 退出终端界面:
      1. 图形界面点击X
      2. 在控制台输入exit即可
  3. 使用虚拟控制台:允许进行多次登录

1.2. 关闭和重启系统

  1. shutdown命令
    • 可以安全地关闭系统。
    • linux系统和Windows系统不同,后台有很多的进程正在运行中,如强制关机会导致进程的数据丢失。
    • 在下达shutdown指令后,系统会通知所有登录的用户系统将要关闭,并且login指令被冻结。
    • 语法shutdown [选项][时间][警告信息],也就是该指令允许精确时间关机(多少分钟后,现在写做now)。
      1. 需要说明:这个命令只能被超级用户root使用
      2. -h:关机但不重启
      3. -r:重启
      4. -k:并不真正关闭系统,只是发出警告信息给全部用户
      5. -f:快速关闭系统,再次启动时不进行磁盘检测
      6. -n:快速关闭系统,不经过init程序直接关机
      7. -c:中断关闭系统
  2. halt
    • 就是调用shutdown -h命令来执行关闭系统
    • 语法halt [选项]
      1. -w:不是真正重启关闭系统,只是写"wtmp"记录
      2. -d:不写wtmp记录
      3. -f:不调用shutdown,直接强制关机
      4. -i:在关闭或重启系统前,先关闭所有的网络接口
      5. -p:这个选项是缺省项,即关闭系统时调用"power off"
  3. reboot
    • 是引发主机的重启,区别于halt指令的关机
    • 参数和halt大致相同
  4. init
    • 这个命令式所有进程的祖先,进程号始终为1
    • 定义了7个运行级别,其中init 0为关闭系统,init 6是重启。

1.3. 系统运行级别

  1. 一种状态,由列在/etc/rc.d/rc<x>.d目录中的服务来定义,其中<x>代表运行级别的符号
  2. 由列在/etc/rc.d/rc<x>.d中的<x>来代表级别
    1. 运行级别分为7种
    2. 0:停止运行,所有进程中止,关闭系统
    3. 1:单用户模式,用于维护系统,只有少数进程运行
    4. 2:多用户模式,除了NFS服务没有启动外,其他和运行级别3一样。
    5. 3:完整的多用户模式,进入linux系统的字符界面
    6. 4:没有使用(由用户自己定义)
    7. 5:完整的多用户模式(带有基于X Window的图形界面)
    8. 6:重新引导计算机
    • 简单的事宜:字符界面的运行级别是3,图形化界面的运行级别是5.
  3. 查看当前系统运行级别:
    1. [root@PC-LINUX ~]# runlevel
    2. 结果第一个为上一次运行级别(无为N),后面为当前运行等级
    3. 可以用这个来切换显示模式,命令行还是GUI界面,命令:init (level)
      • 命令init 0同样是关闭计算机

2. 如何在linux下获取帮助

2.1. 使用man手册页

  1. 作用:查看命令、函数或文件的帮助手册,另外它还可以显示一些gzip压缩格式的文件。
    • 一般来说这个手册资源被放置在了/usr/share/man目录下
  2. 命令语法:man [选项][命令名称]
    1. -M:指定搜索man手册页的路径,通常这个路径由环境变量MANPATH预设,如果在命令行上指定另外的路径,则覆盖MANPATH的设定
    2. -P:指定所使用的分页程序,默认使用/usr/bin/less-is,在环境变量MANPAGER中预设。
    3. -a:显示所有的手册页,而不是只显示第一个。
    4. -d:主要用于检查,如果用户添加进图了一个新的文件,就可以用这个选项检查是否出错,这个选项不会列出文件内容。
    5. -f:只显示出命令的功能而不显示其中详细的说明文件。
    6. -p:string设定预先处理程序的顺序
    7. -w:不显示手册页,只显示将被格式化和显示的文件所在位置。
  3. 简单介绍man手册页内容:
    1. NAME:简单说明
    2. SYNOPSIS:大致说明(语法、定义等)
    3. OPTIONS:对内容的简明介绍
    4. SEE ALSO:一些参考提示
    5. BUGS:指明命令或函数存在什么错误。
    6. 其他的详见查找。

2.2. 使用help命令

  1. 可以查找Shell命令的用法
  2. 语法:[命令] --help

2.3. whereis命令

  1. 查找命令所在的位置
  2. 语法:whereis [选项][命令名]
    1. b:只查找二进制文件
    2. m:查找主要文件
    3. s:查找来源
    4. u:查找不常用的记录文件

3. Shell基础

  1. Shell是最常用的程序,主要作用是侦听用户指令、启动指令所指定的进程并将结果返回给用户。
  2. Shell就是位于核心和操作者之间的一层使用者界面。

3.1. Shell起步

  1. 类似于命令行,但是要比命令行更加强大。
  2. 登入系统或者打开终端窗口时,首先看到的是Shell提示符,$/#
  3. 一般的格式:[Shell命令][可选项][参数]
  4. 例子:
    1. whoami:查找当前里linux系统的用户

3.2. Shell类型和功能

  1. 命令解释器
  2. 编程原因
  3. 系统管理维护时的重要工具
  4. bash的功能:
    1. 兼容sh(Bourne Shell)
    2. 包含C Shell以及Korn Shell中最好的功能
    3. 具有命令行编写修改的能力
    4. 具有工作控制能力,可控制前台和后台程序
    5. 具有Shell编程能力

3.3. 开始使用bash

  1. 命令分类
    1. bash内置的命令:由把bash负责回应
    2. 应用程序:Shell会找到相应的应用程序,然后把控制权交给内核,由内核执行应用程序。
    • 如果想要具体确定那种命令:which [命令]
  2. 通配符
符号 含义
? 表示任何单一字符
* 表示任何字符
[字符组合] 在中括号中的字符皆符合
[!字符组合] 不在中括号中的字符皆符合
  1. 特殊字符及引号
    1. 主要参见PPT
    2. ~:用户主目录
    3. *:通配符
    4. ?:通配符
    5. <:输出重定向
  2. 常用控制组合键
    1. 详见PPT
    2. Ctrl+U:将命令行整列删除。

4. Shell实用功能

4.1. 命令行自动补全

  1. Tab自动补全,按下Tab键
  2. 比如:cd /u/u<Tab>/sr<Tab>/redhat/

4.2. 命令历史记录

  1. 使用方向键
  2. 使用shift+方向键
  3. 编辑命令行
    • 详见PPT
    • [!$]重复前一个命令最后的参数
    • pwd查看当前目录
  4. 可用的Shell快捷方式
    • ~是用户的主目录的简写形式

4.3. 命令的排列、替换和别名

  1. 命令的排列
    • 如果希望一次执行多个命令,Shell允许在不同的命令之间,放上特殊的排列字符。
    1. 使用命令1;命令2
      1. 先执行命令1
      2. 无论成功与否,执行命令2
    2. 使用命令1&&命令2
      1. 只有命令1正确运行完毕后才能执行命令
  2. 命令的替换
    1. 语法:命令1 $(命令2)||命令1 `命令2`
    2. 命令替换将一个命令的输出当另一个命令的输入
    3. 实例:kill -9 $(pidof less)
  3. 命名别名
    1. 将比较长的命令重命名为另一个指定命令
    2. 语法:alias [别名]=[需要定义别名的命令]
      • 取消别名:unalias
    3. 之后输入重命名的部分就行。但是重启或者关系会使得别名失效。
    4. 别名的优先级高于原命令。

4.4. 文件名匹配和输出重定向

  1. 文件名匹配:
    1. 用户不必一一写出文件名称就可以指定多个文件
    2. *可以匹配一个或多个字符
    3. ?只能匹配代表一个字符
  2. 管道:
    1. 复杂任务使用Shell机制,组合很多小程序进行完成,管道就是把某个命令的输出信息当做某个命令的输入
    2. 语法:[命令1]|[命令2]|[命令3]
    3. 例子:ls /etc|more,显示这个文件夹的内容,命令more是分页显示内容
  3. 重定向文件
    1. 希望将命令的输出结果保存到文件中
    2. 希望将文件的内容作为命令参数
    3. 五种重定向方式:
      1. 输出重定向
        1. 将command(具体命令)命令输出保存到文件file中,如何有相同文件,则进行覆盖
        2. 语法:command > file
      2. 输入重定向
        1. 将文件file的内容作为command命令的输入
        2. 语法:command < file
      3. 错误重定向
        1. 将命令执行出错信息输出到文件file中
        2. 语法:command 2> file
      4. 追加重定向
        1. 将输出添加到已经存在的file中去
        2. 语法:command >> file
      5. 同时实现输出和错误的重定向
        1. 同时实现输出重定向和错误重定向
        2. 语法:command &> file
    4. 将一个目录下的内容重定向到文件夹:
      • ls /root > /root/abc

5. vi编辑器基本使用

5.1. vi的基本概念

  1. vi编辑器是linux系统的标准编辑器,用于编辑任何ASCII文本。使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制、粘贴等操作。
  2. 三种基本工作模式
    1. 命令行模式
    2. 插入模式
      1. 插入模式才能文字输入
      2. Esc回到命令行
    3. 末行模式
      1. 保存文件或退出vi编辑器
      2. 设置编辑环境。

5.2. vi的基本操作

  1. 进入vi编辑器
    • 在Shell提示符输入vi以及文件名称就进入了vi编辑
  2. 切换至插入模式编辑文件
    • 按下i进入编辑模式
  3. 退出vi以及保存文件
    1. 按:进入末行模式
    2. 输入wq,存盘并退出vi
    3. 输入q!,不存盘强制退出vi

5.3. 命令行模式操作

  1. 进入插入模式
    1. 按"i":从光标当前位置开始输入文件
    2. 按"a":从目前光标所在位置的下一个位置开始输入文字
    3. 按"o":在光标所在的行的下面插入一行,从行首开始输入文字
    4. 按"I":在光标所在行的行首插入。
    5. 按"A":在光标所在行的行末插入。
    6. 按"O":在光标所在的行的上面插入一行。
    7. 按"s":删除光标位置的一个字符,然后进入插入模式。
    8. 按"S":删除光标所在的行,然后进入 插入模式。
  2. 从插入模式切换为命令行模式
    • 按下Esc返回
  3. 移动光标:参见ppt
    1. ctrl+b:向前移动一页
    2. ctrl+f:向后移动一页
    3. ctrl+u:向前移动半页
    4. ctrl+d:向后移动半页
  4. 删除文字:参见ppt
    1. (n)x:按一次,删除光标处的一(n)个字符
    2. (n)X:按一次,删除光标处前的1(n)个字符。
  5. 复制
  6. 替换
  7. 撤销上一次操作
  8. 跳至指定的行
  9. 存盘退出
  10. 不存盘退出

5.4. 末行模式操作

  1. 先按下Esc,然后按下:进入末行模式
  2. 列出行号:set nu
  3. 取消列出行号:set nonu
  4. 跳转到文件中的某一行:n
  5. 查找字符:
    1. /关键字:先按"/"键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按"n"会往后查找下一个关键字。
    2. ?关键字:先按"?"键,再输入想查 找的字符,如果第一次查找的关键字不是想要 的,可以一直按"n"往前查找下一个关键字。
  6. 运行Shell命令:!命令
  7. 替换字符:
    1. :s/a/b:将光标所在行第一个a替换 为b。
    2. :s/a/b/g:将光标所在行所有的a替 换为b。
  8. 保存文件:
    • :w

2018-Linux系统基础-linux-04.字符界面
https://spricoder.github.io/2018/07/16/2018-Linux-system-basics/2018-Linux-system-basics-linux-04.%E5%AD%97%E7%AC%A6%E7%95%8C%E9%9D%A2/
作者
SpriCoder
发布于
2018年7月16日
许可协议