系统集成02-命令行基础

系统集成02-命令行基础

1 Linux命令行基础知识

1.1 Linux的GUI与CLI

  • GUI,GraphicalUserInterface,图形用户界面。用户界面的所有元素图形化,主要使用鼠标作为输入工具,使用按钮、菜单、对话框等进行交互,追求易用
  • CLI,CommandLineInterface,命令行界面。用户界面字符化,使用键盘作为输入工具,输入命令、选项、参数执行程序,追求高效

为什么要使用Linux命令行?

  • 命令行更高效
    • Linux系统中使用键盘操作速度要比鼠标更快。
    • 图形化界面不可重复,而命令行可以编写的脚本完成所有过程(例如:删除过期日志文件)
  • 图形化界面开销大
    • 运行图形化界面会占用很多的系统资源,运行命令行可以让系统资源释放给它更应该做的事情
  • 命令行有时候是唯一的选择
    • 大部分服务器操作系统不会安装图形界面(GUI)
    • 联网设备的维护管理工具本来就没有图形化界面供我们使用

1.2 Linux命令语法格式

命令格式: 命令 [选项] [参数]

注意:

  • 个别命令使用不遵循此格式,[]符号内表示非必选项。
  • 当有多个选项时,可以写在一起, 比如选项-a和选项-l能合并为-al, 但是要注意参数
  • 简化选项(一个-)与完整选项(两个--),比如ls-a等于ls--all

1.3 Linux命令行操作技巧

  • Tab键补全:可以用来自动补全命令或文件名,省时准确
    • 未输入命令状态下,连按两次tab键列出所有可用命令
    • 已输入部分命令名或文件名,按tab键自动补全
  • 光标
    • up方向键上(可以调出输入历史执行记录,快速执行命令)
    • down方向键下(配合up选择历史执行记录)
    • Home移动光标到本行开头
    • Ctrl+A移动光标到行首
    • Ctrl+E移动光标到行尾
    • Ctrl+C终止当前程序
    • Ctrl+L清理屏幕显示

1.4 Linux命令分类

分类 命令
登录和电源管理 login、shutdown、halt、reboot、install、exit、last等
文件处理 file、mkdir、grep、dd、find、mv、ls、diff、cat、ln等
系统管理 df、top、free、quota、at、ip、kill、crontab等
网络操作 ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger等
系统安全 passwd、su、umask、chgrp、chmod、chown、chattr、sudops、who等
其它 tar、unzip、gunzip、unarj、mtools、man

2 文件目录结构

在Linux操作系统中,一切皆是文件, Linux的文件目录结构是树形,“/”称为根目录

image-20230505190726823

image-20230505190813891

2.1 Linux主要目录的用途

目录名 主要存放文件及其用途
/bin bin是Binary(二进制)的缩写, 这个目录存放着最经常使用的命令
/boot 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/dev dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
/etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录
/lib 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统
/opt 这是给主机额外安装软件所摆放的目录
/proc 系统内存映射的虚拟目录,可以通过直接访问这个目录来获取系统信息
/root 该目录为系统管理员,也称作超级权限者的用户主目录
/sbin s就是SuperUser的意思,这里存放的是系统管理员使用的系统管理程序
/srv 该目录存放一些服务启动之后需要提取的数据
/tmp 这个目录是用来存放一些临时文件
/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows/user下的program files目录,其中/usr/bin是系统用户使用的应用程序/usr/sbin是超级用户使用的比较高级的管理程序和系统守护程序/usr/src是内核源代码默认的放置目录
/var 习惯将那些经常被修改、不断扩充的目录放在这个目录下,包括各种日志文件
/run 是一个临时文件系统,存储系统启动以来的信息,当系统重启时被清理或删除

2.2 Linux文件路径

在用shell或调用应用程序的时,都要写明被调用的程序路径

路径分为绝对路径和相对路径

  • 绝对路径:在Linux中,绝对路径是从/(也被称为根目录)开始的,如果一个路径是从/开始的,那一定是绝对路径
  • 相对路径:相对路径就是相对当前所在目录来说的路径

3 Linux基础命令

3.1 登录命令

命令 备注
login login的作用是登录系统,使用权限是所有用户
last 显示近期用户或终端的登录情况,使用权限是所有用户, 查看log可以获知谁曾经或企图连接系统
exit 作用是退出系统,它的使用权限是所有用户

命令介绍补充

  • login

    • 如果选择用命令行模式登录Linux的话,看到的第一个Linux命令就是login

    • 每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换

    • 虚拟控制台的切换通常可以通过按下Alt键和一个功能键来实现,通常使用F1-F6

命令选项参数

这里只展示有特殊选项的命令

  • last
    • -n:指定输出记录的条数。
    • -t tty:只显示指定的虚拟控制台上登录情况。
    • -y:显示记录的年、月、日。
    • -ID:知道查询的用户名。
    • -x:显示系统关闭、用户登录和退出的历史

3.2 电源管理命令

命令 备注
showdown shutdown命令可以安全地将系统关机
halt halt命令的作用是关闭系统,使用权限是超级用户
reboot 重新启动计算机,使用权限是系统管理者

命令介绍补充

  • showdown
    • Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进
      程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备
    • 在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要
      关闭,并且login指令会被冻结,即新的用户不能再登录

命令选项参数

  • halt
    • -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块
    • -w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)记录
    • -f:没有调用shutdown,而强制关机或重启
    • -i:关机(或重启)前,关掉所有的网络接口
    • -f:强迫关机,不呼叫shutdown这个指令
    • -d:关闭系统,但不留下纪录
  • reboot
    • -n: 保存数据后再重新启动系统。
    • -w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
    • -d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)
    • -i:关闭网络设置之后再重新启动系统

3.3 文件管理命令

命令 备注
pwd 用于打印出当前的工作目录
cd 用于改变当前工作目录
ls 列出目录的内容,或者文件的信息,该命令的输出结果默认按照文件名排序
mkdir 用于创建目录(文件夹)
touch 用于创建空文件或修改文件的时间戳
cp cp命令用于复制文件或者目录,可以一次复制单个文件,也可以一次复制多个文件(cp命令属于高危命令,使用不慎就会有丢失数据的危险)
mv 用于移动件或者目录(高危命令), 如果原文件和目标文件在同一个父目录里面,则mv命令的效果就相当于给文件改名
rm 用于删除文件或者目录(高危命令)
cat 用于读取文件的全部内容,或者将几个文件合并为一个文件
head 用来显示文件的开头内容,默认head命令打印其相应文件的开头10行
tail 用于读取文件的尾部
more more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。
less 读取内容,分屏显示,less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
find 用来在指定目录下查找文件,可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件
locate 会先建立一个文件名及路径的数据库,查找时去这个数据库内查询, 从而达到快速的查找文件系统内是否有指定的文件的效果
which 在PATH所指定的目录中查找可执行文件, 使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
gzip 一个对文件进行压缩和解压缩的命令
tar 命令可用于打包文件,把多个文件打到一个包中,方便数据的移动
ln 命令用于创建链接文件, 包括软链接和硬链接, 默认为硬链接

命令详细介绍

  • pwd

    • -L 目录连接链接时,输出连接路径
    • -P 输出物理路径
  • cd命令语法: cd [dir]

    • cd/usr 进入目录/usr中。
    • cd.. 进入(退到)上一层目录,两个点代表父目录。
    • cd. 进入当前目录
    • cd 不带参数,则默认回到家目录。
    • cd- 进入前一个目录,适用于在两个目录之间快速切换。
    • cd~ 进入家目录
  • ls语法:ls[OPTION]...[FILE]..

    • -a 显示所有文件及目录(ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出)
    • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    • -t 将文件依建立时间之先后次序列出
    • -R 若目录下有文件,则以下之文件亦皆依序列出
  • mkdir语法: mkdir [OPTION] ... DIRECTORY ...

  • cp语法:cp [OPTION] ... SOURCE ... DIRECTORY

    • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
    • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
    • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
    • -l:不复制文件,只是生成链接文件
  • mv语法:mv [选项] 源文件或目录目标文件或目录

    • -b:若需覆盖文件,则覆盖前先行备份
    • -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    • -i:若目标文件(destination)已经存在时,就会询问是否覆盖
    • -u:若目标文件已经存在,且source比较新,才会更新(update)
  • rm语法:rm [OPTION] file/dir

    • -f,--force 忽略不存在的文件,从不给出提示
    • -i,--interactive 进行交互式删除
    • -r,-R,--recursive 指示rm将参数中列出的全部目录和子目录均递归地删除
    • -v,--verbose 详细显示进行的步骤
  • cat语法:cat [OPTION] [FILE]

    • -A,--show-all 等价于–vET。
    • -b,--number-nonblank 对非空输出行编号。
    • -E,--show-ends 在每行结束处显示$。
    • -n,--number 对输出的所有行编号, 由1开始对所有输出的行数编号
  • head语法:head [OPTION] [FILE]

    • -q 隐藏文件名
    • -v 显示文件名
    • -c <字节> 显示字节数
  • tail语法:tail [OPTION] ... [FILE] ...

    • -f 循环读取。
    • -q 不显示处理信息。
    • -v 显示详细的处理信息。
    • -c <数目> 显示的字节数。
    • -n <行数> 显示行数。
  • more语法:more [OPTION] ... [FILE] ...

    • +n 从笫n行开始显示。
    • -n 定义屏幕大小为n行。
    • +/pattern 在文件显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示。
    • -c 从顶部清屏,然后显示
  • 使用more命令在读取文件信息时,可以进行交互操作

    • Enter 向下n行,需要定义。默认为1行。
    • Ctrl+F 向下滚动一屏。
    • 空格键 向下滚动一屏。
    • Ctrl+B 返回上一屏。
    • = 输出当前行的行号。
    • V 调用vi编辑器。
    • ! 命令调用Shell,并执行命令。
    • q 退出more
  • less语法:less [OPTION] ... [FILE] ...

    • /字符串:向下搜索“字符串”的功能。
    • ?字符串:向上搜索“字符串”的功能。
    • Q: 退出less命令。
    • 空格键: 滚动一页。
    • 回车键: 滚动一行
  • find常用语法:find [path...] [expression]

    • -name 按照文件名查找文件。
    • -perm 按照文件权限来查找文件。
    • -user 按照文件属主来查找文件。
    • -mtime -n +n 按照文件的更改时间来查找文件
  • locate语法:locate [OPTION] PATTERN

    • -e 将排除在寻找的范围之外
    • -f 将特定的文件排除在外
    • -r 使用正规运算式做查找条件
    • -o 指定文件的名称
    • -d 指定文件的路径
  • which语法:which [options] program name [...]

  • gzip语法:gzip [参数] [文件或者目录]

    • -d 或--decompress或----uncompress 解开压缩文件
    • -f 或--force 强行压缩文件,不理会文件名是否存在以及该文件是否为符号连接
    • -l 或--list 列出压缩文件的相关信息
    • -r 或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理
    • -v 或--verbose 显示指令执行过程
  • tar语法:tar [OPTION...] [FILE]

    • -c 建立新的压缩文件
    • -x 从压缩的文件中提取文件
    • -t 显示压缩文件的内容
    • -z 支持gzip解压文件
    • -j 支持bzip2解压文件
    • -v 显示操作过程
  • ln语法:ln [-f|-n] [-s] SourceFile [TargetFile]

    • -b 删除,覆盖以前建立的链接。
    • -d 允许超级用户制作目录的硬链接。
    • -f 强制执行。
    • -i交互模式,文件存在则提示用户是否覆盖。
    • -n 把符号链接视为一般目录。
    • -s 软链接(符号链接)

3.4 帮助命令

命令 备注
man 查看文档手册(manual),分为9类
help 获取帮助

命令详细介绍

  • man查看的文档手册

    序号 内容
    1 使用者在shell中可以操作的指令或程序
    2 系统核心可调用的函数与工具等
    3 一些常用的函数(function)与函数库(library)
    4 设备文档的说明,通常是在/dev下的文件
    5 文件格式和约定
    6 游戏(games)
    7 杂项(包括宏和惯例)
    8 系统管理命令(通常仅适用于root用户)
    9 内核例程(非标准)
  • help语法: help [选项] [命令]

    • -d 显示命令简短主题描述
    • -s 显示命令简短语法描述
posted @ 2023-05-06 16:35  Qurare  阅读(53)  评论(0编辑  收藏  举报