Linux指令
Linux笔记
一、终端
-
如何使用终端命令进行关机?
在Linux中关机命令有以下几个:shutdown-h now(正常关机)、halt(关闭内存)、init 0
-
在vm中备份方式有2种:快照、克隆。
-
快照:又称还原点,就是保存在拍快照时候的系统的状态(包含了所有的内容),在后期的时候随时可以恢复。[侧重在于短期备份,需要频繁备份的时候可以使用快照,做快照的时候虚拟的操作系统一般处于开启状态]
-
克隆:就是复制的意思。[侧重长期备份,做克隆的时候是必须得关闭]
-
二、文件
-
什么是文件?
一般都是一个独立的东西,可以通过一些特定的工具进行打开,并且其中不能在包含除了文字以外的东西。 -
什么是文件夹?
可以在其中包含其他文件的东西。 -
为什么先讲文件?
1:日常运维工作中,有近一半以上的工作内容精力其实都是对文件的操作。
2:Linux本身也是一个基于文件形式表示的操作系统。
Linux一切皆文件
①在windows是文件的,在Linux下同样也是文件;
②在windows不是文件的,在Linux下也是以文件的形式存储的: -
日常学习中和日常工作中,对于文件的操作的都有哪些种类?
创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件。 -
文件目录:
-
目录结构:
- Bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。
- Dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
- Etc:该目录主要存储一些配置文件。
- Home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
- Proc:process,表示进程,该目录中存储的是Linux运行时候的进程。
- Root:该目录是root 用户自己的家目录。
- Sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
- Tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
- Usr:存放的是用户自己安装的软件。类似于windows下的program files。
- Var:存放的程序/系统的日志文件的目录。
- Mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。
三、指令
一个完整的指令的标准格式:Linux通用格式:
#指令主体 [选项] [操作对象]
- 一个指令可以包含多个选项
操作对象也可以是多个
Ⅰ、基础指令
1、ls指令
含义:ls(list)
- 用法1:
#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
- 用法2:
#ls 路径
含义:列出指定路径下的所有文件/文件夹的名称
关于路径(重要):路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路径的写法:在相对路径中通常会用到2个符号==“./”[表示当前目录下]、“…/"[上一级目录下]==。绝对路径:绝对路径不需要参照物,直接从根"/"开始寻找对应路径;
- 用法3
#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项解释:
- -l :表示list,表示以详细列表的形式进行展示
- -a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”la
表示文档类型为文件夹。
在Linux中隐藏文档一般都是以“.”开头。
- 用法4:
#ls -lh 路径
含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示
2、pwd指令
用法:
#pwd
(print working directory,打印当前工作目录)
3、cd命令
语法:
#cd 路径
(change directory,改变目录)
作用:用于切换当前的工作目录的
补充:
在Linux中有一个特殊的符号"~”,表示当前用户的家目录。
切换方式:#cd ~
4、mkdir 指令
指令:mkdir(make directory,创建目录)
- 语法1:
#mkdir 路径 [路径,可以是文件夹名称也可以是包含名称的一个完整路径]
注意:Is 列出的结果颜色说明,其中==蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限==。
- 语法2:
#mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
- 语法3:
#mkdir 路径1 路径2 路径3....
含义:表示一次创建多个同层目录
5、touch指令
指令:touch
作用:创建文件
语法:
#touch 文件路径 [路径可以是直接的文件名也可以是路径]
6、cp指令
指令:cp(copy,复制)
作用:复制文件/文件夹到指定的位置
语法:
#cp 被复制的文档路径 文档被复制到的路径
注意:Linux 在复制过程中是可以重新对新位置的文件 进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
案例:使用cp命令来复制一个文件夹
注意:
当使用cp命令进行文件夹复制操作的时候需要添加选项“-r” 【-r表示递归】
否则目录将被忽略
7、mv指令
指令:mv(move,移动,剪切)
作用:移动文档到新的位置
语法:
#mv 需要移动的文档路径 需要保存的位置路径
补充:在Linux中重命名的命令也是mv,语法和移动语法一样。
8、rm命令
指令:rm(remove,移除、删除)
作用:移除/删除文档
语法:
#rm 选项需要移除的文档路径
选项:
-f
-r
在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入“y/yes”,否则输入
“n/no”按下回车。
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项“-f”,表示force(强制)。
注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般需要使用 -rf 选项。
案例:要删除一个目录下有公共特性的文档,例如都以Linux开头
其中*称之为通配符,意思表示任意的字符,Linux*,则表示只要文件以Linux开头,后续字符则不管。
9、vim命令
指令:vim(vim是一款文本编辑器)
语法:
#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
退出打开的文件夹:在没有按下其它命令的时候,按下shift+英文冒号: 输入q回车
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:
#正常执行的指令 >/>> 文件的路径
注意:文件可以不存在,不存在则新建
11、cat指令
作用1:cat有直接打开一个文件的功能。
语法1:
#cat 文件的路径
作用2:cat还可以对文件进行合并
语法2:
#cat 待合并的文件路径1 待合并的文件路径2 .... 待合并的文件路径n > 合并之后的路径
Ⅱ、进阶指令
1、df指令
作用:查看磁盘空间
语法:
#df -h
2、free指令
作用:查看内存情况
语法:
#free -m
-m 表示以mb为单位查看
剩余的真实可以使用的内存为1075mb
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3、head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:
#head -n 文件路径
4、tail指令
作用1:查看一个文件的末n行,如果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
输出形式:2020年01月21日 星期二 21:13:49 CST
语法2:
#date +%F
等价于
#date "+%Y-%m-%d"
输出形式:2018-03-24
语法3:
#date "+%F %T"
引号表示让“年月日 与 时分秒”成为一个不可分割的整体
等价操作
#date "+%Y-%m-%d %H:%M:%S"
输出形式:2018-03-24 16:01:00
语法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)
8、cal指令
作用:用来操作日历的
语法1:
#cal
等价于
#cal -1
直接输出当前月份的日历
语法2:
#cal -3
表示输出上一一个月+本月+下个月的日历
语法3:
#cal -y 年份
表示输出某一个年份的日历
9、clear/ctrl + L指令
作用:清除终端中已经存在的命令和结果(信息)。
语法:
#clear
或者快捷键:ctrl+L
需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
10、管道
管道符:
"|"
作用:管道一般可用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须配合其它指令一起使用,主要用于辅助作用。
①、过滤案例(**):需要通过管道查询出根目录下包含“y”字母的文档名称。
#ls /|grep y
说明:
①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
②grep指令:主要用于过滤
②、特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看-个文件,可以
#less 路径
现在通过管道还可以这么:
#cat 路径 | less
③、扩展处理,请使用学过的命令,来统计某个目录下的文档的总个数?
答:
#ls/|wc-l
Ⅲ、高级指令
1、hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:
#hostname
含义:表示输出完整的主机名
语法2:
#hostname -f
含义:表示输出当前主机中的FQDN(全限定域名)
2、id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
语法1:
#id
默认显示当前执行该命令的用户的基本信息
语法2:
#id 用户名
显示指定用户的基本信息
3、whoami指令
作用:“我是谁?”显示当前登录的用户名,一般用于shell 脚本,用于获取当前操作的用户名方便记录日志。
4、ps -ef 指令
作用:主要是查看服务器的进程信息选项含义:
-e:等价于“A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
列的含义:
- UID:该进程执行的用户id;
- PID:进程id;
- PPID:该进程的父级进程id;如果一个程序的父级进程找不到,该程序进程称为僵尸进程。
- C:Cpu的占用率,其形式是百分数;
- STIME:进行的启动时间;
- TTY:终端设备,发起该进程的设备识别符号,如果显 示"?"则表示该进程并不是由终端设备发起;
- TIME:进程的执行时间;
- CMD:该进程的名称或者对应的路径;
案例:(100%使用的命令)在ps的结果中过滤出想要查看的进程状态
#ps -ef|grep 进程名称
5、top指令
作用:查看服务器的进程占的资源(动态显示)
语法:
进入命令:
#top
推出命令:按下q键
chrome进程
- 虚拟内存:申请500MB实际使用了320MB此时的虚拟内存就是500MB
- 常驻内存:申请500MB实际使用了320MB此时的常驻内存就是320MB
- 共享内存:申请500MB实际使用了320MB,但是其中还包含对其他进程的调用开销则需要扣除
表头含义:
-
PID:进程id;
-
USER:该进程对应的用户;
-
PR:优先级
-
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”表示文件夹
8、service 指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
语法:
#service服务名 start/stop/restart
例如:需要启动本机安装的Apache(网站服务器软件),其服务名httpd
#service httpd start
9、kill指令(重点)
作用:表示杀死进程(当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:
#kill 进程PlD
(语法需要配合ps一起使用)
案例:需要kill掉Apache的进程
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:
#killall 进程名称
10、ifconfig 指令(重点)
作用:用于操作网卡相关的指令。
简单语法:
#ifconfig
(获取网卡信息)
注意:inet addr就是网卡的ip地址。
eth0 代表网络网卡
lo 代表本机网卡
11、reboot指令
作用:重新启动计算机
语法1:重启
#reboot
语法2:模拟重启,但是不重启(只写关机与开机的日志信息)
#reboot -w
12、shutdown指令(慎用)
作用:关机(慎用)
语法1:
#shutdown-h now “关机提示”
或者
#shutdown -h 15:25 “关机提示”
案例:设置Linux系统关机时间在12:00
如果想要取消关机计划的话,则可以按照以下方式去尝试:
①针对于centos7.x之前的版本:ctrl+c
②针对于centos7.x(包含)之后的版本:#shutdown -c
13、uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:
#uptime
14、uname 指令
作用:获取计算机操作系统相关信息
语法1:获取操作系统的类型
#uname
语法2:(all),表示获取全部的系统信息(类型、全部主机名、内核版本、 发布时间、开源计划)
#uname -a
15、netstat-tnlp指令
作用:查看网络连接状态
语法:
#netstat -tnlp
选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
16、man 指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:(退出按下q键)
#man命令
案例:通过man命令查询sp.指令的用法