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