目录
- 学习视频:https://www.bilibili.com/video/BV1n84y1i7td
-
- 命令通用格式
- 基础命令
-
- `clear/ctrl + l`:清除屏幕内容
- `ls`:列出目录下的内容
- `cd [Linux路径]`:切换目录到指定的文件夹下
- `pwd`:查看当前所在的工作目录
- `mkdir`:创建新的目录或者文件夹
- `touch`:创建文件
- `cat`:查看文件内容
- `more`查看大文件内容,适用于分页查看
- `cp`复制文件或文件夹
- `mv`:移动文件或文件夹
- `rm`:删除文件、文件夹
- `which`:查看所有的一系列命令的程序文件存放在哪里
- `find`:查找文件
- `grep`:从文件中通过关键字过滤文件行
- `wc`:数量统计
- `|`:管道符,将左边的结果作为右边内容的输入。
- `echo`:在命令行内输出指定内容
- `\>和>>`:重定向符,将左侧命令的结果写入到右侧指定的文件中
- `tail`:查看文件尾部内容,跟踪文件的最新更新
- `vim|vi`:编辑文件
- 用户权限
- 用户、用户组
- 权限信息
- 实用快捷键
- 软件安装
- 控制软件启动/关闭
- 软连接
- 日期和时区
- 修改主机名
- ping:检查指定的网络服务器是否可联通
- wget:在命令行内下载网络文件
- curl:发送http网络请求,用户下载文件、获取信息等
- nmap:查看端口占用情况
- netstat:查看指定端口的占用情况
- ps:查看系统中的进程信息
- Kill:关闭进程
- top:查看CPU、内存使用情况
- top命令选项
- df:查看硬盘的使用情况
- iostat:查看CPU、磁盘的相关信息
- 环境变量
- tar
- zip:压缩文件为zip压缩包
- unzip:解压zip压缩包
学习视频:https://www.bilibili.com/video/BV1n84y1i7td
命令通用格式
Command [-options] [parameter]
Command
:命令本身。-options
:可选命令选项,可以通过选项控制命令的行为细节。parameter
:可选命令的参数,多数用于命令的指向目标。
示例:
ls -l /home/test
cp -r test1 test2
基础命令
clear/ctrl + l
:清除屏幕内容
ls
:列出目录下的内容
ls -a
:列出目录下全部文件,包含隐藏的文件/文件夹ll
:以列表竖向排列的形式展示内容ll -h
:显示文件大小单位
示例:
cd [Linux路径]
:切换目录到指定的文件夹下
pwd
:查看当前所在的工作目录
mkdir
:创建新的目录或者文件夹
语法:
mkdir [-p] Linux路径
-p
:可选。表示自动创建不存在的父级目录,适用于创建连续多层级的目录。
示例:
touch
:创建文件
语法:
touch Linux路径
- touch命令无选项,路径代表要创建的文件路径,相对、绝对路径、特殊路径均可使用。
cat
:查看文件内容
语法:
cat Linux路径
- cat命令无选项,路径代表要查看的文件路径,相对、绝对路径、特殊路径均可使用。
示例:
more
查看大文件内容,适用于分页查看
语法:
more Linux路径
- 空格翻页,q退出查看。
cp
复制文件或文件夹
语法:
cp [-r] 参数1 参数2
-r
:选项,可选。用于复制文件夹使用,表示递归- 参数1,Linux路径,表示被复制文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
mv
:移动文件或文件夹
语法:
mv 参数1 参数2
- 参数1:Linux路径,表示要被移动的文件或文件夹
- 参数2:Linux路径,表示要被移动去的地方,如果目标不存在,则进行改名
rm
:删除文件、文件夹
语法:
rm [-r -f] 参数1 参数2 ...参数N
-r
:选项用于删除文件夹-f
:表示force,强制删除(不会弹出提示确认删除的信息)参数1、参数2…参数N表示要删除的文件或文件夹路径,按照空格隔开
rm命令支持通配符*,用来做模糊匹配
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- test,表示匹配任何包含test的内容
which
:查看所有的一系列命令的程序文件存放在哪里
语法:
Which 要查找的命令
find
:查找文件
语法:
find 起始路径 -name "被查找的文件名"
- find命令支持通配符*,用来做模糊匹配
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- test,表示匹配任何包含test的内容
语法:
Find 起始路径 -size +|- n[kMG]
- +、-表示大于和小于
- n表示大小数字
- kMG表示大小单位,k(小写字母)表示kb,M表示MG,G表示GB
示例:
- 查找小于10kb的文件:
find / -size -10k
- 查找大于100MB的文件:
find / -size +100M
- 查找大于1G的文件:find / -size +1G
grep
:从文件中通过关键字过滤文件行
语法:
grep [-n] 关键字 文件路径
- -n:可选,表示在结果中显示匹配的行的行号
- 关键字:必填,表示过滤的关键字,带有空格或者其他特殊符号,建议使用双引号将关键字包围起来
- 文件路径:必填,表示过滤的文件路径,可作为内容输入端口
wc
:数量统计
语法:
wc [-c -m -l -w] 文件路径
-c
:统计bytes数量-m
:统计字符数量-l
:统计行数-w
:统计单词数量- 文件路径:被统计的文件,可作为内容输入端口
|
:管道符,将左边的结果作为右边内容的输入。
echo
:在命令行内输出指定内容
语法:
echo 输出的内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
- 带有空格或者\等特殊符号,建议使用双引号包围
- 使用双引号
\>和>>
:重定向符,将左侧命令的结果写入到右侧指定的文件中
>
:将左侧命令的结果覆盖写入到右侧指定的文件中>>
:将左侧命令的结果追加写入到右侧指定的文件中
tail
:查看文件尾部内容,跟踪文件的最新更新
语法:
tail [-f -num] Linux路径
Linux路径
:表示被跟踪的文件路径-f
:表示持续跟踪-num
:表示查看尾部多少行,不填默认为10
vim|vi
:编辑文件
语法:
vi 文件路径
vim 文件路径,vim兼容全部的vi功能
-
- 如果文件路径表示的文件不存在,则会用于编辑新文件
-
- 如果文件路径表示的文件存在,则会用于编辑已有文件
流程:
- vim 文件路径
- i:在当前光标位置进入输入模式
- esc:回到命令模式
- 退出:
- 退出不保存:
:q!
- 仅退出:
:q
- 退出并保存:
:wq
- 退出不保存:
用户权限
root用户,超级管理员
root用户拥有最大的系统操作权限,普通用户的权限,一般在其HOME目录内是不受限的,一旦出了HOME目录,大多数地方,普通用户仅仅只有只读和操作权限,无修改权限
su
:切换账户命令
语法:
su [-] [用户名]
- -:可选,表示是否在切换用户后加载环境变量
- 用户名:表示要切换的用户,用户名不写表示切换到root
- 切换用户后,可以使用exit命令退回到上一个用户,也可以使用快捷键ctrl + d退回到上一个用户
- 使用普通用户切换到其他用户需要输入密码
- 使用root用户切换到其他用户不需要输入密码,可以直接切换
sudo
:为普通命令授权,临时以root身份执行
语法:sudo 其它命令
- 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
- 并不是所有用户,都有权使用sudo,需要为普通用户配置sudo认证
配置认证:
- 切换到root用户,执行visudo命令,会自动通过编译器打开/etc/sudoers
- 在文件最后添加
用户名 ALL = (ALL) NOPASSWD:ALL
- 通过wq命令保存
- 切换回普通用户,此时执行的命令均以root执行
用户、用户组
Linux系统中可以配置多个用户;可以配置多个用户组;用户可以加入到多个用户组中。
Linux系统中关于权限的管控级别有两个:
- 针对用户的权限控制
- 针对用户组的权限控制
用户组管理(需要root权限)
创建用户组:groupadd 用户组名
删除用户组:groupdel 用户组名
用户管理(需要root权限)
创建用户:useradd [-g -d] 用户名
-g
:指定用户的组,不指定用户的组,会在创建用户时候自动创建和用户名相同的组并加入。指定-g需要组一定存在,如果已存在同名组,必须使用-g-d
:指定用户的HOME路径,不指定,HOME目录会默认为/home/用户名
删除用户:userdel [-r] 用户名
-r
:删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
查看用户所属组:id [用户名]
- 用户名:被查看的用户,如果不写则查看自身
修改用户所属组:usermod -aG
用户组 用户名
gentent passwd
查看系统中的用户
- 共有7份信息,分别是:
- 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
gentent group
:查看系统中的用户组
- 共有3份信息,分别是:
- 组名称:组认证(显示为x):组ID
权限信息
- 第一部分表示文件、文件夹的权限控制信息
- 第二部分表示文件、文件夹所属用户
- 第三部分表示文件、文件夹所属用户组
在Linux系统中,rwx分别代表文件或目录的读(read)、写(write)和执行(execute)权限。
- r(read):读权限,表示可以读取文件的内容,或者列出目录中的文件列表。
- w(write):写权限,表示可以修改文件的内容,或者向目录中添加、删除文件。
- x(execute):执行权限,表示可以执行文件(如果文件是可执行程序),或者进入目录。
chmod
:修改文件、文件夹的权限信息
- 只有文件、文件夹的所属用户或者root用户可以修改
语法:chmod [-R] 权限 文件或文件夹
- -R:对文件夹内的全部内容应用同样操作
示例:
chmod u=rwx,g=rx hello.txt
:将文件权限修改为rwxr-x–x。u表示user所属用户权限,g表示group组权限,o表示other其他权限chmod -R u=rwx,g=rx,o=x test
:将文件夹test及文件夹内全部内容设置为rwxr-x–x
权限数字序号
权限可以用3位数字代表:第一位数字表示用户权限,第二位数字表示用户组权限,第三位数字表示其他用户权限
- 0:无任何权限,即—
- 1:仅有x权限,即–x
- 2:仅有w权限,即-w-
- 3:仅有w和x权限,即-wx
- 4:仅有r权限,即r–
- 5:有r和x权限,即r-x
- 6:有r和w权限,即rw-
- 7:有全部权限,即rwx
示例:
777:拥有全部权限
chown
:修改文件、文件夹所属用户和用户组
普通用户无法修改所属为其他用户或用户组,此命令只适用于root用户执行
语法:
chown [-R] [用户][:][用户组] 文件或文件夹
- -R:同chmod,对文件夹内全部内容应用相同规则
- 用户:修改为所属用户
- 用户组:修改为所属用户组
:
:用于分割用户和用户组
示例:
chown root hello.txt
:将hello.txt所属用户修改为rootchown :root hello.txt
:将hello.txt所属用户组修改为rootchown -R root test
:将文件夹test所属用户修改为root并对文件夹全部内容应用同样规则
实用快捷键
命令 | 作用 |
---|---|
Ctrl + c |
强制停止 |
Ctrl + d |
退出登出 |
history |
查看历史命令 |
Ctrl + l 或 clear |
清屏 |
软件安装
yum
:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
语法:
yum [-y] [install | remove | search] 软件名称
- -y:自动确认,无需手动确认安装或卸载过程
- install:安装
- remove:卸载
- search:搜索
- yum命令需要root权限,可以su切换到root或者使用sudo提权
- yum命令需要联网
控制软件启动/关闭
systemctl
:控制软件的启动和关闭
语法:
systemctl start | stop | status | enable | disable 服务名
start
:启动stop
:关闭status
:查看状态enable
:开启开机自启disable
:关闭开机自启- 对应安装的第三方软件如果通过服务注册,也可以使用systemctl进行控制
- 部分软件安装后没有自动集成到systemctl,需要手动添加
软连接
ln
:创建软连接
在系统中创建软连接,可以将文件、文件夹链接到其他位置,类似windows的快捷方式
语法:
ln -s 参数1 参数2
- -s:创建软连接
- 参数1:被链接的文件或文件夹
- 参数2:链接到的目的地
示例:
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
日期和时区
date
:在命令行中查看系统的时间
语法:
date [-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 '+%Y-%m-%d'
修改时区
Linux系统默认时区非中国的东八区
- 使用root权限,修改时区为东八区时区。将系统自带的localtime文件删除,并将/usr/sharz/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntp
程序:自动校准系统时间
- 安装ntp:
yum -y install ntpd
- 启动并设置开机自启,设置自启后会定期更新校准时间:
systemctl start ntpd systemctl enable ntpd
或者手动校准(需要root权限):
ntpdate -u ntp.aliyun.com
修改主机名
- 查看主机名:
hostname
- 修改主机名:
hostnamectl set-hostname 要修改主机名
,需要root权限
ping:检查指定的网络服务器是否可联通
语法:
ping [-c num] ip或主机名
-c
:检查的次数,不使用-c将无限次持续检查
示例:
- 检查到baidu是否联通:
ping baidu.com
wget:在命令行内下载网络文件
语法:
Wget [-b] url
-b
:可选,后台下载,将日志写入到当前工作目录的wget-log文件url
:下载链接tail -f wget-log
:通过tail命令可以在后台查看下载进度- 无论是否下载完成,都会生成要下载的文件
curl:发送http网络请求,用户下载文件、获取信息等
语法:
Curl [-O] url
-O
:用于下载文件,当url是下载链接时,可以使用此选项保存文件
nmap:查看端口占用情况
- 安装nmap:
yum -y install nmap
语法:
nmap 被查看的地址
netstat:查看指定端口的占用情况
语法:
netstat -anp | grep 端口号
- 安装:
yum -y install net-tools
ps:查看系统中的进程信息
语法:
ps [-e -f]
-e
:显示全部的进程-f
:以完全格式化的形式展示信息(展示全部信息)- 一般固定用法:
ps -ef
列出全部进程的全部信息
列说明:
UID
:进程所属用户IDPID
:进程的进程号IDPPID
:进程的父ID(启动此进程的其他进程)C
:此进程的CPU占用率STIME
:进程的启动时间TTY
:启动此进程的终端序号,如果显示?表示非终端启动,是系统内置启动TIME
:进程占用CPU的时间,累计使用CPU的时间CMD
:进程对应的启动命令或者启动路径
Kill:关闭进程
语法:
kill -9 [进程ID]
-9
:表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭进程需要看自身的处理机制。
top:查看CPU、内存使用情况
语法:直接输入top即可,按q或者ctrl + c退出
默认每5s刷新一次
参数说明
行数 | 说明 |
---|---|
第一行 | top :命令名称;18:29:08 :当前系统时间;up 2:09 :已经启动了2个小时9分钟;2 users :表示2个用户登录了系统;load average :代表当前1、5、15分钟的负载 |
第二行 | Tasks 103 total :103个进程;1 running :1个进程正在进行;102 sleeping :102个进程正在休眠;0 stopped :0个停止进程;0 zombie :0个僵尸进程 |
第三行 | %Cpu(s) :CPU使用率;0.0 us :用户cpu使用率;sy :系统使用率;ni :高优先级进程占用CPU时间百分比;id :空闲CPU率;wa :IO等待CPU占用率;hi :CPU硬件中断率;st :强制等待占用CPU率 |
第四行 | KiB Mem :物理内存;total :总量;free :空闲;used :使用;buff/cache :buff和cache占用 |
第五行 | KiB Swap :虚拟内存(交换空间);total :总量;free :空闲;used :使用,buff/cache :buff和cache占用 |
PID
:进程IDUSER
:进程所属用户PR
:进程优先级,越小越高NI
:负值表示高优先级,正值表示低优先级VIRT
:进程使用虚拟内存,单位KBRES
:进程使用物理内存,单位KBSHR
:进程使用共享内存,单位KBS
:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)%CPU
:进程占用CPU率%MEM
:进程占用内存率TIME+
:进程使用CPU时间总计,单位10毫秒COMMAND
:进程的命令或者名称或者程序文件路径
top命令选项
-p
:只显示某个进程的信息-d
:设置刷新时间,默认5s-c
:显示产生进程的完整命令,默认是进程名-n
:指定刷新次数,比如top -n -3,刷新3次后退出-b
:以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top -p -n 3 > /tmp/top.tmp-i
:不显示任何闲置(idle)或者无用(zombie)的进程-u
:查找特定用户启动的进程
df:查看硬盘的使用情况
语法:
df [-h]
-h
:以更加人性化的单位显示
iostat:查看CPU、磁盘的相关信息
语法:
iostat [-x] [num1] [num2]
-x
:显示更多信息num1
:数字,刷新间隔num2
:数字,刷新几次
Device
:设备硬盘tps
:设备每秒的传输次数KB_read/s
:设备每秒的读速度(KB)KB_wrn/s
:设备每秒写速度(KB)KB_read
:总的读数据量KB_wrtn
:总的写数据量
环境变量
env
:查看已经配置的环境变量,键值对形式PATH
:记录了系统执行任何命令的搜索路径。以冒号分隔路径,windows中PATH变量通过分号分隔路径。$符号
:用于取变量的值
示例:
Echo $PATH
:将PATH环境变量的值,通过echo语句输出出来。
- 设置环境变量:
- 临时设置:
export 变量名 = 变量值
- 永久生效:
- 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
- 针对所有用户生效,配置在系统的:/etc/profile文件中
- 通过source 配置文件,立刻生效
- 临时设置:
示例:
vim /etc/profile
echo $PATH
export PATH=$PATH:~Coot/myenv
source /etc/profile
tar
Linux常用两种压缩格式
- .tar:tarball,归档文件,即简单的将文件组装到一个.tar文件内,并没有太多文件体积的减少,仅仅是简单的封装。
- .gz:常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大减少压缩后的体积。
语法:
tar [-c -v -x -f -z -C] 参数1 参数2 ...参数N
-c
:创建压缩文件,用于压缩模式-v
:显示压缩,解压过程,用于查看进度-x
:解压模式-f
:要创建的文件夹或者要解压的文件夹,-f选项必须在所有选项中位置处于最后一个-z
:gzip模式,不使用-z就是普通的tar格式-C
:选择解压的目的地,用于解压模式
压缩示例:
tar -cvf test.rar 1.txt 2.txt 3.txt
:将1.txt、2.txt、3.txt压缩到test.rar文件内tar -zcvf test.rar 1.txt 2.txt 3.txt
:将1.txt、2.txt、3.txt压缩到test.tar.gz文件内,使用gzip模式
解压示例:
tar -xvf test.tar
:解压test文件tar -xvf test.tar -C /home/test
:解压至指定目录tar -xvf test.tar.gz -C /home/test
:解压至指定目录
zip:压缩文件为zip压缩包
语法:
zip [-r] 参数1 参数2 ... 参数N
-r
:被压缩得包含文件夹的时候,需要使用-r选项
示例:
zip test.zip a.txt b.txt c.txt
:将a.txt,b.txt,c.txt文件压缩到test.zip文件内。zip -r test.zip test a.txt
:将test、a.txt文件压缩到test.zip文件内。
unzip:解压zip压缩包
语法:
unzip [-d] 参数
-d
:指定要解压的位置- 参数:被解压的zip压缩包文件
示例:
unzip test.zip
:将zip解压到当前目录unzip test.zip -d /home/test
:将test.zip解压到home下的test文件夹