Linux基础命令
Linux的目录结构
,示例:
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- *test*,表示匹配任何包含test的内容
which命令
功能:查看命令的程序本体文件路径
语法:which 参数
- 参数:被查看的命令
find命令
功能:搜索文件
按文件名搜索:find 路径 -name 参数
-
路径,搜索的起始路径
-
参数,搜索的关键字,支持通配符*, 比如:
*
test表示搜索任意以test结尾的文件
按文件大小搜索文件:find 起始路径 -size +|-n[KMG]
- +、-表示大于和小于
- n表示数值
- KMG表示大小的单位 kb、MB、GB
示例:
- 查找小于10KB的文件:find / -size -10k
- 查找大于100MB的文件:find / -size +100M
- 查找大于1GB的文件:find / -size +1G
grep命令
功能:从文件中通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用” ”将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
参数文件路径,可以作为管道符的输入
wc命令
功能:统计
语法:wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
参数文件路径,可作为管道符的输入
管道符|
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例:
cat a.txt | grep itheima
,将cat a.txt的结果,作为grep命令的输入(相当于将a.txt的内容作为grep的输入),然后用来过滤itheima
关键字
可以支持嵌套:
cat a.txt | grep itheima | grep itcast
echo命令
功能:在命令行上输出内容
语法:echo 参数
- 参数:被输出的内容,使用“ ”包裹
`反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:
- echo `pwd`,会输出当前工作目录
tail命令
功能:查看文件尾部内容,跟踪文件最新更改
语法:tail [-f -num] 参数
- 参数:被查看的文件的Linux路径
- 选项:-f,持续跟踪文件修改,如果文件被修改,会自动展示最新的结果
- 选项:-num,表示查看尾部多少行,不填默认10行
head命令
功能:查看文件头部内容
语法:head [-n] 参数
- 参数:被查看的文件的路径
- 选项:-n,查看的行数
重定向符
功能:将符号左边的命令产生的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
vi编辑器
快速体验
命令模式快捷键
底线命令快捷键
命令的选项
我们学习的一系列Linux命令,它们所拥有的选项都是非常多的。
比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。
课程中, 并不会将全部的选项都进行讲解,否则,一个ls命令就可能讲解2小时之久。
课程中,会对常见的选项进行讲解, 足够满足绝大多数的学习、工作场景。
查看命令的帮助
可以通过:命令 --help
查看命令的帮助手册
查看命令的详细手册
可以通过:man 命令
查看某命令的详细手册
Linux用户与权限
认知root用户
在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
- 普通用户的权限,一般在其HOME目录内是不受限的
- 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
su
sudo
exit
通过exit从root用户切换回普通用户
用户、用户组管理
用户组
- 创建用户组
groupadd 用户组名
- 删除用户组
groupdel 用户组名
用户
getent
- 语法:
getent passwd
用于查看当前系统中有哪些用户
每一行代表一个用户得信息,每一行共有7份信息,分别是:
用户名:密码(X):用户ID:组ID:描述信息(无用)HOME目录:执行终端(默认bash)
- 语法:
getent group
用于查看当前系统中有哪些用户组
包含3份信息,组名称:组认证(显示为X):组ID
查看权限控制
序号1位置细节
rwx
修改文件、文件夹权限信息-chmod
什么是751权限
所以751=rwx r-x --x
修改文件、文件夹所属用户、组-chown
Linux常用操作
快捷键
强制停止 ctrl+c
退出或登出 ctrl+d
历史命令显示 history
历史命令搜索 ctrl+r
光标移到快捷键
- ctrl+a,跳到命令开头
- ctrl+e,跳到命令结尾
- ctrl+键盘左键,向左跳一个单词
- ctrl+键盘右键,向右跳一个单词
清屏 快捷键ctrl+l 或 clear命令
软件安装
- CentOS系统使用:
- yum:RPM包软件管理器,用于自动化安装配置Liux软件,并可以自动解决依赖问题。
- 命令:yum [-y] [install | remove | search] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认,无需手动确认安装或卸载过程
- Ubuntu系统使用
- apt [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
- apt [install remove search] [-y] 软件名称
yum 和 apt 均需要root权限
systemctl
功能:控制系统服务(软件)的启动关闭等
语法:systemctl start | stop | restart | disable | enable | status 服务名
- start,启动
- stop,停止
- status,查看状态
- disable,关闭开机自启
- enable,开启开机自启
- restart,重启
部分软件安装后没有自动集成到systemctli中,我们可以手动添加
软链接(快捷方式)ln
功能:创建文件、文件夹软链接(相当于快捷方式)
语法:ln -s 参数1 参数2
- 参数1:被链接的文件或文件夹
- 参数2:要链接去的地方(快捷方式的名称和存放位置)
在命令行查看日期时间
语法: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 到现在的秒数
示例:
-
按照2022-01-01的格式显示日期
-
按照2022-01-01 10:00:00的格式显示日期
由于中间带有空格,所以使用双引号包围格式化字符串,作为整体。
-
-d选项日期计算
-
支持的时间标记为:
-
修改Linux时区
使用root权限修改时区为中国时区
ntp 自动校准系统时间
功能:同步时间
安装:yum -y install ntp
启动管理:systemctl start | stop | restart | status | disable | enable ntpd
ntp启动后就会自动校准系统的时间
手动校准时间:ntpdate -u ntp.aliyun.com
ip地址(代表一台计算机)
IPV4格式:a.b.c.d
- abcd为0~255的数字,如192.168.88.101
特殊IP:
- 127.0.0.1,表示本机
- 0.0.0.0
- 可以表示本机
- 可以在端口绑定中用来确定绑定关系
- 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意P访问
查看ip:ifconfig
主机名
功能:Linux系统的主机名称
查看:hostname
设置:hostnamectl set-hostname 主机名
域名解析
当输入一个域名后,计算机解析域名的流程
- 先查看本机的hosts文件中是否有该域名对应的ip地址记录
- windows:C:\Windows\System32\drivers\etc\hosts
- Linux:/etc/hosts
- 如果本机的hosts文件中没有则需要联网在DNS服务器中询问来查看域名对应的IP地址
本机配置主机名映射
配置VMware固定IP
-
在VMware Workstation(或Fusion)中配置P地址网关和网段(IP地址的范围)
-
在Liux系统中手动修改配置文件,固定IP
修改文件:
/etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" # 改为static,固定IP DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.88.131" # IP地址,自己设置,要匹配网络范围 NETMASK="255.255.255.0" # 子网掩码,固定写法255.255.255.0 GATEWAY="192.168.88.2" # 网关,要和VMware中配置的一致 DNS1="192.168.88.2" # DNS1服务器,和网关一致即可
- 修改完成后重启网卡
修改完成
进程管理
进程
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程D(进程号)
查看进程 ps
功能:查看进程信息
语法:ps [-e -f]
- -e, 显示出全部的进程
- -f,以完全格式化的形式展示信息(展示每个进程的全部信息)
- 固定用法就是:
ps-ef
列出全部进程的全部信息 - 查看全部进程信息,可以搭配grep做过滤:
ps -ef | grep xxx
(xxx是想要过滤的关键字)
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启动此进程的其它进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如显示?,表示非终端启动
- TIME:进程累计占用cpu的时间
- CMD:进程的启动路径
关闭进程 kill
端口(代表计算机中的某个程序)
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
- 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDM1端口等
- 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
nmap命令(查看计算机所有的端口占用)
netstat命令(查看指定端口占用情况)
功能:查看端口占用
用法:netstat -anp | grep xxx
网络传输
ping命令
测试网络是否联通
语法:ping [-c num] 参数
wget命令(下载网络文件)
curl命令(下载文件或发起网络请求)
主机状态
top命令 查看主机状态
功能:可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器,默认每5秒刷新一次
语法:top
,查看基础信息
信息详解
- PID: 进程id
- USER: 进程所属用户
- PR: 进程优先级,越小越高
- N: 负值表示高优先级,正表示低优先级
- VIRT: 进程使用虚拟内存,单位KB
- RES: 进程使用物理内存,单位KB
- SHR: 进程使用共享内存,单位KB
- S: 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
- %CPU: 进程占用CPU率
- %MEM: 进程占用内存率
- TIME+: 进程使用CPU时间总计,单位10毫秒
- COMMAND: 进程的命令或名称或程序文件路径
可用选项
交互式模式中,可用快捷键
df命令 查看磁盘占用
查看磁盘占用
iostat命令 查看CPU信息
查看CPU、磁盘的相关信息
sar命令 查看网络统计
查看网络统计
环境变量
环境变量 env
环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
在Linux系统中执行:env命令即可查看当前系统中记录的环境变量
环境变量是一种Keyvalue型结构,即名称和值
PATH变量
记录了执行程序的搜索路径(是其中的一个环境变量)
可以将自定义路径加入PATH内,实现自定义命令在任意地方均可执行的效果
也就是说在执行任何命令时,都会从PATH的路径中寻找对应的可执行程序,第一个没有就去第二个找,依次类推
$符号
可以取出指定的环境变量的值
语法:$变量名
示例:
echo $PATH
,输出PATH环境变量的值
echo ${PATH}ABC
,输出PATH环境变量的值以及ABC
如果变量名和其它内容混淆在一起,可以使用${}
自行设置环境变量
- 临时设置:
export 变量名=变量值
(临时设置的关机后就无法再取到)
-
永久设置:
-
针对当前用户生效,设置用户HOME目录内:
.bashrc
文件 -
针对所有用户生效,设置
/etc/profile
文件(同上) -
并通过语法:
source 配置文件
进行立刻生效
-
自定义PATH环境变量
环境变量PATH这个项目里面记录了系统执行命令的搜索路径,这些搜索路径也可以自行添加到PATH中去。
FinalShell的上传、下载
可以通过FinalShell工具,方便的和虚拟机进行数据交换。
在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:
- 浏览文件系统,找到Linux系统中的合适的文件,右键点击下载,即可传输到本地电脑
- 浏览文件系统,找到本地合适的目录,将本地电脑的文件直接拖拽进Linux中想要上传的目录,即可方便的将本地数据上传到Linux中
rz、sz命令
yum -y install Irzsz
压缩解压
压缩格式
- zip格式:Linux、Windows、MacOs常用
- 7zip: Windows.系统常用
- rar: Windows.系统常用
- tar: Linux、MacOs常用
- gzip: Linux、MacOs常用
Linux和Mac系统常用有2种压缩格式,后缀名分别是:
- .tar, 称之为tarball, 归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
- .gz, 也称之为.tar.gz, gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
tar命令
tar[ -c -v -x -f -z -C] 参数1 参数2..参数N
-
-c, 创建压缩文件,用于压缩模式
-
-v, 显示压缩、解压过程,用于查看进度
-
-x, 解压模式
-
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个,因为要接收压缩或解压后的路径参数
-
-z, gzip模式,不使用-z就是普通的tarball格式,一般在第一个
-
-C, 选择解压的目的地,用于解压模式,需单独使用,与解压的其他参数分开,使用空格分隔
tar命令压缩
tar压缩的常用组合为:
-
tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt、2.txt、3.txt压缩到test.tar文件内
-
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
-
将1.txt、2.txt、3.txt压缩到test.tar.gz文件内,使用gzip模式
tar命令解压
常用的tar解压组合有
-
tar -xvf test.tar
解压test.tar,将文件解压至当前目录
-
tar -xvf test.tar -C /home/dadada
解压test.tar,将文件解压至指定目录(/home/dadada)
-
tar -zxvf test.tar.gz -C /home/dadada
以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/dadada)
zip命令
zip压缩文件
zip [-r] 参数1 参数2...参数N
- -r 被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
示例
-
zip test.zip a.txt b.txt c.txt
将a.txt、b.txt、c.txt压缩到test.zip文件内
-
zip -r test.zip test itheima a.txt
-
将test、itheima两个文件夹和a.txt文件压缩到test.zip文件内
unzip解压文件
unzip [-d] 参数
- -d 指定要解压去的位置,同tar的-C选项
- 参数,被解压的zip压缩包文件
示例
unzip test.zip
将test.zip解压到当前目录unzip test.zip -d /home/dadada
将test.zip解压到指定文件夹内(/home/dadada)
su命令
切换用户
语法:su [-] [用户]
sudo命令
比如:
itheima ALL=(ALL) NOPASSWD: ALL
在visudo内配置如上内容,可以让itheima用户,无需密码直接使用sudo