Linux 命令行日常交互篇

末鹿安然 提交于 2020-07-28 04:13:01

1. 说明

1.1 bash 命令说明

bash 命令一般格式:命令名 [选项] [参数1] [参数2] …; 例如:拷贝文件:cp –i file1.c myfile.c

  • 命令区分大小写,通常为小写英文字母
  • 命令、选项、参数三者之间要用空格或制表符隔开
  • 选项以"-"开始,多个选项可用"-"连起来;示例:tar -zxvf nginx-1.8.tar.gz
  • 命令在正常执行后返回一个 0 值,表示执行成功
  • "|"标识管道,管道前者的命令输出作为后者的输入; 示例:ps -ef|grep nginx
  • 一般的"命令名 --help"可以查看命令支持的选项,获取命令的用法,示例:cat --help

1.2 简单命令

  1. who,列出所有正在使用系统的用户、所用终端名和注册到系统的时间
  2. echo,将命令行中的参数显示到标准输出(即屏幕)上
  3. date,在屏幕上显示或设置系统的日期和时间
  4. clear,清除屏幕上的信息
  5. passwd,修改用户密码
  6. pwd,查看当前所在路径
  7. 灵魂操作复制粘贴,Ctrl+InsertShift+Insert,当然有 cp 命令更方便

1.3 文件说明

Linux系统区分文件名的大小写 以圆点(.)开头的文件名是隐含文件

1.4 目录说明

目录结构

在这里插入图片描述

用户主目录:用户当前工作目录 在这里插入图片描述

目录介绍

/bin基本命令二进制文件

/boot引导加载程序的静态文件

/dev设备文件

/etc主机特定的系统配置

/lib基本共享库和内核模块

/media可移动媒体的安装点

/mnt挂载点,用于临时挂载文件系统

/opt附加应用程序软件包

/sbin基本系统二进制文件

/srv此系统提供的服务数据

/tmp临时文件

/usr二级层次结构

/var可变数据

/bin基本命令二进制文件

/dev设备文件

/lib基本共享库和内核模块

/mnt临时安装文件系统的挂载点

/sbin基本系统二进制文件

/tmp临时文件

/var可变数据

2. 文件操作命令

2.1 cat 命令:cat [选项] 文件

功能

  • 标准输出上查看文件内容
  • 连接两个或多个文件并输出连接后的文件内容

选项(部分)

  • -b,从 1 开始对所有非空输出行进行编号
  • -n,从 1 开始对所有输出行编号
  • -s,将多个相邻的空行合并成一个空行

2.2 more 命令:more [选项] 文件

功能

  • 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比:--More--(XX%)。

选项(部分)

  • -NUM,指定每屏的行数
  • +/STRING,从搜索字符串 STRING 匹配位置开始显示
  • -d,在每屏的底部显示以下更友好的提示信息
  • -c或-p,不滚屏,在显示下一屏之前先清屏
  • -s,将文件中连续的空白行压缩成一个空白行显示
  • +/,该选项后的模式(Pattern)指定显示每个文件之前进行搜索的字符串
  • +num,从行号num开始

2.3 less 命令:less [选项] 文件

less命令允许用户向前或向后浏览文件,而more命令只能向前浏览

2.4 head 命令:head [选项] 文件

功能

  • head 命令在屏幕上显示指定文件的开头若干行,行数由参数值来确定。显示行数的默认值是 10

选项(部分)

  • -c,显示每个文件前面N个字节。如果数字N前面带有“-”,则分别显示每个文件除最后N个字节以外的所有内容
  • -n,显示指定文件的前面N行,而不是默认的10行。如果数字N前面带有“-”,则分别显示每个文件除最后N行以外的所有内容
  • -q,不显示给定文件的标题
  • -v,始终显示给定文件的标题

2.5 tail 命令:tail [选项] 文件

功能

  • tail 命令在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入

选项(部分)

  • -c,输出最后 N 个字节
  • -f,当文件增长时输出附加的数据
  • -n,输出最后的 N 行,而不是默认的 10 行
  • -q,不输出包含给定文件名的标题
  • -v,始终输出包含给定文件名的标题

2.6 touch 命令:touch [选项] 文件名

功能

  • touch命令将会修改指定文件的时间标签,把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来。如果该文件尚未存在,则建立一个空的新文件

选项(部分)

  • -a,仅改变指定文件的存取时间
  • -c,不创建任何文件
  • -m,仅改变指定文件的修改时间
  • -t STAMP,使用STAMP指定的时间标签,而不是系统当前的时间

2.7 comm 命令:comm [选项] 文件1 文件2

功能

  • 对已经排好序的两文件进行比较

选项(部分)

  • 选项1,2,3表示不显示 comm 输出中的第一列,第二列,第三列

2.8 diff 命令:diff [选项] 文件1 文件2

功能

  • 比较两个文件的不同

选项(部分)

  • -b,忽略空格造成的差别
  • -c,输出格式是带上下文的三行格式
  • -C n,输出格式是有上下文的n行格式
  • -e,输出一个合法的ed脚本
  • -i,忽略字母大小写的区别
  • -r,当文件1和文件2都是目录时,递归比较找到的各子目录

2.9 cp [选项] 源文件或目录 目标文件或目录

功能

  • 复制目录或文件到目标目录或文件

选项(部分)

  • -a,递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接和文件属性不变。它等效于-dpR
  • -d,复制时保留文件链接
  • -f,如果现存的目标文件不能打开,则删除它并且重试一次
  • -i,与-f选项不同,在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。
  • -p,除复制源文件的内容外,还将其修改时间和存取权限也复制到新文件中
  • -r,-R,递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置
  • -l,不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出

示例

$ cp -r /home/software/nginx /usr/local/ #递归复制 nginx 目录及文件到 /usr/local 路径下

2.10 mv [选项] 源文件或目录 目标文件或目录

功能

  • 移动文件从所属目录到目标目录;可用作文件、目录重命名

选项(部分)

  • -i,交互式操作;即命令执行过程中遇到文件覆盖,会询问用户是否继续
  • -f,禁止交互操作;文件覆盖式不给提示。

示例

$ mv nginx-1.8.1 nginx #重命名

2.11 rm [选项] 文件列表

功能

  • 删除目录和文件

选项(部分)

  • -d,删除目录,不管它是否为空(仅超级用户才可使用)
  • -f,忽略不存在的文件,并且不给出提示信息
  • -r,递归地删除指定目录及其下属的各级子目录和相应的文件
  • -i,交互式地删除文件

示例

这个还需要示例🐎

2.12 wc [选项] 文件

功能

  • 统计指定文件的字节数、字数、行数,并将统计结果显示出来

选项(部分)

  • -c, 统计字节数
  • -l,统计行数
  • -w,统计字数

2.13 sort 命令:sort [选项] 文件列表

功能

  • 用来对文本文件的各行进行排序;排序比较是依据从输入文件的每一行中提取的一个或多个排序关键字进行的

选项(部分)

  • -m,对已经排好序的文件统一进行合并,但不做排序
  • -c,检查给定的文件是否已排好序,若没有,则显示出错消息,不做 排序
  • -u,与-c选项一起用,严格地按顺序检查;否则,对排序后的重复行只输出第一行
  • -o,将排序输出放到该文件名所指定的文件中。如果该文件不存在,则创建一个新文件

2.14 uniq 命令:uniq [选项] [输入文件[输出文件]]

功能

  • 读取输入文件,比较相邻的行,去掉重复的行,只留下其中的一行

选项(部分)

  • -c,显示输出时,在每行的行首加上该行在文件中出现的次数
  • -d,只显示重复行
  • -f,忽略比较前N个字段
  • -s,忽略比较前N个字符
  • -u,只显示文件中不重复的行

2.15 grep 命令:grep [选项] 文件名

功能

  • 该命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串模式的所有行;常与管道"|"一起使用,示例:ps -ef | grep nginx

选项(部分)

  • -E,将查找模式解释成扩展的正则表达式
  • -F,将查找模式解释成单纯的字符串
  • -b,在输出的每一行前面显示包含匹配字符串的行在文件中的位置,用字节偏移量来表示
  • -c,只显示文件中包含匹配字符串的行的总数
  • -f,从文件FILE中获取模式,每行一个。空文件不含模式,因此,不做匹配
  • -i,匹配比较时不区分字母的大小写
  • -r,以递归方式查询目录下的所有子目录中的文件
  • -n,在输出包含匹配模式的行之前,加上该行的行号(文件首行的行号为1)
  • -v,只显示不包含匹配字符串的文本行
  • -x,只显示整个行都严格匹配的行

2.16 find 命令:find 路径 [选项] 文件名

功能

  • 在指定目录下查找文件,输出显示文件信息;find 会从硬盘中查找文件

选项(部分)

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
  • -amin n : 在过去 n 分钟内被读取过
  • -anewer file : 比文件 file 更晚被读取过的文件
  • -atime n : 在过去n天内被读取过的文件
  • -cmin n : 在过去 n 分钟内被修改过
  • -cnewer file :比文件 file 更新的文件
  • -ctime n : 在过去n天内被修改过的文件
  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
  • -name name, -iname name : 文件名称符合 name 的文件。- iname 会忽略大小写
  • -size n : 文件大小是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
  • -type c : 文件类型是 c 的文件。(d: 目录,c: 字型装置文件,b: 区块装置文件,p: 具名贮列,f: 一般文件,l: 符号连结,s: socket)

示例

$ find . -type f #列出当前目录及子目录中的一般文件

$ find / -name nginx #列出文件名称符合 nginx 的文件

2.17 locate 命令:locate 文件

功能

  • 从资料库 /var/lib/slocate 中查找文件

选项(部分)

  • -d,配置数据库,locate 预设数据库在 /var/lib/slocate 目录下的 slocate.db
  • -u,更新数据库,执行命令手工更新;一般系统会自动更新

2.18 whereis 命令:whereis [选项] 文件

功能

  • 查找二进制文件,源代码文件或帮助手册;不用于查询普通文件

选项(部分)

  • -b,只查找二进制文件
  • -m,只查找说明文件
  • -s,只查找原始代码文件
  • -u,查找不包含指定类型的文件
  • -f,不显示文件名前的路径名称

3. 目录操作命令

3.1 mkdir [选项] 目录名

功能

  • 创建目录

选项(部分)

  • m,对新建目录的存取权限设置为MODE,存取权限用给定的八进制数字表示
  • p,可一次建立多个目录,即如果为新建目录所指定的路径中有些父目录尚不存在,此选项可以自动建立它们

3.2 rmdir [选项] 目录名

功能

  • 删除目录及子目录

选项(部分) -p,递归删除目录,当子目录删除后其父目录为空时,也一同被删除。如果有非空的目录,则该目录保留下来;子目录为空目录时才会被删除

3.3 cd 目录

功能

  • 切换目录,改变工作目录

3.4 pwd

功能

  • 获取当前所在工作目录的绝对路径

3.5 ls [选项] 目录或文件

功能

  • 如果给出的参数是目录,该命令将列出其中所有子目录与文件的信息;如果给出的参数是文件,将列出有关该文件属性的一些信息;比如选项为 -l 时,信息依次为文件类型与权限、链接数、文件主、文件组、文件大小、建立或最近修改的时间、文件名

选项(部分)

  • -a,显示指定目录下所有子目录和文件,包括以“.”开头的隐藏文件(如 .cshrc)
  • -C,分成多列显示各项
  • -d,如果参数是目录,则只显示它的名字(不显示其内容)
  • -F,在列出的文件名后面加上不同的符号,以区分不同类型的文件。可以附加的符号有: / * @ | =
  • -i,输出的第一列显示文件的I节点号
  • -l,以长格式显示文件的详细信息

3.6 ln [选项] 源文件 目标文件

功能

  • 创建链接,硬链接或符号链接;符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的

选项

  • -s 建立符号链接,即软连接

4. 用户和权限

用户

  • owner 文件主
  • group 同组用户
  • others 可以访问系统的其他用户
  • root 超级用户

权限

  • r 读权限
  • w 写权限
  • x 可执行或查找权限

4.1 chmod 命令:[who] 操作符号 [权限] 文件名

功能

  • 文件权限设置;操作对象 who 可以是 u、g、o、a 中任意一个或任意组合;操作符号可以是 +、-、= 分别表示增加权限,去除权限,权限设置;权限可以是 r、w、x、X、s、t 任意组合 示例
  • chmod 权限 文件名 权限可以是3位八进制数字,分别标识文件主权限,组用户权限,其他用户权限;

chmod 777 nginx.conf

4.2 chgrp 命令:chgrp [选项] 组名 文件或目录名

功能

  • 设置指定目录或文件的用户组

选项

  • -R,递归改变目录及子目录,子文件的用户组

4.3 chown [选项] 用户或组 文件或目录名

功能

  • 设置指定目录或文件的所有者或所属组

选项

  • -R,递归目录及子目录变更文件主
  • -v,详细列出命令执行信息

5. 进程命令

5.1 ps 命令:ps [选项]

功能

  • 查看进程状态及信息

选项(部分)

  • -a,显示进程与 tty 有关的进程的信息
  • -e,显示所有的进程
  • -f,显示进程的所有信息
  • -l,以长格式显示信息
  • r,显示正在运行的进程
  • u,显示面向用户的格式

示例 展示进程信息包含 nginx 的进程

ps -ef | grep nginx

5.2 kill 命令:kill [选项] 进程号

功能

  • 向进程发送指定信号来终止进程的运行

选项

  • -s,指定需要发送的信号,既可以是信号名(如kill),也可以是对应信号的号码(如9)
  • -p,指定kill命令只是显示进程的PID(进程标志号),并不真正发出结束信号
  • -l,显示信号名称列表,可在文件 /usr/include/linux/signal.h 中查看

5.3 sleep 命令:sleep 时间值

功能

  • 让进程睡眠指定的时间,时间值单位为秒

5.4 uptime 命令:uptime [选项]

功能

  • 查看负载

示例

$ uptime 15:57:19 up 7 days, 4:47, 1 user, load average: 0.00, 0.02, 0.69

表示系统当前时间: 15:57:19

系统正在运行: up

已运行时长: 7days,4:47

负载信息: 近1分钟负载 0.00,近5分钟负载0.02,近15分钟负载0.69

(看系统CPU内核,比如双核,则负载标准值为2;0.69 < 2 系统存在空闲CPU,值为2则表示负载满了,值大于2则表示CPU无空闲需要等待CPU)

5.5 telnet 命令:telnet [选项] IP Socket

功能

  • 远端登入;系统不支持该命令则需要通过 yum 下载安装

选项(部分)

  • -a 尝试自动登入远端系统
  • -8 允许使用8位字符资料,包括输入与输出
  • -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机

6. 压缩与解压缩命令

6.1 gizp 命令:gzip [选项] 文件

功能

  • 对文件进行压缩与解压缩

选项(部分)

  • -c,将输出写到标准输出上,并保留原有文件
  • -d,将被压缩的文件进行解压缩
  • -l,对每个压缩文件,列出以下字段: compressed size: 压缩文件的大小 uncompressed size: 未压缩文件的大小 ratio : 压缩比(未知时为0.0%) uncompressed_name: 未压缩文件的名字
  • -r,递归地查找指定目录并压缩其中的所有文件或者是解压缩
  • -t,测试,即检查压缩文件的完整性
  • -v,对每个压缩文件和解压缩文件,显示其文件名和压缩比
  • -num,用指定的数字num调整压缩速度,其中-1或--fast表示最快的压缩方法(低压缩比),-9或--best表示最慢的压缩方法(高压缩比) 。系统默认值为-6

6.2 unzip 命令:unzip [选项] 文件

功能

  • 对 zip 或 war 格式的文件进行解压缩

选项(部分)

  • -x,文件列表 解压缩文件,但对文件列表中所指定的文件并不做解压缩
  • -v,如果没有给出压缩文件名,则只显示有关unzip的诊断信息,如该工具的发行日期、版本、特殊编译选项等;如果其后带有压缩文件名,且没有其它选项,则列出压缩文件的有关信息,但不做解压缩
  • -t,检查压缩文件的完整性
  • -d,目录 把压缩文件解压缩后放到指定的目录中
  • -z,只显示压缩文件的注释
  • -n,不覆盖已经存在的文件
  • -o,允许覆盖已经存在的文件
  • -j,废除压缩文件原来的目录结构,将所有文件解压缩之后放到同一目录之下

示例

unzip -oq ROOT.war -d ROOT #解压 ROOT.war 到 ROOT

unzip data1 -x joe #从 data1.zip 中提取除 joe 之外的所有文件

unzip -p foo | more #通过管道将foo.zip的内容发送到程序more

6.3 tar 命令:tar [选项] 文件

功能

  • 对tar 文件解压缩

选项(部分)

  • -A,添加一个 tar 存档到另一个压缩存档
  • -c,创建一个压缩存档
  • --diff, --compare 比对存档和系统中文件的差异
  • --delete 从存档中删除
  • -r,追加文件到归档文件的末尾
  • -u,仅追加归档文件中副本更新的文件
  • -x,从压缩存档中提取文件
  • -z,过滤 gzip 压缩存档

示例

tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.

tar -tvf archive.tar # List all files in archive.tar verbosely.

tar -xf archive.tar # Extract all files from archive.tar.

7. 软件包管理命令

7.1 yum 命令:yum [选项] 操作 安装包

功能

  • 软件包下载,更新,删除

选项

  • -y,过程中所有交互,默认为 yes
  • -q,不显示安装过程

操作

  • check-update,检查更新,列出需要更新的软件清单
  • update,更新
  • install,安装
  • remove,移除删除
  • search,查找软件包

示例

yum - y install lrzsz

7.2 wget 命令:wget [选项] url

功能

  • 软件包下载

选项(部分)

  • -o,将消息记录到指定文件
  • -a,将消息追加到指定文件
  • -q,无输出
  • -F,将输入文件视为HTML
  • -t,设置重试次数(0为无限制)
  • -T,设置超时

示例

wget http://pecl.php.net/get/mongodb-1.5.2.tgz

7.3 lrzsz 命令:rz 上传,sz 下载

功能

  • SSH 交互时,rz 命令支持本机文件上传到 Linux 服务器,sz 命令支持下载服务器文件到本机;系统不支持该命令则需要通过 yum 下载安装

Power By niaonao, The End

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!