一、Linux的目录结构
1.Linux操作系统的目录结构
Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录/
, 所有文件都在它下面
2.Linux路径的描述方式
在Linux系统中,路径之间的层级关系,使用:
/
来表示(快速区分,Linux第一个字母L左斜)在Windows系统中,路径之间的层级关系,使用:
\
来表示
3./
在Linux中的表示
出现在开头的/表示:根目录
出现在后面的/表示:层次关系
二、基础Linux命令
1.命令与命令行
我的感觉就是,你打开终端看到的就是命令行,输入的就是命令
2.Linux命令基础格式
通用格式:
command [-options] [parameter]
command
: 命令本身
-options
:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter
:[可选,非必填]命令的参数,多数用于命令的指向目标等
3.ls命令
3.1.ls基本格式
ls [-a -l -h] [Linux路径]
-a-l-h
是可选的选项
Linux路径是此命令可选的参数
3.2.ls命令作用
当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容(默认是HIOME下的文件或文件夹)
3.3.HOME目录
每个用户在Linux系统的专属目录,默认在:/home/用户名
3.4.当前工作目录
Linux命令在执行命令的时候,需要一个工作目录,打开命令行程序默认的工作目录是用户的HOME目录
3.5.ls+路径
ls / // 代表查看根目录
根目录查看方式
3.6.参数-a
查看全部文件、文件夹包括隐藏文件,带点的文件是隐藏文件
3.7.参数-l
以列表(竖向排列)的形式展示内容,并展示更多信息
3.8.参数-h
要与
-l
一同使用,可以把内存大小更人性化的展示出来,小于1k不显示单位
3.9.组合使用的两种方式(自行组合)
ls -a -l
ls -al
4.cd命令(Change Directory)
4.1.cd基本格式
cd [Linux路径]
cd命令无需选项,只有参数,表示要切换到哪个目录下
cd命令直接执行,不写参数,表示回到用户的HOME目录
4.2作用
可以通过cd命令,更改当前所在的工作目录
下图的home笔误应该是HOME或者说是/home/用户名
4.3特殊路径符
.
表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
..
表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录
~
表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录,有点像vue里用@
代表src
4.4小细节
如果你要找当前目录下的下级目录直接cd 需要的目录名字,如果加
/
代表从根目录去找,具体可以看看绝对目录相对目录的概念
5.pwd命令(Print Work Directory)
5.1pwd基本格式
pwd
pwd命令,无选项,无参数,直接输入pwd即可
5.2作用
输出当前所在的工作目录
6.mkdir(Make Directory)
6.1mkdir基本格式
mkdir [-p] Linux路径
参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
-p
选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
6.2作用
创建目录
7.touch
7.1touch基本格式
touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
7.2作用
创建文件
8.cat
8.1cat基本格式
cat Linux路径
cat没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
8.2作用
查看文件内容
9.more
9.1more基本格式
more Linux路径
没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
9.2作用
查看文件内容,与cat相比支持翻页,用于查看文本较多的文件
空格下一页,
b
上一页,q
退出
例如 more /etc/service
10.cp(copy)
10.1cp的基本格式
cp [-r] 参数1 参数2
-r
选项,可选,用于复制文件夹使用,表示递归参数1,Linux路径,表示被复制的文件或文件夹(代表windows ctrl+c)
参数2,Linux路径,表示要复制去的地方(代表windows ctrl+v)
10.2作用
cp命令可以用于复制文件\文件夹,给路径的时候就连带着改名了
11.mv(move)
11.1move的基本格式
mv 参数1 参数2
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
11.2作用
相当于剪切
12.rm(remove)
12.1rm的基本格式
rm [-r -f] 参数1 参数2 ... 参数n
同cp命令一样,-r选项用于文件夹操作
-f
表示force,强制删除(不会弹出提示确认信息)普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
所以一般普通用户用不到
-f
选项参数1、参数2、......、参数N 表示要删除的文件或文件夹路径,按照空格隔开
12.2作用
删除文件/文件夹
12.3通配符
rm命令支持通配符
*
,用来做模糊匹配符号* 表示通配符,即匹配任意内容(包含空),示例:
test
*
,表示匹配任何以test开头的内容
*
test,表示匹配任何以test结尾的内容
*
test*
,表示匹配任何包含test的内容
系统管理员下删除
su - root
+密码进入(密码不显示)exit
退出
12.4程序员必会技能(清空控制台)
先进入root模式,使用前记得拍个快照
rm -rf /*
13.which
13.1which的基本格式
which 要查找的命令
13.2作用
可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
14.find
14.1find的基本格式
find 起始路径 -name "被查找的文件名"
find 起始路径 -size +|-n[kMG]
可以使用通配符
+、- 表示大于和小于,不写就代表等于
n表示大小数字
kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
14.2作用
可以通过find命令去搜索指定的文件
find / -size 100k
15.grep
15.1grep的基本格式
grep [-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号。
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用""(双引号)将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
15.2作用
可以通过grep命令,从文件中通过关键字过滤文件行
15.3管道符
|
含义将管道符左边命令的结果,作为右边命令的输入
16.wc
16.1wc的基本格式
wc [-c -m -l -w] 文件路径
选项,-c,统计bytes数量
选项,-m,统计字符数量
选项,-l,统计行数
选项,-w,统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
16.2作用
通过wc命令统计文件的行数、单词数量等
17.echo
17.1echo的基本格式
echo 要输出的内容
就跟print一样,要是输出的多用
""
包裹起来,要是想输出一些特殊的用反引号`包裹
17.2作用
输出语句
如果想用
/
echo/
就行但是想用
\
得echo\\
18.重定向符
18.1重定向符的基本格式
重定向符:>和>>
>
,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>
,将左侧命令的结果,追加写入到符号右侧指定的文件中
18.2作用
添加内容
19.tail
19.1tail的基本格式
tail [-f -num] Linux路径
参数,Linux路径,表示被跟踪的文件路径
选项,-f,表示持续跟踪
选项, -num,表示,查看尾部多少行,不填默认10行
19.2作用
倒着查看内容
-f
的使用样例
ctrl+c
退出
20.vi\vim编辑器
20.1介绍
vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
20.2vi\vim编辑器的三种工作模式
命令模式(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
输入模式(Insert mode)
也就是所谓的编辑模式、插入模式。 此模式下,可以对文件内容进行自由编辑。
底线命令模式(Last line mode)
以:开始,通常用于文件的保存、退出。
20.3命令模式
vi 文件路径
或者vim 文件路径
如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
如果文件路径表示的文件存在,那么此命令用于编辑已有文件
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
命令模式 | ESC | 任何情况下输入esc都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup( Pgup) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl+r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
20.4底线命令模式
输入
:
进入底线命令模式
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set nonu | 不显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
底线命令模式 | :set nopaste | 不设置粘贴模式 |
三、Linux用户和权限
1.root用户
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
普通用户的权限,一般在其HOME目录内是不受限的
一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
1.1su(Switch User)和exit
格式:
su [-] [用户名]
-
符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d
1.2sudo
使用sudo命令,为普通的命令授权,临时以root身份执行。
基本格式
sudo 其他命令
1.3为普通用户配置sudo认证
1.切换到root用户
2.进入
sudoers
文件中,两种方式①visudo
②vim /etc/sudoers
3.在最后一行加
用户名 ALL=(ALL) NOPASSWD: ALL
(NOPASSWD前是一个制表符按一下TAB
就行,还有不要写成PASSWORD了)
4.
esc
+:wq
+回车
5.回到普通用户
2.用户、用户组管理
Linux中关于权限的管控级别有2个级别,分别是:
针对用户的权限控制
针对用户组的权限控制
2.1用户组管理
以下命令需root用户执行
①创建用户组
groupadd 用户组名
②删除用户组
groupdel 用户组名
2.2用户管理
以下命令需root用户执行
①创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
②删除用户
userdel [-r] 用户名
- 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
③查看用户所属组
id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
④修改用户所属组
usermod -aG 用户组 用户名,将指定用户加入指定用户组
⑤查看系统中的用户
getent passwd
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
⑥查看所有组
getentgroup
包含3份信息,组名称:组认证(显示为x):组ID
3.查看权限控制
3.1查看Linux文件的权限管控信息
序号1,表示文件、文件夹的权限控制信息
序号2,表示文件、文件夹所属用户
序号3,表示文件、文件夹所属用户组
3.2序号1
权限细节总共分为10个槽位
r
(read)
针对文件可以查看文件内容
针对文件夹,可以查看文件夹内容,如ls命令
w
(write)
针对文件表示可以修改此文件
针对文件夹,可以在文件夹内:创建、删除、改名等操作
x
(execute)
针对文件表示可以将文件作为程序执行
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
4.修改权限控制chmod
4.1chmod的基本格式
chmod [-R] 权限 文件或文件夹
选项:-R,对文件夹内的全部内容应用同样的操作
4.2作用
使用chmod命令,修改文件、文件夹的权限信息
例子去除用户写的权限
4.3权限的数字序号(推荐)
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
数字 解释 代表 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
5.修改权限控制chown
5.1chown的基本格式
chown [-R] [用户] [:] [用户组] 文件或文件夹
选项,-R,同chmod,对文件夹内全部内容应用相同规则
选项,用户,修改所属用户
选项,用户组,修改所属用户组
:
用于分隔用户和用户组
5.2作用
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
用户组和其他都修改
四、Linux实用操作
1.快捷键
1.1ctrl+c强制停止
Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl + c
命令输入错误,也可以通过快捷键ctrl + c,退出当前输入,重新输入
1.2ctrl+d退出或登出(等同于exit)
- 可以通过快捷键:ctrl + d,退出账户的登录
- 或者退出某些特定程序的专属页面
- 不能用于退出vi/vim,有时候注意文档提示有用q退出的
1.3history历史命令搜索
1.4!
快速搜索之前的写过的命名
!+前缀+回车,倒着寻找最近的
1.5ctrl+r关键字搜索
正着一条
1.6光标移动快捷键
ctrl + a,跳到命令开头(shift+7,我喜欢用这个word和写代码的时候都能用)
ctrl + e,跳到命令结尾(shift+1)
ctrl + 键盘左键,向左跳一个单词
ctrl + 键盘右键,向右跳一个单词
1.7清屏
ctrl+l
(clear
)也就是 翻页,鼠标上滚还是会有
reset
,鼠标上滚没有,但是会有history
2.软件安装
2.1Centos安装yum命令安装软件
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
格式:yum [-y] [install | remove | search] 软件名称
选项:-y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索
yum命令需要root权限,可以su切换到root,或使用sudo提权(前提你配过)。
yum命令需要联网
2.2Ubuntu安装apt命令安装软件
apt:Ubuntu使用apt管理器
格式:apt [-y] [install | remove | search] 软件名称
用法和yum一致,同样需要root权限
install:安装
remove:卸载
search:搜索
3.控制软件启用和关闭
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
格式:
systemctl start | stop | status | enable | disable | restart 服务名
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
NetworkManager,主网络服务
network,副网络服务
firewalld,防火墙服务
sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
reboot
重启
4.软连接
相当于windows的快捷方式,把文件/文件夹连接到另一个位置
格式:
ln -s 参数1 参数2
s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
连接后对以前文件/文件夹的操作现在对软连接也生效
想要删除软连接走
rm
操作就行
5.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到现在的秒数
5.1修改时区
切换root用户
rm -f /etc/localtime
rm -f /etc/localtime
5.2自动校准
通过ntp程序自动校准系统时间
安装ntp:yum -y install ntp
启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd
当ntpd启动后会定期的帮助我们联网校准系统的时间
也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com
6.IP地址、主机名
6.1ip地址
通过命令:
ifconfig
,查看本机的ip地址,如无法使用ifconfig
命令,可以安装:yum -y install net-tools
看ens33就行
6.2127.0.0.1
这个IP地址用于指代本机
6.30.0.0.0
特殊IP地址
可以用于指代本机
可以在端口绑定中用来确定绑定关系
在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
6.3主机名
查看主机名
hostname
修改主机名
hostnamectl set-hostname 主机名
,需要root
6.4本地域名解析
C:\Windows\System32\drivers\etc
下的hosts.ics
6.5配置固定IP
1.在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
2.在Linux系统中手动修改配置文件,固定IP
修改后重启
root下输入
我喜欢一步一步的写
cd /etc/sysconfig/
cd network-scripts/
vim ifcfg-ens33
当然你可以一步到位
vim /etc/sysconfig/network-scripts/ifcfg-ens33
以上二选一
修改
IPADDR="192.168.21.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.21.2"
DNS1="192.168.21.2"
保存并退出
wq
重启
systemctl restart network
7.网络传输
7.1ping
命令
通过ping命令,检查指定的网络服务器是否是可联通状态
格式:ping [-c num] ip或主机名
选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
参数:ip或主机名,被检查的服务器的ip地址或主机名地址
7.2wget
命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
格式:wget [-b] url
选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
参数:url,下载链接
7.3curl
命令
curl可以发送http网络请求,可用于:下载文件、获取信息等
格式:curl [-O] url 大哦
选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件(下载用,仅查看不需要)
参数:url,要发起请求的网络地址
7.4端口
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
Linux系统可以支持65535个端口,这6万多个端口分为3类进行使用
公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
查看端口占用情况
使用nmap命令
安装nmap:yum -y install nmap
格式:nmap IP地址
标签:文件,路径,常用命令,模式,命令,权限,Linux,配图 From: https://www.cnblogs.com/qy-blog/p/18231991查看指定端口的占用情况
通过netstat命令
安装netstat:yum -y install net-tools
格式:netstat -anp | grep 端口号