linux学习
目录结构
linux操作系统的目录结构
Linux只有一个顶级目录,称之为:根目录
Windows系统有多个顶级目录,即各个盘符
/在Linux系统中表示
出现在开头的
/
表示根目录,出现在后面的/
表示层级关系
Linux命令入门
Linux命令基础
什么是命令,命令行
- 命令:即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用
- 命令行:即Linux终端,可以提供字符化的操作页面供命令执行
Linux命令通用格式
command[-options][parameter]
- 命令本体,即命令本身
- 可选选项,控制命令的行为细节
- 可选参数,控制命令的指向目标
ls命令入门
- ls命令作用:在命令行中,以平埔的形式,展示当前工作目录(默认Home目录)下的内容
- Home目录:每一个用户在Linux系统的专属目录:默认在/home/用户名
- 当前工作目录:Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置目录在Home目录
ls命令的参数和选项
ls命令参数的作用:可以查看指定文件夹的内容,如果不给定参数,则查看当前工作目录下的内容
ls命令的选项:
(1)-a选项,可以展示出隐藏的内容
(2)-l选项,以列表的形式展示内容,并展示更多细节
(3)-h选项,需要和-l选项搭配使用,可以显示文件的大小单位
命令的选项组合使用
命令的选项是可以组合的,比如
ls -lah
,等同于ls -a -l -h
目录切换相关命令
cd命令(切换工作目录)
用来切换当前的工作目录,语法是
cd [Linux路径]
- 没有选项,只有参数,表示目标路径
- 使用参数,切换到目标路径
- 不使用参数,切换工作目录到当前用户的HOME
pwd命令(输出工作目录)
- pwd命令:没有选项,没有参数,直接使用即可
- 作用:输出当前的工作目录
相对路径和绝对路径
- 绝对路径:以根目录为起点,描述路径的方式,路径以
/
开头 - 相对路径:以当前目录做起点,描述路径的方式,路径不需以
/
开头
特殊路径符
.
表示当前目录..
表示上一级目录~
表示用户的HOME目录
创建目录命令
mkdir命令(创建目录)
- mkdir用以创建新的目录
- 语法:
mkdir [-p] Linux路径
- 参数必填,表示要创建的目录的路径,相对,绝对路径均可使用
- p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
文件操作命令
touch命令(创建文件)
- 用于创建一个新的文件
- 语法
touch Linux路径
- 参数必填,表示要创建文件的路径
cat命令(查看文件内容)
- 用于查看文件内容
- 语法
cat Linux路径
- 参数必填,表示要查看文件的路径
more命令(翻页查看文件内容)
- 用于查看文件内容,可翻页查看
- 语法
more Linux路径
- 参数必填,表示要查看文件的路径
- 使用空格翻页,使用p退出查看
cp命令(复制文件/文件夹)
- 用于复制文件或文件夹
- 语法
cp [-r] 参数1 参数2
- 参数1和参数2分别表示被复制的文件或文件夹和复制要去的地方
- 选项可填,带上表示复制的是一个文件夹
mv命令(移动文件)
- 用于移动文件
- 语法
mv 参数1 参数2
- 参数1表示被移动的文件或文件夹,参数2表示移动要去的地方,如果不存在则对参数1进行改名
rm命令(删除文件/文件夹)
- 用于删除文件或文件夹
- 语法
rm [-r -f] 参数1 参数2 ......
- -r选项,可选,表示文件夹删除 -f,可选,表示强制删除(一般用于root用户)
- 参数表示被删除的文件或文件夹路径,可支持批量删,也支持通配符*,可用于模糊匹配
查找命令
which命令(查找命令)
- 查找命令的程序文件
- 语法
which 要查找的命令
find命令(查找文件)
(1)按名称查找
语法:find 起始路径 -name "被查找文件名"
- 支持通配符
*
(2)按文件大小查找
语法:find 起始路径 -size +/- n[KMG]
- +/-代表大于或小于
- n代表数字
- [KMG]是大小的单位
1 | find /user -size + 100 M |
其他命令
grep命令(过滤文件行)
- 从文件中通过关键词过滤文件行
- 语法:
grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中匹配的行的行号
- 关键字必填,表示要过滤的关键字,建议用” “包围起来
- 文件路径必填,表示要过滤的内容的文件路径,可通过管道符输入。
WC命令(统计文件数据)
- 命令统计文件的行数,单词数,字节数,字符数
- 语法:
wc [-c -m -l -w] 文件路径
- 不带选项默认统计行数,单词数,字节数
- -c字节数 -m字符数 -l行数 -w单词数
- 参数,被统计的文件路径,可通过管道符输入
管道符|
将管道左边的结果作为右边的输入
1 | cat text.txt | grep hello | wc -l |
echo命令(输出内容)
- 可以使用echo命令在命令行输出指定内容
- 语法:
echo 输出内容
- 无需选项,只需一个参数,表示要输出的内容,可用” “包围
`` `反引号符
被`` `包围的内容,会被当做命令执行,而非普通字符
1 | echo `pwd` |
重定向符(写入结果)
>
,将左侧命令的结果,覆盖写入符号右边的指定文件中>>
,将左侧命令的结果,追加写入符号右边的指定文件中
tail命令(查看尾部内容)
- 查看文件尾部的内容,并可以持续追踪
- 语法:
tail [-f -num] Linux路径
-f
:持续追踪,-num
,查看尾部多少行,默认查看尾部10行
vi编辑器
简介
- vi\vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件
- vim是vi的升级版,一般用vim即可,包含vi的全部功能
基础命令
vi 文件路径
vim 文件路径
运行模式
- 命令模式:默认模式,可以通过键盘快捷键控制文件内容
- 输入模式:通过命令模式输入
i
进入,可以输入内容进行编辑,按esc
退回命令模式 - 底线命令模式:通过命令模式进入,可以对文件进行保存,关闭操作,输入
wq
退出
Linux用户和权限
Linux的root用户
Linux系统的超级用户管理员是:root
su命令(切换命令)
- 可以切换用户,语法:
su [-] [用户名]
-
表示切换后带上环境变量,建议带上- 用户可以省略,省略默认切换到root
sudo命令(增加权限)
可以让一条普通命令带有root权限,语法:
sudo 其他命令
需要以root用户执行
visudo
命令,增加相关的配置方法即可让普通用户有sudo
命令的执行权限在该文件的最后一行加入
1
用户名 ALL=(ALL) NOPASSWD: ALL
用户 用户组管理
Linux用户管理模式
- Linux可以支持多用户,多用户组,用户加入多个组
- Linux权限管控的单元是用户级别和用户组级别
用户 用户组相关命令
groupadd
添加用户组,groupdel
删除用户组useradd
添加用户,userdel
删除用户usermod -aG 用户组 用户名
修改用户组,将指定用户加入到用户组,id
命令查看用户信息getent password
查看系统全部用户信息getent group
查看系统全部组信息
查看权限控制
ls -l列出的权限信息
1 | drwxr-xr-x. 2 yh yh 6 5月 19 02:34 Desktop |
- 序号1,表示文件,文件夹的控制信息
- 序号2,表示文件,文件夹的所属用户
- 序号3,表示文件,文件夹所属用户组
权限细节
文件类型(1) | 所有者权限(2-4) | 同组用户权限(5-7) | 其他用户权限(8-10) |
---|---|---|---|
- 或d 或l |
(r 或- ) |
(w 或- ) |
(x 或- ) |
文件类型:-
表示文件,d
表示文件夹,l
表示软连接
rwx分别代表什么
r
表示可以查看内容w
表示可以修改此文件,针对文件夹即可以创建,修改,删除等操作x
表示可以将文件作为程序执行,针对文件夹,则表示可以将工作目录更改到此文件夹,即cd
进入-
即代表不包含该类权限
修改权限控制-chmod
chmod命令(修改文件/文件夹权限)
修改文件,文件夹的权限细节
只能是文件,文件夹的所属用户或root有权修改
语法:
chmod [-R] 权限 文件或文件夹
选项
-R
,对文件夹内的内容应用同样的规则1
2chmod -R u=rwx,g=rx,o=x hello.txt
#-rwxr-x--x
权限的数字序号
r
代表4,w
代表2,x
代表1通过相应的数字整合即可得到相应权限
1
2chmod -R 761 hello.txt
#-rwxrw---x
修改权限控制-chown
chown命令(修改文件/文件夹所属用户)
修改文件,文件夹的所属用户和用户组
此命令只适用于
root
用户语法:
chown [-R] [用户] [:] [用户组] 文件或文件夹
选项
-R
,对文件夹内的内容应用同样的规则选项用户和用户组分别对应修改所属用户和用户组
:
用于分隔用户和用户组1
2
3
4
5
6chown root hello.txt
#将文件的用户修改为root
chown :root hello.txt
#将文件的用户组修改为root
chown root:root hello.txt
#将文件的用户和用户组都修改为root
Linux实用操作
常用快捷键
ctrl+c
强制停止ctrl+d
退出登录history
查看历史命令ctrl+l
清屏ctrl+a/e
光标移动到命令开始或结束ctrl+<- | ->
左右跳单词
软件安装
Centos系统
- 语法:
yum [-y] [install | remove | search] 软件名称
- 选项
-y
,自动确认,无需手动确认安装和卸载过程 - 该操作需要root权限
Ubuntu系统
- 语法:
apt [-y] [install | remove | search] 软件名称
- 选项与Centos系统相同
控制软件进程
systemctl命令(控制软件启动等)
可以控制软件的启动,关闭和自启动
- 系统内置服务均可被
systemctl
控制 - 第三方软件,如果自动注册了,则可以被
systemctl
控制 - 如果没有自动注册,则可以手动注册
- 语法:
systemctl start | stop | status | enable | disable 服务名
start/stop
启动/停止status
状态enable/disable
开启自启/关闭开机自启
软连接
简介
可以将文件,文件夹链接到其他位置,链接只是一个指向,并不是物理移动,类似于Windows系统的快捷方式
使用用法
语法:ln -s 参数1 参数2
- -s选项,创建软连接
- 参数1:被链接的文件,文件夹
- 参数2:要连接去的目的地
日期和时区
date命令(查看时间)
可以查看时间,并可以格式化显示形式以及做日期计算
语法:`date [-d] [+格式化字符串]
%Y年 %y 年份后两位数字 %m 月份 %d 日 %H 小时 %M 分钟 %S 秒
修改Linux时区
1 | rm -f /etc/localtime #删除该文件 |
ntp
1 | yum -y install ntp #下载该软件 |
可以自动联网校准时间,也可以通过ntpdate -u ntp.aliyun.com
手动校准时间
IP地址和主机名
IP地址
IP地址是联网计算机的网络地址,用于在网络中进行定位 特殊IP:127.0.0.1表本机 0.0.0.0也可表示本机,也可在一些白名单中表示任意IP
主机名
主机名就是主机的名称,用于标识一个计算机
域名解析(主机名映射)
通过主机名找到对应的IP地址,即主机名映射
先从系统的本地记录中查找,如未找到,再去联网公开的DNS服务器去找
网络请求和下载
Ping命令(测试服务器是否可联通)
语法:`ping [-c num] ip或主机名
选项c,测试的次数
1
ping -c 3 baidu.com
wget命令(网络文件下载)
- 语法:
wget [-b] url
- 选项-b,后台下载
curl命令(网络请求)
- 语法:
curl [-O] url
- 选项-O,用于下载使用
端口
IP只能确认计算机,通过端口才能锁定要交互的程序
划分
- 公认端口:1-1023,用于系统内置或常用知名软件绑定使用
- 注册端口:1024-49151,用于松散绑定使用(用户自定义)
- 动态端口:49152-65535,用于临时使用(多用于出口)
查看端口占用
nmap IP地址
,查看指定IP对外暴露的端口netstat -anp | grap 端口号
,查看本机指定端口号的占用情况
进程管理
简介
进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID
ps-ef
命令(查看进程信息)ps -ef | grep 关键字
过滤指定关键字的进程kill [-9] 进程号
关闭指定进程,-9表示强制关闭
主机状态监控
top命令
- 类似于windows的任务管理器
- 查看CPU,内存,进程的信息
df命令(查看磁盘使用率)
iostat命令(查看磁盘速率)
sar -n DEV 命令(查看网络情况)
环境变量
简介
环境变量是一组信息记录,类型是key-value,用于操作系统运行时记录关键信息
env命令
可以查看当前系统配置的环境变量信息,通过$
符可以取出环境变量的值
1 | echo ${PATH} |
PATH
环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。可以通过修改这个项目的值,加入自定义的命令搜索路径
如export PATH=$PATH:自定义路径
修改环境变量
临时生效:export 名称=值
永久生效
针对用户:
~/bashrc文件中配置
针对全局:
/etc/profile 文件中配置
配置完成,通过
source
命令立刻生效