文章目录
- 前言
- 一、Linux基础命令
- 1. Linux目录结构
- 2. Linux命令入门
- 3. 目录切换相关命令(cd、pwd)
- 4. 相对路径、绝对路径和特殊路径符
- 5. 创建目录命令((mkdir)
- 6. 文件操作命令part1(touch、cat、more)
- 7. 文件操作命令part2(cp、mv、rm)
- 8. 查找命令(which、find)
- 9. grep、wc和管道符
- 10. echo、tail和重定向符
- 11. vi编辑器
- 二、用户和权限
- 1. root用户
- 2. 用户、用户组管理
- 3. 权限控制查看
- 4. 修改权限控制(chmod、chown)
- 三、Linux实用操作
- 1. 快捷键
- 2. 软件安装
- 3. systemctl
- 4. 软连接
- 5. 日期、时区
- 6. IP地址、主机名
- 7. 网络传输
- 8. 进程管理
- 9. 主机状态
- 10. 环境变量
- 11. 上传、下载
- 12. 压缩、解压
前言
本文在学习Linux命令,视频连接:黑马程序员新版Linux零基础快速入门到精通 过程中,参照官方PPT记录的一些命令的作用,语法等内容,进行了一些整理。
一、Linux基础命令
1. Linux目录结构
-
Linux操作系统的目录结构
Linux只有一个顶级目录,称之为:根目录 /
Windows系统有多个顶级目录,即各个盘符 C、D…
-
“/” 在Linux系统中表示
出现在开头的/表示:根目录
出现在后面的/表示:层级关系,用于路径分割
2. Linux命令入门
-
Linux命令的基础格式
Linux命令的通用格式:
command [-options] [parameter]
- command: 命令本身
- options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
-
ls命令的语法和作用
当ls不使用参数,表示列出当前工作目录的内容,即用户的HOME目录
ls [-a -l -h] [Linux路径]
-
-a
选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹) -
-l
选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息写法中的选项是可以组合使用的,比如学习的-a和-l可以组合应用。写法:ls -l -als -lals -al上述三种写法,都是一样的,表示同时应用-l和-a的功能
-
-h
表示以易于阅读的形式,列出文件大小,如K、M、G;-h选项必须要搭配 -l 一起使用 -
[Linux路径]参数表示要列出内容的路径,不提供即列出当前工作目录内容
-
-
当前工作目录和HOME目录
-
Linux终端(命令行)启动后默认价值HOME目录作为当前工作的目录
-
HOME目录指:用户在系统内的专属目录
-
-
隐藏文件\文件夹
-
在Linux系统中,以
.
开头的文件或文件夹会自动隐藏 -
只有通过
-a
选项才可以展示出来
-
3. 目录切换相关命令(cd、pwd)
-
cd命令的作用
-
cd命令来自英文 Change Directory
-
cd命令可以切换当前工作目录:
cd [Linux路径]
没有选项,只有参数,直接使用即可① 使用参数,切换到指定路径② 不使用参数,切换工作目录到当前用户的HOME
-
-
pwd命令的作用
pwd
- pwd命令来自英文:Print Work Directory
- pwd命令没有选项,没有参数,直接使用即可
- 作用是:输出当前所在的工作目录
4. 相对路径、绝对路径和特殊路径符
-
相对路径和绝对路径
-
绝对路径:以根目录做起点,描述路径的方式,路径以
/
开头 -
相对路径:以当前目录做起点,描述路径的方式,路径不需以/开头
-
如无特殊需求,后续使用中,将经常使用相对路径表示
-
-
特殊路径字符
-
.
表示当前路径,比如cd .
或cd ./Desktop
-
..
表示上一级目录,比如:cd ..
或cd ../..
-
~
表示用户的HOME目录,比如:cd ~
或cd ~/Desktop
-
5. 创建目录命令((mkdir)
-
mkdir命令的语法和功能
-
mkdir用以创建新的目录(文件夹)
-
语法:
mkdir [-p] Linux路径
-
参数必填,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用
-
-
-p选项的作用
- 可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
6. 文件操作命令part1(touch、cat、more)
- touch命令
- 作用:用于创建一个新的文件
- 语法:
touch Linux路径
- 无选项,参数必填,表示要创建的文件的路径,相对、绝对、特殊路径符都可以使用
- cat命令
- 作用:用于查看文件内容
- 语法:
cat Linux路径
- 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用
- more命令
- 作用:用于查看文件内容,可翻页查看
- 语法:
more Linux路径
- 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用
- 使用
空格
进行翻页,使用q
退出查看
7. 文件操作命令part2(cp、mv、rm)
-
cp命令
- 作用:用于复制文件\文件夹,cp命令来自英文单词:CoPy
- 语法:
cp [-r] 参数1 参数2
-r
选项,可选,用于复制文件夹使用,表示递归- 参数1,Linux路径,表示被复制的文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
-
mv命令
- 作用:用于移动文件\文件夹,mv命令来自英文单词:MoVe
- 语法:
mv 参数1 参数2
- 参数1,Linux路径,表示被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
-
rm命令
- 作用:用于删除文件、文件夹,rm命令来自英文单词:ReMove
语法:rm [-r -f] 参数1 参数2 ... ... 参数N
-
同cp命令一样,
-r
选项用于删除文件夹 -
-f
表示force,强制删除(不会弹出提示确认信息)普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
所以一般普通用户用不到-f选项 -
参数1、参数2、…、参数N 表示要删除的文件或文件夹路径,按照空格隔开
-
rm
命令支持通配符*
,用来做模糊匹配
-
- 作用:用于删除文件、文件夹,rm命令来自英文单词:ReMove
8. 查找命令(which、find)
-
which命令
-
查找命令的程序文件,返回命令所在的路径
-
语法:
which 要查找的命令
-
无需选项,只需要参数表示查找哪个命令
-
-
find命令
-
用于查找指定的文件
-
按文件名查找:
find 起始路径 -name "被查找的文件名"
- 支持通配符
-
按文件大小查找:
find 起始路径 -size +|-n[kMG]
+、- 表示大于和小于n表示大小数字kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
-
9. grep、wc和管道符
- grep命令
- 作用:从文件中通过关键字过滤文件行
- 语法:
grep [-n] 关键字 文件路径
- 选项
-n
,可选,表示在结果中显示匹配的行的行号。 - 参数,关键字,必填,表示过滤的关键字,建议使用
” ”
将关键字包围起来 - 参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入
- wc命令
- 作用:用于统计文件的行数、单词数量、字节数、字符数等
- 语法:
wc [-c -m -l -w] 文件路径
- 选项,
-c
,统计bytes数量 - 选项,
-m
,统计字符数量 - 选项,
-l
,统计行数 - 选项,
-w
,统计单词数量 - 参数,文件路径,被统计的文件,可作为内容输入端口
- 管道符 |
- 作用:将管道符左边命令的结果,作为右边命令的输入
- 语法:
命令 | 命令结果
10. echo、tail和重定向符
-
echo命令
- 作用:可以使用echo命令在命令行内输出指定内容
- 语法:
echo 输出的内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用””包围
-
`反引号符
- 被``包围的内容,会被作为命令执行,而非普通字符
-
重定向符
>
将左侧命令的结果,覆盖写入到符号右侧指定的文件中>>
将左侧命令的结果,追加写入到符号右侧指定的文件中
-
tail命令
-
作用:查看文件尾部内容,并可以持续跟踪
-
语法:
tail [-f -num] Linux路径
-
-f
:持续跟踪, -
-num
:启动的时候查看尾部多少行,默认10 -
Linux路径,表示被查看的文件
-
11. vi编辑器
- 什么是vi/vim编辑器
- vi\vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件
- vim是vi的升级版,一般用vim即可,包含全部vi功能
- 基础命令
vi 文件路径
vim 文件路径
- 运行模式
- 命令模式,默认的模式,可以通过键盘快捷键控制文件内容
- 输入模式,通过命令模式进入,可以输入内容进行编辑,按esc退回命令模式
- 底线命令模式,通过命令模式进入,可以对文件进行保存、关闭等操作
- 快捷键
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置 之后 进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的末尾,进入输入模式 |
命令模式 | o | 在当前光标的下一行进入输入模式 |
命令模式 | 0 | 在当前光标的上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc 都能回到命令模式 |
模式 | 命令 | 描述 |
---|---|---|
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头移动光标到当前行的结尾向上翻页 |
命令模式 | $ | 移动光标到当前行的结尾 |
输入模式 | pageup(PgUp) | 向上翻页 |
命令模式 | panddown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
输入模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
输入模式 | dG 从当前行开始,向下全部删除 | |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
二、用户和权限
1. root用户
-
Linux系统的超级管理员用户是:
root用户
-
su命令
-
作用:用于账户切换的系统命令,其来源英文单词:Switch User
-
语法:
su [-] [用户名]
-
-
符号是可选的,表示是否在切换用户后加载环境变量,建议带上 -
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到
root
-
切换用户后,可以通过
exit
命令退回上一个用户,也可以使用快捷键:ctrl + d
-
使用普通用户,切换到其它用户需要输入密码,如切换到root用户
-
使用root用户切换到其它用户,无需密码,可以直接切换
-
-
sudo命令
- 作用:可以让一条普通命令带有root权限
- 语法:
sudo 其它命令
- 需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
2. 用户、用户组管理
- Linux用户管理模式
- Linux可以支持多用户、多用户组、用户加入多个组
- Linux权限管控的单元是用户级别和用户组级别
- 用户、用户组相关管理命令,需要
root用户
执行-
创建用户组
- 语法:
groupadd 用户组名
- 语法:
-
删除用户组
- 语法:
groupdel 用户组名
- 语法:
-
创建用户
- 语法:
useradd [-g -d] 用户名
- 选项:
-g
指定用户的组,不指定-g
,会创建同名组并自动加入,指定-g
需要组已经存在,如已存在同名组,必须使用-g
- 选项:
-d
指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
- 语法:
-
删除用户
- 语法:
userdel [-r] 用户名
- 选项:
-r
,删除用户的HOME目录,不使用-r
,删除用户时,HOME目录保留
- 语法:
-
查看用户所属组
- 语法:
id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
- 语法:
-
修改用户所属组
- 语法:
usermod -aG 用户组 用户名
,将指定用户加入指定用户组
- 语法:
-
getent
getent passwd
查看系统全部用户信息getent group
查看系统全部组信息
-
3. 权限控制查看
-
rwx
r
表示读权限w
表示写权限x
表示执行权限
-
差别
r
,针对文件可以查看文件内容- 针对文件夹,可以查看文件夹内容,如ls命令
w
,针对文件表示可以修改此文件- 针对文件夹,可以在文件夹内:创建、删除、改名等操作
x
,针对文件表示可以将文件作为程序执行- 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
4. 修改权限控制(chmod、chown)
-
chmod命令
- 功能,修改文件、文件夹的权限细节
- 限制,只能是文件、文件夹的所属用户或root有权修改
- 语法:
chmod [-R] 权限 文件或文件夹
- 选项:
-R
,对文件夹内的全部内容应用同样规则
-
权限的数字序号
r
代表4
,w
代表2
,x
代表1
- rwx的相互组合可以得到从0到7的8种权限组合
- 如7代表:rwx,5代表:r-x,1代表:–x
-
chown命令
- 功能,修改文件、文件夹的所属用户、组
- 限制,只可root执行
- 语法:
chown [-R] [用户][:][用户组] 文件或文件夹
- 选项,
-R
,同chmod,对文件夹内全部内容应用相同规则 - 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
:
用于分隔用户和用户组
三、Linux实用操作
1. 快捷键
ctrl + c
强制停止ctrl + d
退出登出history
查看历史命令!
命令前缀,自动匹配上一个命令ctrl + r
,搜索历史命令ctrl + a | e
,光标移动到命令开始或结束ctrl + ← | →
,左右跳单词ctrl + l
或clear
命令 清屏
2. 软件安装
-
在CentOS系统中,使用yum命令联网管理软件安装
- yum语法:
yum [-y] [install |remove | search] 软件名称
- 选项:
-y
,自动确认,无需手动确认安装或卸载过程 install
:安装remove
:卸载search
:搜索- yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
- yum命令需要联网
- yum语法:
-
在Ubuntu系统中,使用apt命令联网管理软件安装
- apt语法:
apt [-y] [install |remove | search] 软件名称
- apt语法:
3. systemctl
- systemctl命令的作用
- 可以控制软件(服务)的启动、关闭、开机自启动
- 系统内置服务均可被systemctl控制
- 第三方软件,如果自动注册了可以被systemctl控制
- 第三方软件,如果没有自动注册,可以手动注册
- 语法:
systemctl start | stop | status | enable | disable 服务名
start
:启动stop
:关闭status
:查看状态enable
:开启开机自启disable
:关闭开机自启
4. 软连接
- 软连接
- 作用:可以将文件、文件夹链接到其它位置
- 链接只是一个指向,并不是物理移动,类似Windows系统的快捷方式
- 语法:
ln [-s] 参数1 参数2
-s
选项,创建软连接- 参数1:被链接的文件或文件夹
- 参数2:要链接去的目的地
5. 日期、时区
-
date命令的作用和用法
date
命令可以查看日期时间,并可以格式化显示形式以及做日期计算- 语法:
data [-d] [+格式化字符串]
-d
按照给定的字符串显示日期,一般用于日期计算- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
-
%Y
年 -
%y
年份后两位数字 (00…99) -
%m
月份 (01…12) -
%d
日 (01…31) -
%H
小时 (00…23) -
%M
分钟 (00…59) -
%S
秒 (00…60) -
%s
自 1970-01-01 00:00:00 UTC 到现在的秒数使用
date
命令本体,无选项,直接查看时间
-
-
修改Linux时区
-
使用
root
权限,执行如下命令,修改时区为东八区时区。将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可rm -f /etc/localtime
sudo ln -s /user/share/zoneinfo/Asia/Shanghai/ /etc/localtime
-
-
ntp的作用
可以自动联网同步时间,也可以通过ntpdate -u ntp.aliyun.com
手动校准时间(需root权限)
6. IP地址、主机名
-
IP地址
- IP地址是联网计算机的网络地址,用于在网络中进行定位
- 格式是:a.b.c.d,其中abcd是0~255的数字
- 特殊IP有:
127.0.0.1
,本地回环IP,表示本机。 0.0.0.0
:也可表示本机,也可以在一些白名单中表示任意IP
-
主机名
- 主机名就是主机的名称,用于标识一个计算机
-
域名解析(主机名映射)
- 可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
- 先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找
7. 网络传输
-
使用
ping
命令可以测试到某服务器是否可联通- 语法:
ping [-c num] ip或主机名
- 选项:
-c
,检查的次数,不使用-c
选项,将无限次数持续检查 - 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
- 语法:
-
使用
wget
命令可以进行网络文件下载- 语法:
wget [-b] url
- 选项:
-b
,可选,后台下载,会将日志写入到当前工作目录的wget-log文件 - 参数:
url
,下载链接 - 通过
tail
命令可以监控后台下载进度:tail -f wget-log
- 无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
- 语法:
-
curl命令可以发送http网络请求,可用于:下载文件、获取信息等
- 语法:
curl [-O] url
- 选项:
-O
,用于下载文件,当url是下载链接时,可以使用此选项保存文件 - 参数:
url
,要发起请求的网络地址
- 语法:
-
端口
- 端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口
- 物理端口:USB、HDMI、DP、VGA、RJ45等
- 虚拟端口:操作系统和外部交互的出入口
- IP只能确定计算机,通过端口才能锁定要交互的程序
-
端口的划分
- 公认端口:
1~1023
,用于系统内置或常用知名软件绑定使用 - 注册端口:
1024~49151
,用于松散绑定使用(用户自定义) - 动态端口:
49152~65535
,用于临时使用(多用于出口)
- 公认端口:
-
查看端口占用
nmap IP地址
,查看指定IP的对外暴露端口netstat -anp | grep 端口号
,查看本机指定端口号的占用情况
8. 进程管理
- 进程
- 进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)
- 管理进程的命令
- ps命令查看Linux系统中的进程信息
- 语法:
ps [-e -f]
- 选项:
-e
,显示出全部的进程 - 选项:
-f
,以完全格式化的形式展示信息(展示全部信息)
- 语法:
ps -ef
列出全部进程的全部信息ps -ef | grep 关键字
过滤指定关键字进程信息kill [-9] 进程号
关闭指定进程号的进程- 选项:
-9
,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
- 选项:
- ps命令查看Linux系统中的进程信息
9. 主机状态
- top命令
- 查看CPU、内存、进程的信息,类似Windows任务管理器
- 默认每5秒刷新一次,语法:直接输入
top
即可,按q
或ctrl + c
退出 - top命令也支持选项:
-p
:只显示某个进程的信息-d
:设置刷新时间,默认是5s
-c
:显示产生进程的完整命令,默认是进程名-n
:指定刷新次数,比如top -n 3
,刷新输出3次后退出-b
:以非交互非全屏模式运行,以批次的方式执行top
,一般配合-n
指定输出几次统计信息,将输出重定向到指定文件,比如top -b -n 3 > /tmp/top.tmp
-i
:-i不显示任何闲置(idle)或无用(zombie)的进程-u
:查找特定用户启动的进程
- df命令:
- 作用:使用df命令,可以查看硬盘的使用情况
- 语法:
df [-h]
- 选项:
-h
,以更加人性化的单位显示
- iostat:
- 作用:查看磁盘速率等信息
- 语法:
iostat [-x] [num1] [num2]
- 选项:
-x
,显示更多信息 num1
:数字,刷新间隔,num2
:数字,刷新几次
- sar -n DEV命令:
- 作用:查看网络的相关统计
- 语法:
sar -n DEV num1 num2
- 选项:
-n
,查看网络,DEV表示查看网络接口 num1
:刷新间隔(不填就查看一次结束),num2
:查看次数(不填无限次数)
10. 环境变量
-
环境变量
环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息 -
通过
env
命令可以查看当前系统配置的环境变量信息 -
通过
$
符号,可以取出环境变量的值 -
PATH
环境变量PATH会记录一组目录,目录之间用:
隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。可以通过修改这个项目的值,加入自定义的命令搜索路径,如export PATH=$PATH:自定义路径
-
如何修改环境变量?
- 临时生效:
export 名称=值
- 永久生效:
- 针对用户:
~/.bashrc
文件中配置 - 针对全部用户:
/etc/profile
文件中配置 - 配置完成,可以通过
source
命令立刻生效
- 针对用户:
- 临时生效:
11. 上传、下载
- rz、sz命令
- 通过
yum -y install lrzsz
可以安装此命令 rz
进行文件上传,语法:直接输入rz
即可sz
文件,进行文件下载,语法:sz 要下载的文件
。文件会自动下载到桌面的:fsdownload文件夹中- 注意,rz、sz命令需要终端软件支持才可正常运行
- 通过
12. 压缩、解压
- Linux系统常用的压缩格式有:
- tar格式,文件后缀为:
.tar
,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装 - gzip格式,文件后缀为:
.gz
,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
- tar格式,文件后缀为:
- tar命令
-
作用:进行压缩和解压缩的操作
-
语法:
tar [-z -x -v -c -f -C] 参数1 ... 参数N
-c
,创建压缩文件,用于压缩模式-v
,显示压缩、解压过程,用于查看进度-x
,解压模式-f
,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个-z
,gzip模式,不使用-z就是普通的tarball格式-C
,选择解压的目的地,用于解压模式
-
选项可组合使用,但需要注意:
-z
选项如果使用的话,一般处于选项位第一个-f
选项,必须在选项位最后一个-C
选项单独使用,和解压所需的其它参数分开
-
- zip命令
- 作用:压缩文件为zip压缩包
- 语法:
zip [-r] 参数1 ... 参数N
-r
,被压缩的包含文件夹的时候,需要使用-r
选项,和rm
、cp
等命令的-r
效果一致
- unzip命令
- 作用:使用
unzip
命令,可以方便的解压zip压缩包 - 语法:
unzip [-d] 参数
-d
,指定要解压去的位置,同tar的-C选项- 参数,被解压的zip压缩包文件
- 作用:使用