在深入学习后端进阶技术时,我们经常会和Linux系统打交道,因为Linux是目前应用最广泛的服务器操作系统,能长时间稳定地跑我们编写的程序代码,几乎成为程序代码运行的最佳系统环境。相较于windows系统,它短小而精悍,但是很多东西都需要使用指令来控制。
而屏幕面前的你,是否还在为看不懂Linux指令而困惑呢?
今天,我将向大家分享一些我自己在学习操作Linux系统时,经常用到的指令,并结合指令的运行效果图来介绍每条指令的作用。
1.基础指令
2.进阶指令
3.高级指令
可以使用侧边栏的目录来查阅想看的指令哦!
指令:在Linux终端(命令行)中输入的内容。
#指令主体(空格) [选项](空格) [操作对象]
一个指令可以包含多个选项、多个操作对象。 选项可以连着写,如-l,-a,-la
1.含义:list(列表)
2.作用:列出当前工作目录下的所有文件/文件夹的名称
3.用法:
(1)#ls 路径
显示指定目录下的所有文件/文件夹的名称
不填路径的话,默认为当前的工作目录
示例:
关于路径(非常重要):
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。
绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;
在linux终端中,不输入路径, 默认为当前工作目录
(2)#ls 选项 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
-lh:以列表的形式并且在显示文档大小的时候以可读性较高的形式显示,默认以字节B为单位
常见的语法:
#ls -l 路径
以详细列表的形式展示指定路径下的所有文件/文件夹名称
简写为 #ll
注意:ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限。
)
#ls -la 路径
以列表形式显示所有的文件/文件夹(包含了隐藏文件/文件夹)
在Linux中隐藏文档一般都是以“.”开头。
#ls -lh 路径
列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示
4.用法总结(以下忽略路径):
#ls
#ls -l (常用) 简写为 #ll
#ls -la
#ls -lh
1.作用:print working directory,打印当前工作目录
2.用法:
#pwd
1.作用:change directory,改变目录,进入用户输入的目录
2.用法:
#cd 路径
1.作用: make directory,创建目录
2.用法:
(1)#mkdir 路径
【路径,可以是文件夹名称也可以是包含名称的一个完整路径】
#mkdir ./test
在当前路径下创建出目录“test”
(2)#mkdir -p 路径
当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
(3)#mkdir 路径1 路径2 路径3
创建多个文件或文件夹
#mkdir ./test1 ../etc/test2
3.用法总结
#mkdir 路径
#mkdir -p 路径
#mkdir 路径1 路径2 路径3
1.作用:创建文件
2.用法:
#touch 文件路径1 【文件路径2 【文件路径3 ....】】
示例:
#touch ./test.txt
在当前文件夹下创建test.txt文件
1.作用:copy,复制
2.用法:
#cp 被复制的文档路径 文档被复制到的路径
示例:
(1)复制文件
#cp ./test.txt ../test.txt
将当前目录的test.txt文件复制到上个工作目录中
注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
(2)复制文件夹
#cp -r ./test ../test
将当前工作目录的test文件夹复制到上一个工作目录下
注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r” -recursive
【-r表示递归复制】,否则目录将被忽略
1.作用:move,移动,剪切
2.用法:#mv 需要移动的文档路径 需要保存的位置路径
注意: 使用#mv移动文件语法格式和移动文件夹相同,移动文件夹不需要加 -r
示例:
#mv ./test ../test
将当前目录的test文件夹剪切移动到上一个工作目录
重命名操作也是使用 #mv
#mv ./test.txt ./test1.txt
将当前目录的test.txt文件更名为test1.txt
1.作用:remove,移除、删除
2.用法:#rm 选项 需要移除的文档路径
3.选项:
-f:force,强制删除,否则会每个文件都询问是否删除
-r:表示递归,移除文件夹的时候需要使用
示例:
#rm ./test.txt
删除当前目录的text.txt文件,没加-f选项,会询问是否确定删除
#rm -f ./test.txt
强制删除当前目录的text.txt文件,不会询问是否确定删除
#rm -rf ./test
强制删除当前目录的text.txt文件夹,一定要加-r,否则会报错
不加-r报错示例:
4.用法总结
#rm 文件路径
#rm -f 文件路径
#rm -rf 文件夹路径
#rm 文件路径1 [文件路径2 [文件路径3.....]] ---删除多个文件
1.作用:打开并进入一个文件(文件可以不存在,会自动创建)
2.用法:#vim 文件的路径
示例:
#vim ./test.txt
打开进入当前目录下的test.txt文件
1.作用:将一些命令的执行结果保存到文件中
2.用法:#正常执行的指令 (> 或 >>) 文件的路径
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
示例:
#ls -la > ls.txt
使用覆盖重定向,将 ls -la 的执行结果,保存到当前目录下的ls.txt
#ls -la >> ls.txt
使用追加重定向,将 ls -la 的执行结果追加到ls.txt中
1.作用:
(1)直接读取一个文件,并把内容显示在终端上
(2)对两个文件进行合并
2.用法:
(1)#cat 文件的路径
(2)#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
示例:
#cat test.txt
#cat ./test1.txt ./test2.txt > ./test3.txt
注意:这里只能使用覆盖 >,若使用追加>>, 效果等于>
示例如下:
1.作用:查看磁盘的空间
2.用法:
#df -h
-h表示以可读性较高的形式展示大小
1.作用:查看内存使用情况
2.用法:
#free -m
-m表示以mb为单位查看
上图中,剩余的真实可用的内存为1665mb。
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
1.作用:查看一个文件的前n行,如果不指定n,则默认显示前10行
2.用法:
#head -n 文件路径 【n表示数字】
1.作用:查看一个文件的末尾n行,如果n不指定默认显示后10行
2.用法:
#tail -n 文件的路径 n同样表示数字
也可通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】
一般用来查看日志 语法:#tail -f 文件路径
1.作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)来查看更多
2.用法:
#less 需要查看的文件路径
退出查看只需要按下q键即可。
1.作用:统计文件内容信息(包含行数、单词数、字节数)
2.用法:
#wc -lwc 需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量(不支持统计中文)
-c:表示bytes,字节数
1.作用:表示操作时间日期(读取、设置)
2.用法:
语法1:#date
输出的形式:2022年 2月 12日 星期六 15:54:28
语法2:#date +%F (等价于#date “+%Y-%m-%d” )
输出形式:2022-02-12
语法3:#date “+%F %T” (等价操作#date “+%Y-%m-%d %H:%M:%S”)
输出的形式:2022-02-12 15:54:28
语法4:获取之前或者之后的某个时间
#date -d “-1 day” “+%F %T”
输出的形式:2022-02-11 15:54:28
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
3.日期输出格式补充
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
1.作用:操作日历
2.用法:
语法1:#cal 等价于 #cal -1 直接输出当前月份的日历
语法2:#cal -3 表示输出上一个月+本月+下个月的日历
语法3:#cal -y 年份 表示输出某一个年份的日历
1.作用:清除终端中已经存在的命令和结果(信息)。
2.用法:
#clear 或者快捷键:ctrl + L
注意:该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
管道符:|
1.作用:一般可以用于“过滤”,“特殊”,“扩展处理”。
2.用法示例:
(1)过滤(重要)
#ls /root | grep y
列出root文件夹下所有名称含 ‘y’ 的文件/文件夹
grep指令:主要用于过滤
(2)统计某个目录下的文档的总个数
#ls /root | wc -l
3.注意:
管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用
管道前面的输出就是管道后面指令的输入
1.作用:操作服务器的主机名(读取、设置)
2.用法:
语法1:#hostname 含义:表示输出完整的主机名
语法2:#hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名)
1.作用:查看一个用户的基本信息(包含用户id,用户组id,附加组id…)
2.用法:
语法1:#id 默认显示当前执行该命令的用户的基本信息
语法2:#id 用户名 显示指定用户的基本信息
1.作用:显示当前登录的用户名
2.用法:
1.作用:查看服务器的进程信息
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
2.用法:
3.列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
1.作用:查看服务器的进程占的资源
2.用法:
进入命令:#top (动态显示)
退出命令:按下q键
3.表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径;
1.作用:查看目录的真实大小
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
2.用法:
#du -sh 文档路径
1.作用:用于查找文件
2.用法:
#find 路径范围 选项 选项的值
3.选项类型
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
示例:
搜索etc目录下所有的conf后缀文件
搜索/etc/目录下所有的文件夹
1.作用:用于控制一些软件的服务启动/停止/重启
2.用法:
#service 服务名 start或stop或restart
示例:
#service mysql start
打开mysql服务
可以使用 #ps -ef 检查服务是否已经打开
1.作用:杀死进程
2.用法:
#kill 进程PID
先通过 #ps -ef 来查询进程的id,然后用 #kill 杀死
#ps -ef | grep httpd
表示查询所有进程,并过滤出名称含httpd的进程
1.作用:用于操作网卡相关的指令。
2.用法:
#ifconfig
获取网卡信息
1.作用:重新启动计算机
2.用法:
#reboot
1.作用:关机
2.用法:
语法1:#shutdown -h now “关机提示”
立刻关机
语法2:#shutdown -h 15:25 “关机提示”
定时关机
可以使用 #shutdown -c 取消关机
1.作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
2.用法:
1.作用:获取计算机操作系统相关信息
2.用法:
语法1:#uname 获取操作系统的类型
语法2:#uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
1.作用:查看网络连接状态
选项:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
2.用法:
#netstat -tnlp
linux的常用指令就是这么多啦,其中基础指令是最常用最基本的,必须熟练掌握,进阶和高级指令在开发中会用到比较多。只要每个命令都亲手敲过一遍,看到效果,那么很快就记住了,之后实际操作linux系统中再不断巩固就好了。
如果各位觉得这篇文章对你们有帮助,记得点赞支持哦!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。