【Linux基础-2】Linux的基本指令
- 1、指令与选项
- 2、基础指令
-
- [2.1 ls指令 (列出文件/文件夹)](#2.1 ls指令 (列出文件/文件夹))
- [2.2 pwd指令 (打印当前工作目录)](#2.2 pwd指令 (打印当前工作目录))
- [2.3 cd命令 (切换目录)](#2.3 cd命令 (切换目录))
- [2.4 mkdir指令 (创建目录)](#2.4 mkdir指令 (创建目录))
- [2.5 touch指令 (创建文件)](#2.5 touch指令 (创建文件))
- [2.6 cp指令 (复制文件/文件夹)](#2.6 cp指令 (复制文件/文件夹))
- [2.7 mv指令 (移动、重命名文件/文件夹)](#2.7 mv指令 (移动、重命名文件/文件夹))
- [2.8 rm指令(移除、删除文档)](#2.8 rm指令(移除、删除文档))
- [2.9 vim 指令 (打开文件)](#2.9 vim 指令 (打开文件))
- [2.10 输出重定向](#2.10 输出重定向)
- [2.11 cat 指令(打开/合并文件)](#2.11 cat 指令(打开/合并文件))
- 3、进阶指令
-
- [3.1 df 指令(查看磁盘空间)](#3.1 df 指令(查看磁盘空间))
- [3.2 free 指令(查看内存使用情况)](#3.2 free 指令(查看内存使用情况))
- [3.3 head 指令(查看一个文件的前n行)](#3.3 head 指令(查看一个文件的前n行))
- [3.4 tail指令(查看一个文件的后n行)](#3.4 tail指令(查看一个文件的后n行))
- [3.5 less指令(查看文件内容)](#3.5 less指令(查看文件内容))
- [3.6 wc指令(统计文件内容信息)](#3.6 wc指令(统计文件内容信息))
- [3.7 date指令(操作时间)](#3.7 date指令(操作时间))
- [3.8 cal指令(操作日历)](#3.8 cal指令(操作日历))
- [3.9 clear/ctrl +L指令(清除终端信息)](#3.9 clear/ctrl +L指令(清除终端信息))
- [3.10 管道 |](#3.10 管道 |)
- 4、高级指令
-
- [4.1 hostname指令(操作服务器主机名)](#4.1 hostname指令(操作服务器主机名))
- [4.2 id指令(查看一个用户的一些基本信息)](#4.2 id指令(查看一个用户的一些基本信息))
- [4.3 whoami指令(获取当前登录的用户名)](#4.3 whoami指令(获取当前登录的用户名))
- [4.4 ps -ef指令(查看服务器的进程信息)](#4.4 ps -ef指令(查看服务器的进程信息))
- [4.5 top指令(查看服务器进程占的资源)](#4.5 top指令(查看服务器进程占的资源))
- [4.6 du -sh指令(查看目录真实大小)](#4.6 du -sh指令(查看目录真实大小))
- [4.7 find指令(用于查找文件)](#4.7 find指令(用于查找文件))
- [4.8 service指令(控制一些软件的服务启动/停止/重启)](#4.8 service指令(控制一些软件的服务启动/停止/重启))
- [4.9 kill指令(杀死进程)](#4.9 kill指令(杀死进程))
- [4.10 ifconfig指令(网卡操作)](#4.10 ifconfig指令(网卡操作))
- [4.11 reboot指令(重启计算机)](#4.11 reboot指令(重启计算机))
- [4.12 shutdown指令(关机)](#4.12 shutdown指令(关机))
- [4.13 uptime指令(输出持续在线时间)](#4.13 uptime指令(输出持续在线时间))
- [4.14 uname指令(获取计算机操作系统相关信息)](#4.14 uname指令(获取计算机操作系统相关信息))
- [4.15 netstat -tnlp指令 (查看网络连接状态)](#4.15 netstat -tnlp指令 (查看网络连接状态))
- [4.16 man指令(帮助手册)](#4.16 man指令(帮助手册))
- 5、练习题
1、指令与选项
- 什么是Linux的指令:指在Linux终端(命令行)中输入的内容就称之为指令。
- 一个完整的指令的标准格式:Linux通用的格式
#指令主体 [选项] 操作对象- 一个指令可以包含多个选项
- 操作对象也可以是多个
- 例如:需要让张三同学帮忙去楼下小卖铺一瓶农夫山泉和清风餐厅纸,在这个指令中"买东西"是指令的主体,买的水和餐巾纸是操作的对象,农夫山泉、清风是操作的选项。
2、基础指令
2.1 ls指令 (列出文件/文件夹)
-
含义:ls(list)
-
用法1:#ls 列出当前工作目录下的所有文件/文件夹的名称。
-
用法2:
#ls 路径列出指定路径下的所有文件/文件夹的名称。- 关于路径(重要):路径 可以分为两种路径:相对路径、绝对路径。
- 相对路径:相对首先得有一个参照物(一般就是当前的工作路径)
- 相对路径的写法:在相对路径中通常会用到2个符号"./"【表示当前目录下】、". ./"【上一级目录下】
- 绝对路径:绝对路径不需要参照物,直接从跟"/"开始寻找对应路径;
-
用法3:
#ls 选项 路径在列出的指定路径下的文件/文件夹的名称,并以指定的格式进行显示。#ls -l 路径、#ls -la 路径- 选项解释:
-l:表示list,表示以详细列表的形式进行展示-a:表示显示所有的文件/文件夹(包括了隐藏文件/文件夹)

上述列表中的第1列字符表示文档的类型,其中"-"表示该行对应的文档类型为文件,"d"表示文档类型为文件夹。

在Linux中隐藏文档一般都是以"."开头。
-
用法4:
#ls -lh 路径列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示(显示文件/文件夹大小)。

2.2 pwd指令 (打印当前工作目录)
- 含义:
#pwd(print working directory,打印当前工作目录)。
2.3 cd命令 (切换目录)
- #cd (change directory,改变目录) 用于切换当前目录
- 语法:
#cd 路径 - 案例:当前在"/"下,需要使用绝对路径切换到/usr/local。

案例:在当前/usr/local下,需要使用相对路径切换目录到home目录下的linux123

- 补充:
- 在Linux中有一个特殊的符号"~",表示当前用户的家目录。切换的方式:
#cd ~
- 在Linux中有一个特殊的符号"~",表示当前用户的家目录。切换的方式:
2.4 mkdir指令 (创建目录)
- #mkdir (make directory,创建目录)
- 语法1:
#mkdir 路径【路径,可以是文件夹名称也可以是包含文件名称的一个完整路径】 - 案例:在当前路径下创建出目录"yunwei"
#mkdir yunwei - 注意:ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限。

- 语法2:
#mkdir -p 路径当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错。

- 语法3:
#mkdir 路径1 路径2 路径3 ...创建多个文件夹
2.5 touch指令 (创建文件)
- #touch 创建文件
- 语法1:
#touch 文件路径【路径可以是直接的文件名也可以是路径】 - 案例:使用touch来创建一个文件,命名为Linux1234

案例:使用touch来同时创建多个文件#touch Linux1.txt Linux2.txt
案例:使用touch来在家目录中创建文件#touch /home/linux123/linux.txt
2.6 cp指令 (复制文件/文件夹)
- 指令:#cp (copy,复制)复制文件/文件夹到指定的位置
- 语法:
#cp 被复制的文档路径 文档被复制到的路径 - 案例:使用cp命令来复制一个文件
# cp linux1.txt /home/liunux123/linux1.txt
注意:Linux在复制过程中是可以重新对新文件的位置进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。 - 案例:使用cp命令来复制一个文件夹

注意:当使用cp命令进行文件夹复制操作的时候需要添加选项"-r"【-r表示递归复制】,否则目录将被忽略。
2.7 mv指令 (移动、重命名文件/文件夹)
- 指令:mv(move,移动,剪切)移动文档到新的位置
- 语法:
#mv 需要移动的文档路径 需要保存的位置路径 - 案例:使用mv命令移动一个文件夹

补充:在Linux中重命名的命令也是mv,语法和移动语法一样

2.8 rm指令(移除、删除文档)
- 指令:rm(remove,移除、删除)移除/删除文档
- 语法:
#rm 选项 需要移除的文档路径 - 选项:-f :force,强制删除,不提示是否删除; -r:表示递归
- 案例:删除一个文件

在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入"y/yes",否则输入"n/no"按下回车。
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加" -f ",表示force(强制)。

案例:删除一个文件夹

注意:删除一个目录的时候需要做递归删除,并且一般也不需要删除确认询问,所以移除目录的时候一般需要使用-rf选项。
案例:删除多个文档

案例:要删除一个目录下有公共特性的文档,例如都以Linux开头

其中 * 称之为通配符,意思是表示任意的字符,Linux*,则表示只要文件以Linux开头,后续字符则不管。
2.9 vim 指令 (打开文件)
- 指令:vim(vim是一款文本编辑器)打开一个文件(可以不存在,也可以存在)
- 语法:
#vim 文件的路径 - 案例:使用vim来打开文件

推出打开的文件:在没有按下其他命令的时候,按下shift+英文冒号,输入q,按下回车即可退出。
2.10 输出重定向
-
一般命令行的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到输出重定向技术。
-
>: 覆盖输出,会覆盖掉原先的文件内容
>>: 追加输出,不会覆盖掉原始文件内容,会在原始内容末尾继续添加。
-
语法:
#正常执行的命令 > / >> 文件的路径(注意:文件可以不存在,不存在则新建) -
案例:使用覆盖重定向,保存ls -la 的结果,保存到当前目录下的ls.txt

-
案例:使用追加重定向,保存ls -la 的执行结果到ls.txt文件中

2.11 cat 指令(打开/合并文件)
- 作用1:cat有直接打开一个文件的功能
- 语法:
#cat 文件的路径
- 语法:
- 作用2:cat还可以对文件进行合并
- 语法:
#cat 待合并的文件路径1 待合并的文件路径2 ... 文件路径n > 合并之后的文件路径
- 语法:
- 案例:合并两个文件,并保存到一个文件中【配合输出重定向使用】

3、进阶指令
3.1 df 指令(查看磁盘空间)
- 作用:查看磁盘空间
- 语法:
#df -h-h 表示以可读性较高的形式展示大小

3.2 free 指令(查看内存使用情况)
- 作用:查看内存使用情况
- 语法:
#free -m-m表示以mb为单位查看

剩余的真实的可用内存为1469M。
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3.3 head 指令(查看一个文件的前n行)
- 作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
- 语法:
#head -n 文件路径【n表示数字】

3.4 tail指令(查看一个文件的后n行)
- 作用1:查看一个文件的末行,如果n不指定默认显示后10行
- 语法:
#tail -n【n同样表示数字】

- 语法:
- 作用2:可以通过tali指令来查看一个文件的动态变化【变化的内容不能是用户手动增加的】。
- 语法:
#tail -f 文件路径 - 该命令一般用于查看系统日志比较多。
- 退出的时候按下"q"键
- 语法:
3.5 less指令(查看文件内容)
- 作用:查看文件,以较少的内容进行输出,按下辅助功能键查看更多(数字、回车、空格、上下方向键)。
- 语法:
#less 需要查看的文件路径

3.6 wc指令(统计文件内容信息)
- 作用:统计文件内容信息(包括行数、单词数、字节数)
- 语法:
#wc -lwc 需要统计的文件路径- -l:表示lines,行数
- -w:表示words,单词数 依照空格来判断单词数量
- -c:表示bytes,字节数
3.7 date指令(操作时间)
-
作用:表示操作时间日期(读取、设置)
-
语法1:
#date输出的形式:2025年 12月 12日 星期五 03:31:35 CST -
语法2:
#date +%F(等价于#date "+%Y-%m-%d") 输出形式:2025-12-24 -
语法3:
#date "+%F %T"(等价于#date "+%Y-%m-%d %H:%M:%S")引号表示让"年月日与时分秒"成为一个不可分割的整体 -
语法4:
#date -d "-1day" "+%Y-%m-%d %H:%M:%S"获取之前或者之后的某个时间 (备份)- 符号的可选值:+(之后)或者 -(之前)
- 单位的可选值:day(日)、month(月)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
3.8 cal指令(操作日历)
- 作用:用来操作日历的
- 语法1:
#cal等价于#cal -1直接输出当前月份的日历 - 语法2:
#cal -3表示输出上个月+本月+下个月的日历 - 语法3:
#cal -y 年份表示输出某一个年份的日历
3.9 clear/ctrl +L指令(清除终端信息)
- 作用:清除终端中已经存在的命令和结果(信息)
- 语法:
clear或者快捷键:ctrl+L - 需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息隐藏到了最上面,通过滚动条继续查看以前的信息。
3.10 管道 |
- 管道符:|
- 作用:管道一般可以用于"过滤","特殊","扩展处理"
- 语法: 管道不能单独使用,必须配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
- 过滤案例:需要通过管道查询出根目录下包含"y"字母的文档名称

针对上面这个命令说明:
a.以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
b.grep指令:主要用于过滤
-
特殊用法案例:
#cat ls.txt |grep less需要通过管道的操作方法来实现less指令的等价效果(了解)。 之前通过less查看一个文件,可以#less 路径。现在通过管道还可以:#cat 路径 | less -
扩展处理案例:来统计某个目录下的文档的总个数?

4、高级指令
4.1 hostname指令(操作服务器主机名)
- 作用:操作服务器的主机名(读取、设置)
- 语法1:
#hostname含义:表示输出完整的主机名 - 语法2:
#hostname -f含义:表示输出当前主机名中的FQDN(全限定域名)

4.2 id指令(查看一个用户的一些基本信息)
- 作用:查看一个用户的一些基本信息(包括用户id,用户组id,附加组id),该指令如果不指定用户则默认当前用户。
- 语法1:
#id默认显示当前执行该命令的用户的基本信息 - 语法2:
#id 用户名显示指定用户的基本信息

- 验证上述信息是否正确?
- 验证用户信息:通过文件/etc/passwd

- 验证用户组信息:通过文件/etc/group

- 验证用户信息:通过文件/etc/passwd
4.3 whoami指令(获取当前登录的用户名)
- 作用:"我是谁?"显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
- 语法:
#whoami

4.4 ps -ef指令(查看服务器的进程信息)
- 指令:
#ps -ef - 作用:主要是查看服务器的进程信息
- 选项含义:
- -e:等价于"A",表示列出全部的进程
- -f:显示全部的列

列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程;
C:CPU的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起改进称的设备识别符号,如果显示"?"则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
- 案例:在ps的结果中过滤出想要查看的进行状态
#ps -ef|grep gnome-panel - 语法:
#ps -ef|grep 进行名称

查看火狐浏览器的进程

4.5 top指令(查看服务器进程占的资源)
- 作用:查看服务器的进程占的资源
- 语法:
#top实时动态的显示 - 退出命令:按下q键
- 进程表头含义
- PID:进程id;
- USER:该进程对应的用户;
- PR:优先级;
- NI:用户进程空间内改变过优先级的进程占用CPU百分比;
- VIRT:虚拟内存;
- RES:常驻内存;
- SHR:共享内存;
- 计算一个进程实际使用的内存=常驻内存(RES)-共享内存(SHR)

- S:表示进程的状态(sheeping,其中S表示睡眠,R表示运行);
- %CPU:表示CPU的占用百分比;
- %MEM:表示内存的占用百分比;
- TIME+:执行的时间;
- COMMAND:进程的名称或者路径;
- 在运行top的时候,可以按下方便的快捷键:
- M: 表示将结果按照内存(MEM)从高到低进行降序排列;
- P:表示将结果按照CPU的使用率从高到低进行降序排列;
- 1:当服务器拥有多个CPU的时候可以使用"1"快捷键来切换是否显示CPU的详细信息。
4.6 du -sh指令(查看目录真实大小)
- 作用:查看目录的真实大小
- 语法:
#du -sh 目录路径 - 选项含义:
- -s:summaries,只显示汇总的大小
- -h:表示以较高可读性的形式进行显示
案例:统计"/root/yunwei"目录的实际大小

案例:统计"/etc"目录实际大小

4.7 find指令(用于查找文件)
- 作用:用于查找文件(其参数有55个之多)
- 语法:
#find 路径范围 选项 选项的值- -name: 按照文档名称进行搜索(支持模糊搜索)
- -type:按照文档的类型进行搜索
- 文档类型:"-"表示文件(在使用find的时候需要用f来替换),"d"表示文件夹
- 案例1:使用find来搜索http.conf

案例2:搜索etc目录下所有的conf后缀文件


案例3:使用find来搜索/etc/sane.d/目录下所有的文件#find /etc/sane.d/ -type f


案例4:使用find来搜索/etc/目录下所有的文件夹 #find /etc -type d

4.8 service指令(控制一些软件的服务启动/停止/重启)
- 作用:用于控制一些软件的服务启动/停止/重启
- 语法:
#service 服务名 start/stop/restart - 例如:需要启动本机安装的Apache(网站服务器软件)其服务名httpd,启动命令:
#service httpd start


4.9 kill指令(杀死进程)
- 作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
- 语法:
kill 进程PID(语法需要配合ps一起使用) - 案例:需要kill掉Apache的进程

与kill命令作用相似但是比kill更好用的杀死进程的命令:killall
语法:#killall 进程名称

4.10 ifconfig指令(网卡操作)
- 作用:用于操作网卡相关的指令
- 简单语法:
#ifconfig(获取网卡信息)

Eth0:表示Linux中的一个网卡,eth0是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也就是一个网卡名称。
注意:inet addr 就是网卡的ip地址。
4.11 reboot指令(重启计算机)
- 作用:重新启动计算机
- 语法1:
#reboot重启 - 语法2:
#reboot -w模拟重启,但是不重启(只写关机与开机的日志信息)
4.12 shutdown指令(关机)
- 作用:关机 (慎用)
- 语法1:
#shutdown -h now "关机提示"(立即关机) 或者#sheutdown -h 15:25 "关机提示"(定时关机) - 案例:设置Linux系统关机时间在12:00

如果想要取消关机计划的话,则可以按照一下方式去尝试:
a、针对CentOS7.x之前的版本:ctrl+c
b、针对CentOS7.x(包含)之后的版本:#shutdown -c
除了shutdown关机以外,还有以下几个关机命令:#init 0、#halt、#poweroff
4.13 uptime指令(输出持续在线时间)
- 作用:输出计算机的持续在线时间(计算机从开机以来到现在运行的时间)
- 语法:
#uptime

4.14 uname指令(获取计算机操作系统相关信息)
- 作用:获取计算机操作系统相关信息
- 语法1:
#uname获取操作系统的类型 - 语法2:
#uname -a获取系统的全部信息(类型、全部主机名、内核版本、发布时间、开源计划)

4.15 netstat -tnlp指令 (查看网络连接状态)
- 作用:查看网络连接状态
- 语法:
#netstat -tnlp

选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
4.16 man指令(帮助手册)
- 作用:manual,手册(包含了Linux中全部命令手册,英文)
- 语法:
#man 命令(退出按下q键) - 案例:通过man命令查询cp指令的用法 #man cp
5、练习题
- 1、如何通过命令行重启linux操作系统? #reboot
- 2、如何在命令行中快速删除光标前/后的内容? 前:ctrl+u 后:ctrl+k
- 3、如何删除/tmp下所有A开头的文件? #rm -f /tmp/A*
- 4、系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下? #cp /etc/passwd /tmp/passwd
- 5、如何查看系统最后创建的3个用户? #tail -3 /etc/passwd
- 6、什么命令可以统计当前系统中一共有多少账户? #wc -l /etc/passwd #cat /etc/passwd|wc -l
- 7、如何创建 /tmp/test.conf文件? #touch /tmp/test.conf
- 8、如何通过vim编辑打开 /tmp/test.conf? #vim /tmp/test.conf
- 9、如何查看 /etc/passwd的头3行和尾3行? #head -3 /etc/passwd ; #tail -3 /etc/passwd
- 10、如何一次性创建目录 /text/1/2/3/4? #mkdir -p /text/1/2/3/4
- 11、如何快速的返回到当前账户的家目录? #cd ~; #cd
- 12、如何查看/etc 所占的磁盘空间? #du -sh /etc
- 13、如何删除/tmp下所有的文件? #rm -rf /tmp/*
- 14、尝试启动Apache的服务,并且检查是否启动成功? #service httpd start
- 15、使用已学命令杀死Apache进程。 #killall httpd