Linux的基本指令
一、指令与选项
Linux通用格式:
#指令主题 [选项] [操作对象]
一个指令可以包含多个选项
操作对象也可以是多个
二、基础指令
1.ls指令
含义:ls (list)
语法1:#ls 列出当前工作目录下的所有文件/文件夹名称。
语法2:#ls 路径 列出指定路径下的所有文件/文件夹名称
路径可以分为两种情况:
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“…/”【上一级目录下】
绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径。
语法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项的解释:
-l:表示list,表示以详细列表的形式进行展示
-a: 表示显示所有文件/文件夹(包含了隐藏文件/文件夹)
上述列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
在Linux中隐藏文档一般都是以“.”开头。
语法4:#ls -lh 路径
含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示。
2.pwd指令
语法:#pwd (print working directory,打印当前工作目录)
3.cd指令
命令:cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径
补充:
在Linux中有一个特殊的符号“~”,表示当前用户的家目录。
切换的方式:#cd ~
4.mkdir指令
语法2:#mkdir –p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错。
语法3:#mkdir 路径1 路径2 路径3 …
含义:表示一次性创建多个目录
5.touch指令
指令:touch
作用:创建文件
语法:#touch 文件路径【路径可以是直接的文件名也可以直接死路径】]
#touch 文件路径1 文件路径2 【同时创建多个文件】
如:
6.cp指令
指令:cp (copy 复制)
作用:复制文件/文件夹到指定位置
语法:#cp 被复制的文档路径 文档被复制到的路径
注意:Linux在复制的过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
注意:使用cp复制文件夹时,需要添加选项“-r”【-r表示递归复制】,否则目录将背忽略。
7.mv指令
指令:mv (move ,移动,剪切)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
补充:在Linux中重命名的命令也是mv,语法和移动的语法一样。
8 .rm指令
指令:rm (remove ,移除,删除)
作用:移除/删除文档
语法:#rm 选项 需要移动的文件
选项:-r
-f
在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入“y/yes”,否则输入“n/no”按下回车。
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项“-f”,表示force(强制)。
批量删除多个文件或者文件夹时,rm –rf 文件1 文件2 …
9.vim命令
指令:vim (vim是一款文本编辑器)
语法:# vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
退出打开的文件:在没有按下命令的时候,按下shift+英文冒号,输入q,按下回车即可。
10.输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到输出重定向技术。
语法:#正常执行的命令 >/>> 文件的路径
注意:文件可以不存在,不存在则新建。
:覆盖输出,会覆盖掉原先的文件内容。
:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加。
11.cat指令
作用1:cat 有直接打开一个文件的命令
语法:#cat 文件的路径
作用2:cat 还可以对文件进行合并
语法:#cat 待合并的文件路径1 待合并的文件路径2 … 文件路径n >/>> 合并之后的文件路径。
三、进阶指令
1.df指令
作用:查看磁盘空间
语法:#df -h -h表示以可读性较高的形式展示大小。
2.free指令
作用:查看内存使用情况
语法:#free –m -m表示以MB为单位进行查看
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3.head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:#head –n 文件路径 【n表示数字】
4.tail指令
作用1:查看一个文件的末n行,如果不指定n,则默认显示末10行。
语法1:#tail -n 文件路径 【n表示数字】
作用2:可以通过tail指令来查看一个文件的动态变化内容。【变化的内容不能是用户手动增加的】
语法2:#tail -f 文件路径
该命令一般用于查看系统的日志比较多。
5.less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车,空格键+上下方向键)查看更多。
语法:#less 需要查看的文件路径
在退出时只需要按下q键即可。
6.wc指令
作用:统计文件内容信息(包括行数,单词数,字节数)。
语法:#wc -lwc 需要统计的文件路径
-l: 表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数
7.date指令(重要)
作用:表示操作时间日期(读取,设置)
语法1:#date
语法2:#date +%F 等价于:#date “+%Y-%m-%d”
语法3:#date “+%F %T” 引号表示让“年月日与时分秒”成为一个不可分割的整体。
等价于: #date “+Y-%m-%d %H:%M:%S”
语法4:获取之前或者之后的某个时间(备份)
#date -d “-1 day” “+%Y-%m-%d %H:%M:%S” 输出形式:2020-06-13 10:54:17
符号的可选值:+(之后) -(之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
8.cal指令
作用:用来操作日历的
语法1:#cal 等价于 #cal -1 直接输出当前月份的日历
语法2:#cal -3 表示输出上一个月+本月+下个月的日历
语法3:#cal –y 年份 表示输出某一年份的日历
9.clear /ctrl+ L指令
作用:清除终端已经存在的命令和结果(信息)。
语法:clear 或者快捷键Ctrl +L
需要注意的是:该命令并不是真的清除了之前的信息,而是把之前的信息隐藏到了最上面,通过滚动条继续查看以前的信息。
10.管道(重要)
管道符:|
作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不等单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
过滤案例:
针对上面这个命令说明:
特殊用法案例:
通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以#less 路径
现在通过管道还可以这样用:#cat 路径 | less
扩展处理案例:
请使用学过的命令,来统计某个目录下的文档的总个数?
四、高阶指令
1.hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:#hostname 含义:表述输出完整的主机名。
语法2:#hostname –f 含义:表示输出当前主机名中FQDN(全限定域名)。
2.id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id),该指令如果不指定用户,则默认显示当前用户。
语法1:#id
语法2:#id 用户名 显示指定用户的基本信息
3.whoami指令
作用:显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
语法1:#whoami
4.ps –ef指令(重点)
指令:ps
作用:主要是查看服务器的进程信息。
选项含义:
-e: 等价于“-A”,表示列出全部的进程。
-f:显示全部的列(显示全字段)
列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程;
C:CPU的占用率,其形式是百分数;
STIME:进程的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间。
CMD:该进程的名称或者对应的路径。
案例:在ps的结果中过滤出想要查看的进程状态。
#ps -ef | grep gonme-panel
#ps -ef | grep 进程名称
5.top指令
作用:查看服务器的进程占的资源。
语法:
进入命令:#top (动态显示)
退出命令:按下q 键。
输出结果中表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级
NI:用户进程空间内改变过优先级的进程占用CPU百分比。
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存。
计算一个进程实际使用的内存 = 常驻内存(RES) - 共享内存(SHR)
S:表示进程的状态(sleep,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径。
在运行top的时候,可按下方便的快捷键:
M: 表示将结果按照内存(MEM)从高到低进行降序排列;
P: 表示将结果按照CPU使用率从高到低进行降序排列;
1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示各个cpu的详细信息。
6.du –sh指令
作用:查看目录的真实大小。
选项含义:
-s: (summaries)只显示汇总的大小。
-h: 表示以高可读性的形式进行显示。
7.find命令
作用:用于查找文件(参数有55个之多)
语法:#find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
8.service指令
作用:用于控制一些软件的服务启动/停止/重启。
语法:#service 服务名 start/stop/restart
例如:需要启动本机安装的Apache(网站服务软件)
9.kill指令
作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:#kill |进程 PID (语法需要配合ps一起使用)
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall 进程名称
10.ifconfig指令(重点)
作用:用于操作网卡相关的指令。
简单语法:#ifconfig (获取网卡信息)
显示的信息中,eth0表示Linux中的一个网卡,eth0是其名称。Lo(LOOP,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。注意:inet addr就是网卡的ip地址。
11.reboot指令
作用:重新启动计算机
语法1:#reboot 重启
语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
12.shutdown指令
作用:关机 (慎用)
语法1:#shutdown -h now [“关机提示”] 或者 #shutdown -h 15:35(指定时间) [“关机提示”]。
如果想要取消关机计划的话,则可以按照以下方式去尝试:
13.uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
#uptime
14.uname指令
作用:获取计算机操作系统相关信息。
语法1:#uname 获取操作系统的类型。
语法2: #uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)。
15.netstat -tnlp指令
作用:查看网络连接状态
语法:#netstat -tnlp
选项说明:
-t:b表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l: 表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称。
16.man指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:#man 命令 (退出按下q键)