linux知识点梳理

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

  1. 其他常用指令
  • 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.com/linux/linux-shell-process-control.html
(1)shell是命令解释器
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务
shell脚本以 .sh 结尾
第一行 #!/bin/bash #!命令解释器路径
运行 ./.sh(脚本文件名)
(2)shell 变量
①定义变量时,变量名不加美元符号,引用变量$变量名 eg:your_name=“runoob.com”
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)使SpaceTabreadeg:readp"pleaseinput:"3shellShelln。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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值