Linux shell 命令行操作手册

282 阅读8分钟

壹. 基础命令行

一、命令手册

1.1 man

  • 作用:查看命令手册页。
  • 方法:man xxx eg:man ls
    • 子方法
      • 翻页:空格space
      • 翻行:上下箭头
    • 进阶方法
      • 查找相关命令:man -k xxx eg: man -k termianl

二、遍历目录

2.1 cd

  • 作用:切换目录
  • 方法:cd destination 如果没有为cd命令指定目标路径,将会切换到用户主目录
    • 参数:destination可以用两种表示:一种是使用绝对文件路径,另一种是使用相对文件路径
      • 绝对文件路径:
        • 绝对文件路径定义了再虚拟目录结构中该目录的确切位置, 以虚拟目录的根目录开始,相当于目录的全名.
        • 绝对文件路径总是以正斜线/作为起始, 指明虚拟文件系统的根目录. 因此如果要指向usr目录所包含的bin目录下的用户二进制文件, 可以使用如下绝对文件路径:/usr/bin
      • 相对文件路径:
        • 相对文件路径允许用户指定一个基于当前位置的目录文件路径, 不以代表根目录的正斜线/开始, 而是以目录名活是一个特殊字符开始
    • 子参数:
      • 当前目录:.
      • 当前目录的父目录:..

2.2 pwd

  • 作用:显示当前会话的目录.

三、文件和目录列表

3.1 ls

  • 作用:显示当前目录下的文件和命令 按列字母排序
  • 参数:
    • 区分文件和目录:ls -F - 后续为/则为目录,为*则为可执行文件.
    • 显示隐藏文件: ls -a
    • 递归:ls —R - 列出当前目录包好的子目录中的文件
    • 显示长列表:ls -l - 显示更多信息, 会显示:
      • 文件类型: 目录d 文件- 字符型文件c 块设备b
      • 文件权限
      • 文件硬链接总数
      • 文件属主的用户名
      • 文件属组的组名
      • 文件大小(字节)
      • 文件名和目录名
    • 过滤输出列表:ls -l my_script 进行简单的文本匹配的字符串
      • 代表一个字符
      • * 代表零个或多个字符
    • 查看访问时间: --time=atime
    • 只显示目录本身的信息:ls -d
    • 查看文件、目录的inodels -i
  • 参数组合:ls -FR or ls -F -R

四、处理文件

4.1 touch

  • 作用:创建空文件
  • 方法:touch file
  • 参数:
    • 修改访问时间: `touch -a file

4.2 cp

  • 作用:复制文件
  • 方法:cp source destinationsource destination都是文件名时, cp命令将源文件复制成一个新文件, 并且以destination命名, 如果目标以存在cp命令不会提醒, 复制到目录下的时候尾部最好带着/
  • 参数:
    • 提醒是否覆盖已有文件: cp -i
    • 递归复制整个目录内容: cp -R

4.3 mv

  • 作用:异动或者重命名文件,不改变inote编号和时间戳
  • 方法:mv a b
  • 参数:
    • 提醒是否覆盖已有文件:mv -i

4.4 rm

  • 作用:删除
  • 方法:rm file
  • 参数:
    • 提醒是否真的删除文件:rm -i
    • 强制删除:rm -f
    • 进入目录删除其中文件:rm -r

五、处理目录

5.1 mkdir

  • 作用:创建目录
  • 方法: mkdir newdir
  • 参数:
    • 创建多个目录和子目录:mkdir -p newdir/subdir/underdir

5.2 rmdir

  • 作用:删除空目录
  • 方法:rmdir newdir

六、查看文件内容

6.1 file

  • 作用:查看文件类型
  • 方法:file file

6.2 查看文件

6.2.1 cat

  • 作用:查看整个文件
  • 方法:cat file
  • 参数:
    • 加上行号:cat -n
    • 给有文本行加上行号:cat -b
    • 不显示制表符:cat -T - 会以^T形式替代

6.2.2 more

分页工具,好于cat

6.2.3 less

more升级版 支持搜索

6.3 查看部分文件

6.3.1 tail

  • 作用:显示最后几行信息,默认10行
  • 方法:tail file
  • 参数:
    • 显示特殊行数:tail -n 20 file / tail -20 file
    • 实时显示:tail -f

6.3.2 head

tail

6.4 其他命令

6.4.sleep

睡眠sleep -n

6.5 history

查看历史命令

  • !! 上调命令
  • !n history中的某行命令

6.6 alias

  • 显示当前别名: alias

贰. 系统命令行

一、探查进程

1. ps

  • 作用:输出运行再系统上的所有程序的许多信息.
  • 方法:ps 默认情况下,ps命令只会显示运行再当前控制台下的属于当前用户的进程.
    • 显示:进程ID Process ID PID 运行在哪个终端TTY 以及进程已用的CPU时间
  • 参数
Unix
参数 描述
-A 显示所有进程
-N 显示与指定参数不符的所有进程
-a 显示除控制进程session leader和无终端进程外的所有进程
-d 显示除控制进程外的所有进程
-e 显示所有进程
-C cmdlist 显示包含在cmdlist列表中的进程
-G grplist 显示组ID在grplist列表中的进程
-U userlist 显示属主的用户ID在userlist列表中的进程
-g grplist 显示会话或组ID在grplist列表中的进程
-p pidlist 显示PID在pidlist列表中的进程
-s sesslkist 显示会话ID在sesslist列表中的进程
-t ttylist 显示终端ID在ttylist列表中的进程
-u userlist 显示有效用户ID在userlist列表中的进程
-F 显示更多额外的输出(相对与-f参数而言)
-O format 显示默认的输出列以及format列表指定的特定列
-M 显示进程的安全信息
-c 显示进程的额外调度器信息
-f 显示完整格式的输出
-j 显示任务信息
-l 显示长列表
-o format 仅显示由format指定的列
-y 不要显示进程标记process flag
-Z 显示安全标签信息security context
-H 用层次格式来显示进程(树状,用来显示父进程)
-n namelist 定义了WCHAN列显示的值
-w 采用宽面输出模式,不限宽度显示
-L 显示进程中的线程
-V 显示ps命令的版本号
  • 其他BSD/GNU风格的参数类似. 具体还要看各自的shell类型.

2. top

  • 作用:实时显示进程信息.

3. kill / killall

  • 作用:结束进程.
  • 方法:kill PID / killall 进程名

4. jobs

显示后台模式的任务

二、监测磁盘空间

1. df

  • 作用:显示设备上还有多少磁盘空间.
  • 参数:
    • 易读格式:df -h

2. du

  • 作用:显示当前目录下磁盘使用情况. 每行左边的数值是每个文件目录占用的磁盘块数
  • 参数:
    • 显示所有已列出文件总的大小:-c
    • 易读:-h
    • 显示每个输出参数的总计:-s

三、处理数据文件

3.1 sort - 排序数据

  • 方法:sort file - 默认按字符来执行标准的字符排序
  • 参数:
    • 按值排序:sort -n
    • 按月排序:sort -M
单破折线 描述
-b 排序时忽略起始的空白
-C 不排序,如果数据无需也不要报告
-c 不排序,但检查输入数据是不是排序,未排序的话,报告
-d 仅考虑空白和字母,不考虑特殊字符
-f 默认情况下,会将大写字母排在前面,参数会忽略大小写
-g 浮点数
-i 忽略不可打印字符
-k 排序从POS1位置开始,如果指定了POS2的话,到POS2位置结束
-M 用三字符月份排名
-m 将两个已排序数据文件合并
-o 将排序结果洗出到指定文件中
-r 反序排序
-z NULL字符作为行尾,而不是换行符

3.2 grep - 搜索数据 egrep / fgrep

  • 作用:查看在大文件中找一行数据, 会在输入或指定的文件中查找包含匹配指定模式的字符的行
  • 方法:grep [options] pattern [file]
  • 参数:
    • 反向搜索:grep -v
    • 显示行号:grep -n
    • 有多少行含有匹配的模式:grep -c
    • (或)多个匹配模式/正则也可以:grep -e f -e t file

3.3 压缩数据

工具 文件拓展名 描述
bzip2 .bz2 采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码
compress .z 最初的Unix文件压缩工具,已经快没人用了
gzip .gz GNU压缩工具,用Lempel-Ziv编码
zip .zip WindowsPKZIP工具的Unix实现

gzip

  • gzip:压缩文件
  • gzcat;用来查看压缩过的文本文件的内容
  • gunzip:Y欧诺个来解压文件

3.4 归档数据

虽然zip命令能够很好将数据压缩和归档进单个文件, 但它不是UnixLinux中的标准归档工具. tar命令最开始是用来将文件写到磁带设备上归档的, 然而它也能把输出写到文件里,这种用法在Linux上已经普遍用来归档数据了.

  • 方法:tar function [option] object1 object2 ...
    • function:定义了tar命令应该做什么
      • -A: 将一个已有tar归档文件追加到另一个已有tar归档文件
      • -c:创建一个新的tar归档文件
      • -d:检查归档文件和文件系统的不同之处 从已有tar归档文件中删除
      • -r:追加文件到已有tar归档文件末尾
      • -u:将比tar归档中已有的同名文件新的文件追加到改tar归档文件中
      • -x:从已有tar归档文件中提取文件
    • 参数:
      • -C dir 切换到指定目录
      • -f file 输出结果到文件或设备file
      • -j 将输出重定向给把bzip2命令来压缩内容
      • -p 保留所有文件权限
      • -V 在处理文件时显示文件
      • -z 将输出重定向给gzip命令来压缩内容

3.5 协程

coproc command

3.6 改变安全性设置

3.6.1 改变权限

chmod options mode file 使用八进制模式或符号模式进行文件和目录的安全性设置 chmod 760 newfile chmod [ugoa][+-=][rwxXstugo...] 对特定用户权限增加或减少对应权限

3.6.2 改变所属关系

chown options owner[.group] file