1.Linux版本的划分
(1)发行版本
ubuntu,centos,redhat…
(2)内核版本
ps:牛客网,PAT刷题,每天10个选择题,1个编程题
2.操作系统(OS)
操作系统是计算机系统的基本系统软件。软件系统中操作系统是所有软件的核心。
操作系统负责控制、管理计算机的所有软件、硬件资源,是惟一直接和硬件系统打交道的软件,是整个软件系统的基础部分,同时还为计算机用户提供良好的界面。因此,操作系统直接面对所有硬件、软件和用户,它是协调计算机各组成部分之间、人机之间关系的重要软件系统。
3.Linux系统结构图
4.Linux的目录结构
(1)/ 根目录
(2)bin/ 常用程序 eg:ls,pwd…
boot/ 系统引导文件 eg:启动项设置…
dev/ 设备文件 ps:Linux中一切皆是文件
etc/ 系统程序及常用配置文件
home/ 用户目录
ps:系统用户 root 最高权限 存放在根目录下/root/
创建普通用户 存放在/home/
eg:aaa — 用户文件夹aaa /home/aaa
wang@wang-virtual-machine:/dev$
wang:表示当前登陆的用户名
wang-virtual-machine:主机名
/dev:表示当前工作目录
~ 表示当前用户目录
$ 表示普通用户
# 表示root用户
普通用户如果要输入系统的命令需要在命令前加上sudo
su 用户名 表示切换用户
lib/ 系统程序运行库
mnt/ 默认分区挂载点目录
opt/ 第三方软件安装目录
proc/ 系统状态文件
tmp/ 临时文件存放目录
usr/ 存放用户常用程序等
5.文件和目录管理指令
(1)ls
使用语法:ls 目录/文件/文件夹(可用通配符)
功能 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数 :
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为“.”的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
ps:
文件名的通配符
- 可以匹配任意0~N字符
? 可以匹配任意一个字符
以.开始的文件 被称为隐藏文件
(2)cd
使用语法 : cd [directory]
功能 :变换工作目录至 directory。
参数 :
directory 可为绝对路径或相对路径。若目录名称省略,则变换至用户的home directory (也就是登陆时所在的目录) 。“.”表示当前目录,“…”表示上一级目录,“-”表示进入此工作目录前所在的目录,“~”表示home directory,即用户主目录。
eg:
进入用户主目录 :
cd 或 cd ~
进入上一级目录下source目录 :
cd …/source
进入/usr/local目录
cd /usr/local
(3)cp
使用语法:cp (文件/文件夹 …)文件夹A 把()里的文件全部拷贝到 文件夹A
如果cp内容中带有文件夹,则需要加上参数-r
使用语法:cp 文件1 文件2 将文件1另存为文件2,不能有多余的文件
参数:
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r/-R 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
ps:
mkdir 创建一个文件夹 多级创建 mkdir AAA/BBB -p
touch 创建一个文件
tab 可自动补全命令或输入的文件名路径
passwd 用户名 更改用户名密码
若虚拟机无法启动,检查五个服务 此电脑右键管理—>服务—>VM开头的五个正在运行
(4)mv 移动 剪切
使用语法:mv (文件/文件夹 …) 文件夹A
使用语法:mv 文件1 文件2 表示重命名
(5)cat
使用语法 : cat [参数] file1 [file2…]
功能 :把档案串连接后传到基本输出
参数:
-n 或由 1 开始对所有输出的行数编号
ps:
查看文件命令
cat
head 查看前10行 或head file1 -n c 查看前c行
tail 查看后10行 同head tail -f file 监测文件,每有新增便输出
more 逐屏输出
gedit编辑器
使用语法:gedit 文件
重定向
. > 表示覆盖后面的文件
. >> 在文件尾端新增一行
echo 输出 可配合重定向使用
Ctrl+c 结束当前运行进程
(6)file
使用语法:file 文件
查看文件类型
(7)find
使用语法:find 路径 -name 文件名 按文件名搜索
使用语法:find 路径 -type 类型
f 表示普通文件
d 表示文件夹
c 字符设备文件
b 块设备文件
l 链接文件
s socket文件
使用方法:find 路径 -name 文件名 -exec cp {} 文件夹 ;
表示将搜索出的结果拷贝到文件夹中,其中搜索结果存储在{}中,cp可换成mv,rm等
(8)grep
使用语法 : grep [参数] 字符串 文件名
功能 :在文件中查找字符串
参数 :
-r 查找目录下的所有子目录
注意在要查找的字符串中包含?, +, {, |, (, )字符时,需要在字符前加上“\”
ps:
| 管道
指令1 | 指令2
指令1的输出作为指令2的输入
pwd:当前工作路径的绝对路径
(9)rm
使用语法 : rm [参数] file…
功能 :删除文件或目录
参数 :
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
ps:rm删除后无法找回
(10)tar
使用语法 :
①gzip压缩 tar -zcvf xxx.tar.gz file (压缩) tar -zxvf xxx.tar.gz (解压)
②bzip压缩 tar -jcvf xxx.tar.bz2 file(压缩) tar -jxvf xxx.tar.bz2 (解压)
功能 : tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
参数 :
-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
(11)mount 挂载
使用语法:mount 设备文件名 挂载路径
更改中文格式:mount -o iocharset=utf8 设备文件名 挂载路径
解除挂载:umount 设备文件名 eg:umount /dev/sdb1
ps:
重启 reboot
关机 shutdown -h now
查看磁盘占用空间:df / df -h
查看硬盘信息:fdisk -l
新建硬盘步骤
新建大小合适的硬盘sdb
格式化硬盘:mkfs-ext4 设备文件名
查看硬盘分区的UUID: blkid
硬盘分区:fdisk 设备文件名 n新建分区 p w保存 格式化新建分区 将新建分区挂载
修改配置文件 ①cd /etc/ ②备份 cp fstab fstab.bak ③gedit fstab ④复制UUID一行,根据新建分区数决定在末尾粘贴行数 ⑤修改UUID和挂载点
(12)ln
使用语法:(软链接,相当于快捷方式)ln -s file1 file2 将file1作为file2的软链接
使用语法:(硬链接)ln -n file1 fiel2 两个文件内容同步,删除file2后file1仍有效
(13)whereis which
使用语法:whereis -b 文件 = which 文件
功能:在目录里查找相应文件
6.用户和目录权限
文件所有者:用户创建一个文件,则文件的所有者属于这个用户
文件所有组
其他
权限
对普通文件来说,r 读的权限,w 写的权限(对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限),x 可以执行的权限(对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限)
root root
wsd www
wsd 表示文件的所有者,www 表示文件的所有组
groupadd 组名 创建组
groupdel 组名 删除组 若组中有用户则无法删除
useradd -g 组名 用户名 -m 创建用户
passwd 用户名 添加密码 创建用户必须添加密码,否则会出错
userdel 用户名 删除用户 若用户已登录则无法删除,需exit退出再删除
-rw-r–r--
其中第一列文件类型
-表示普通文件
d表示文件夹
l表示软链接 链接文件
b块设备文件
2-4列 文件的所有者对这个文件的权限
5-7列 文件所有组对这个文件的权限
8-10列 其他用户对这个文件的权限
每一组权限对文件rwx,如果对应为是- 则表示没有对应的权限
chmod 三位八进制数 文件或文件夹 对文件夹进行权限修改,如果加了-R 则表示文件夹及子文件都进行修改
u表示所有者,g表示所有组,o表示其他
所以也可以 chmod u/g/o±r/w/x 文件/文件夹
chgrp 组名 文件/文件夹 修改所有组
chown 所有者:所有组 文件/文件夹 修改所有者及所有组
7.Vim编辑器
(1)vim可以执行输出、删除、查找、替换、块操作等众多文本操作。
只是一个文本编辑器,不能排版
vim没有菜单,只有命令
vim有三种基本工作模式,分别是:命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode)
(2)三种模式切换
(3)vim编辑模式
(4)vim的相关操作指令
- 打开vim:
打开文件:命令“vim 文件名”
#vim newfile
newfile不存在则创建 - vim的选项:
选项“+”表示希望在进入vim之后光标处于文件最末行。
选项“+n”,表示希望在进入vim之后,光标处于文件中第n行上,
#vim newfile +
#vim newfile +10 - 有三种方法保存当前编辑的文件
在末行模式下:
:w :vim保存当前编辑的文件
:w [filepath] :保存文件、或另保为文件
:w! [filepath] :强制保存文件,若文件已存在则强行覆盖 - 有四种方法可以退出vim返回到shell:
命令模式下:
连接按两次大写的Z键,保存并退出
末行模式下:
:q :退出vim,前提是该文件没有被编辑过
:q! :强制退出vim
:wq 或:x :保存并退出vim - 有三种方法可以从命令模式进入到插入模式:
追加模式:append
a 由光标之后加入资料
A 由该行之末加入资料
插入模式:insert
i 由光标之前加入资料
I 由该行之首加入资料
新增行模式:open
o 新增一行于该行之下供输入
O 新增一行于该行之上供输入 -
-
有三种方法可以从命令模式进入末行模式
-
命令
/ 查找
? 查找
-
命令
- vim编辑器:查找
/word 在光标之后查找word
?word 在光标之前查找word
n 向相同的方向移动到有word的地方
N 向相反的方向移动到有word的地方 - 末行模式下显示设置:
set nu: 添加行号显示
set nonu: 取消行号显示 - 有三种方法可以撤消操作。
在命令模式下:
u :恢复最后一个指令之前的结果。
U :恢复光标该行之所有改变 - 在末行模式下:
:undo : 恢复上一个指令之前的结果。 - 在命令模式下的命令:
yy 复制光标所在行
p 粘贴 到光标的下一行
dd 表示剪切光标所在一行,剪切完不去粘贴等价于删除 - 在末行模式下 替换
:n1,n2s/word1/word2/g
在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2
:%s/word1/word2/g
从第一行到最后一行替换所有的word1
注意:如果不加g那么每行中只有第一个word1会被替换。
8.常用网络指令
(1)基本名词
路由器:数据转发 为局域网自动分配IP和虚拟拨号 路由器可以把一个IP分给多个主机使用,对外IP相同
交换机: 分配网络数据的 可以把很多主机连接起来,对外的IP不同 用来做网间连接,也就是用来连接不同网络的
IP: 全球唯一(公网IP+子网IP)
网关:路由器对内的地址
IP地址: 网络ID(网段,eg:192.168.1)+主机ID
子网掩码:是获取IP地址的网络号,从而区分IP地址的 网络ID+主机ID
eg:255.255.255.0 255.255.248.0
ps:255.255.248.0中248位1111 1000 前五位为网段号,后三位为主机号
DNS:一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换
(2)虚拟机连接网络的三种模式
桥接 虚拟机之间可以通信 把虚拟机当做主机直接连接到路由器
NAT 虚拟机之间无法互相通信
仅主机 一般不用
ps:ufw enable 开启防火墙
ufw disable 关闭防火墙
ufw status 查看防火墙状态
/etc/init.d/networking restart 重启网络 start 启动 stop 关闭
systemctl status networking 查看网络状态
systemctl (X) (Y)
service (Y)(X)
X start 开启
stop 关闭
restart 重启
enable 开机启动
disable 开机禁用
Y 表示服务名称
(3)相关指令
-
dig
使用语法 : dig 域名
功能 : DNS域名查询工具 -
ifcongfig
使用语法 : ifconfig [网络设备] [up | down]
功能 : 设置网络设备的状态,或是显示目前的设置
参数 :
网络设备:通常为“eth0”,“eth1”等
up :启用网络设备
down :关闭网络设备
ip :ip地址
netmask 子网掩码:指定子网掩码
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
第二行:网卡的IP地址、子网、掩码
第四行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)
MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第五、六行:接收、发送数据包情况统计
第七行:接收、发送数据字节数统计信息。
eg:
配置eth1网卡地址为192.168.1.6,子网掩码255.255.255.0
ifconfig eth1 192.168.1.6 netmask 255.255.255.0
给eth0配置第二个IP地址192.168.1.5
ifconfig eth0:0 192.168.1.5
ifconfig配置网卡信息是临时性的配置,在系统重启之后该配置就会丢失 -
netstat
使用语法 : netstat
功能:查看网络状态
参数:
-a 显示所有的套接字
-l 显示在监听的套接字
-p 显示正在使用Socket的程序识别码和程序名称
-t 显示TCP传输协议的连线状况
-u 显示UDP传输协议的连线状况 -
ping
功能:指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常
参数:
-c<完成次数> 设置完成要求回应的次数 -
route
为系统添加默认网关192.168.8.1:
route add default gw 192.168.8.1
为eth0:0添加网关:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
删除路由:
route del default gw
route del -net 192.168.1.0 netmask 255.255.255.0
- 其他常用指令
-
exit
使用语法:exit
功能:退出目前的shell -
export
使用语法:export [变量名称]=[变量设置值]
功能:新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作,若要下次登陆时这些环境变量仍然有效,需要在/etc/profile或~/.bashrc文件中增加
ps:
env 查看当前环境变量
echo $环境变量名(PATH) 打印环境变量
source ~/.bashrc(配置文件) 重新加载配置文件 -
man
使用语法:man [n] 内容
功能:查看帮助手册
八本手册,其中三本:
1 命令手册
2 系统函数手册 操作系统提供
3 库函数手册 第三方系统提供
eg:查看mkdir命令帮助 man 1 mkdir
查看mkdir函数帮助 man 2 mkdir -
ps
使用语法:ps -ef / ps -aux
功能:显示当前系统运行进程状态
ps:
进程:运行态(内核空间运行态,用户空间运行态),就绪态,阻塞态(有IO)
PID进程 PPID父进程 -
kill
使用语法: kill [-s 信号] 进程PID
功能:杀掉指定进程号的进程或向进程发送信号
参数:
-s 信号:要发送给进程的信号
-9 :强制杀死进程
安装并配置Samba服务器
ps:
clear 清屏
data 显示系统时间和日期
10 .shell 参考网址: https://www.runoob/linux/linux-shell-process-control.html
(1)shell是命令解释器
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务
shell脚本以 .sh 结尾
第一行 #!/bin/bash #!命令解释器路径
运行 ./.sh(脚本文件名)
(2)shell 变量
①定义变量时,变量名不加美元符号,引用变量$变量名 eg:your_name=“runoob”
ps:变量名和等号之间不能有空格 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
②变量名的命名规则
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
ps:
除了显式地直接赋值,还可以用语句给变量赋值,如:
for file in ls /etc
或for file in
(
l
s
/
e
t
c
)
③
单
引
号
和
双
引
号
单
引
号
是
全
引
用
,
被
单
引
号
括
起
的
内
容
不
管
是
常
量
还
是
变
量
都
不
会
发
生
替
换
双
引
号
是
部
分
引
用
,
被
双
引
号
括
起
的
内
容
常
量
还
是
常
量
,
变
量
则
会
发
生
替
换
,
替
换
成
变
量
内
容
不
使
用
引
号
定
义
字
符
串
时
,
字
符
串
不
能
包
含
空
白
字
符
(
如
S
p
a
c
e
或
T
a
b
)
,
需
要
该
加
引
号
,
一
般
连
续
的
字
符
串
,
数
字
,
路
径
等
可
以
不
加
引
号
。
如
果
内
容
中
有
命
令
、
变
量
等
,
会
先
把
变
量
、
命
令
解
析
出
结
果
,
然
后
在
输
出
最
终
内
容
④
相
关
指
令
r
e
a
d
读
入
变
量
值
e
g
:
r
e
a
d
−
p
"
p
l
e
a
s
e
i
n
p
u
t
:
"
变
量
(
3
)
s
h
e
l
l
传
递
参
数
在
执
行
S
h
e
l
l
脚
本
时
,
向
脚
本
传
递
参
数
,
脚
本
内
获
取
参
数
的
格
式
为
:
(ls /etc) ③单引号和双引号 单引号是全引用,被单引号括起的内容不管是常量还是变量都不会发生替换 双引号是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容 不使用引号定义字符串时,字符串不能包含空白字符(如Space或Tab),需要该加引号,一般连续的字符串,数字,路径等可以不加引号。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容 ④相关指令 read 读入变量值 eg: read -p "please input:" 变量 (3)shell传递参数 在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:
(ls/etc)③单引号和双引号单引号是全引用,被单引号括起的内容不管是常量还是变量都不会发生替换双引号是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容不使用引号定义字符串时,字符串不能包含空白字符(如Space或Tab),需要该加引号,一般连续的字符串,数字,路径等可以不加引号。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容④相关指令read读入变量值eg:read−p"pleaseinput:"变量(3)shell传递参数在执行Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数
$ 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)
ps:
let:用来执行算数运算和数值表达式测试
let 命令的替代表示形式是: ((算术表达式)) ,这样做的好处是如果表达式中含有特殊的字符,可以告示shell 进行特殊处理:例如,let ″val=a|b″。如果不括起来,Shell会把命令行let val=a|b中的“|”看成管道符,将其左右两边看成不同的命令,因而无法正确执行
(4)shell基本运算符
①关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字
②算术运算符
③布尔运算符
④逻辑运算符
④字符串运算符
⑤文件测试运算符
ps:
expr
使用语法:expr 表达式 操作 表达式
注意运算符左右都有空格,如果没有空格表示是字符串连接。使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义
(5)流程控制
① if else
语法格式:
if:
if condition
then
command1
command2
…
commandN
fi
写成一行(适用于终端命令提示符):
if [ $(ps -ef | grep -c “ssh”) -gt 1 ]; then echo “true”; fi
if else:
if condition
then
command1
command2
…
commandN
else
command
fi
if else-if else:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
②for循环
for循环一般格式为:
for var in item1 item2 … itemN
do
command1
command2
…
commandN
done
写成一行:
for var in item1 item2 … itemN; do command1; command2… done;
③while语句
while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。
其格式为:
while condition
do
command
done
无限循环语法格式:
while :do
command
done
或者
while truedo
command
done
或者
for (( ; ; ))
(6)shell函数
shell中函数的定义格式如下:
[ function ] funname [()]
{
action;
[return int;]
}
说明:
可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
更多推荐
linux知识点梳理
发布评论