学习笔记

您所在的位置:网站首页 linux从入门到什么搞笑 学习笔记

学习笔记

2024-04-11 10:07| 来源: 网络整理| 查看: 265

文章目录 Linux从入门到秃头一、常用操作系统二、Linux发展史1、 诞生2、系统特点3、Linux分支 三、Linux系统安装1、虚拟机软件2、Linux系统的文件 四、Linux基本指令1、什么是指令2、 基础指令3、进阶指令4、高级指令5、vim编辑器5.1 三种模式5.2 切换模式5.3打开文件的方式5.4 扩展 五、Linux自有服务1、运行模式(运行级别)2、用户与用户组2.1 用户管理2.1.1 添加用户2.1.2 修改用户2.1.3 设置密码2.14 删除用户 2.2 用户组管理2.2.1 用户组添加2.2.2用户组修改2.2.3 用户组删除 3 网络设置4 设置主机名5 chkconfig6 ntp服务7 防火墙8、rpm管理9 cron/crontab计划任务 六、Linux权限管理1、Linux的权限介绍2、权限设置2.1 形式 3、属主与属组设置4、sudo 七、Linux网络基础1、IP地址2、网络相关命令 八、项目上线1、服务器2、域名解析 九、Shell基础1、shell入门2、shell进阶2.1 变量2.2 条件判断语句2.3 运算符 十、软件安装

Linux从入门到秃头 学习网站:

linux入门到精通,零基础入门

linux入门到精通(下部分)

一、常用操作系统 Windows,微软,闭源,包括用户操作系统,服务器操作系统Mac, 苹果,闭源,借鉴OpenBSDLinux, 开源, 市场占有率最多的服务器操作系统,常见的分支:乌班图, Centos, RedHat, SUSE, Debian ,最大的分支是安卓(谷歌研发的Linux分支) 二、Linux发展史 1、 诞生 Multics项目,MIT、Bell实验室1970年(Unix元年),Unix诞生,在Multics基础上开发,使用汇编,时间戳(从1970-1-1 00:00:00 至今的秒数)1973,汇编对于计算机硬件过于依赖,移植性不好,用C重写了Unix1991, Linux之父:李纳斯,0.0.1版本 2、系统特点 开放性(开源)多用户, 允许同时登录多个用户多任务,允许用户同时进行多个操作任务良好的用户界面优异的性能与稳定性 3、Linux分支

​ 乌班图ubuntu, Centos, RedHat, SUSE, Debian ,最大的分支是安卓(谷歌研发的Linux分支)

三、Linux系统安装 1、虚拟机软件

​ 模拟真实的电脑环境,两个比较出名的产品:Vmware出品的VMware workstation, Oracle出品的virtual Box

保姆式安装教程:黑马程序员linux入门到精通(上部分)_哔哩哔哩_bilibili

2、Linux系统的文件

​ Linux一切皆文件

目录结构:

bin: 全称binary(二进制),该目录存储的都是一些二进制文件,文件都是可以被运行的dev,主要存放外界设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似Windows下分配盘符)etc:主要存储一些配置文件home:表示除了root用户以外,其他用户的家目录,(类似Windows下的user/用户目录)proc:process,表示进程,该目录存储的是Linux运行时的进程root:root用户自己的家目录sbin:全称:super binary, 该目录也是存储可执行的二进制文件,但是只有super权限的用户才能执行tmp:当系统运行时产生的临时文件会在这个目录中usr:存放的是用户自己安装的软件(类似windows 下的program files目录)var:存放程序/系统日志文件的目录mnt:外接设备需要挂载的时候,就需要挂载到该目录 四、Linux基本指令 1、什么是指令

​ 在Linux终端(命令行)输入的内容,一个完整的指令的标准格式:

指令主题 [选项] [操作对象]

​ 一个指令可以包含多个选项,多个对象

2、 基础指令

ls (list):列出指定目录(默认当前)下的所有文件和目录的名称

ls

ls /root

ls -l // 等价于ll

ls -la // 显示包括隐藏文件(以点开头的文件/目录)

ls -lh // 以可读性较高的形式列出文件和目录

pwd:打印当前工作目录

cd:切换目录

cd ~ // 快速切换到当前用户的家目录

mkdir:创建目录,

mkdir 路径(可以是文件夹名称,也可以是包含名称的完整路径)mkdir -p 路径 // 创建路径中的所有文件夹mkdir 路径1 路径2 … // 创建多个

touch:创建文件

touch 文件路径

cp:复制文件/文件夹到指定位置

cp 被复制的文档目录 目的文档目录 // 复制过程中,可以对文件重命名进行文件夹复制时,需要条件 -r 选项 : cp -r ./a/ /home (-r:表示递归复制)

mv:移动文档到新的位置(剪切)

mv 需要移动的文档路径 目的路径重命名

rm:移送/删除文档

rm [选项] 需要移除的文档

-f :强制删除

-r:递归删除

vim:文本编辑

vim 文件路径 // 文件不存在则创建

输出重定向:一般命令的输入都会显示在终端,需要将一些命令的执行结果保存到文件中,则需要使用到输出重定向

>: 覆盖输出,会覆盖掉原先的文件内容

>>:追加输出,不会覆盖原始文件内容,

ls -lh > ls.txt // ls.txt文件可以不存在

cat:

直接打开文件

合并文件:cat 待合并的文件路径1 待合并的文件路径2 … > 合并之后的文件路径 // 合并文件

3、进阶指令

df:查看磁盘空间

df -h

在这里插入图片描述

free:查看内存使用情况

free -m // 以Mb为单位进行查看

在这里插入图片描述

Swap:用于临时内存,当系统真实内存不够用时,可以临时使用磁盘空间来充当内存

head:查看文s件的前n行,如果不指定n,默认显示10行

head -n 文件路径 // n表示数字,表示显示几行

tail:查看文件的末几行

tail -n 文件路径 // n为数字,表示显示几行tail -f 文件路径 // 查看文件的动态变化

less:以较少的内容进行输出,按辅助功能键(数字+回车、空格键(翻页)+上下方向键)查看更多,按q键退出

wc:统计文件内容信息(包含行数、单词数、字节数)

swc -lwc 需要统计的文件路径 // lwc // 分别表示行数、单词数、字节数

date:表示操作时间日期(读取,设置),CST(当地时间),UCT,GMT

date //date +%F // 2021-6-28,等价于date “+%Y-%m-%d”date “+%F %T” // 2021-06-28 21:18:40,等价于:date “+%Y-%m-%d %H:%M:%S”date -d “-1 day” // 一天前的时间,单位:day/year/month/

cal:操作日历

cal // 输入当前月份日历cal -3 // 输入上月+ 本月+下月cal -y 年份 // 输入指定年份日历

clear/ctrl + L :清除终端中已经存在的信息, ctrl+L是快捷键方式

管道(|):配合指令使用,用于:过滤、

过滤: ls | grep a // 过滤出当前目录下包含a的目录,grep主要用于过滤 扩展处理 ls | wc -l // 统计当前目录下的文档数量 4、高级指令

hostname :操作服务的主机名(读取,操作(使用hostname指令操作是临时的))

hostname // 输入完整主机名hostname -f // 输出当前主机名中的FQDN(全限定域名)

id:查看一个用户的一些基本信息(用户id,用户组id,附加组id),如果不指定用户则默认当前用户

用户信息:/etc/passwd, 用户组信息: /etc/group

idid 用户名

whoami :显示当前登录用户名,一般用于shell脚本

ps -ef:主要用于查看服务器的进程信息

-e :列出全部进程-f:显示全部的列

ps -ef | grep 进程名称

在这里插入图片描述

UID:该进程执行的用户PID:进程idPPID:父级进程ID,如果一个进程的父级进程找不到,则该程序的进程称之为僵尸进程C:cpu的占用率STIME:进行的启动时间TTY:终端设备,发起该进程的设备识别符号,如果显示"?",则表示该进程并不是由终端设备发起CMD:该进程的名称或者对应的路径

top:查看服务器的进程占用的资源

top // 动态显示,按q键退出 M:按内存(MEM)从高到低进行排序P:按CPU使用率1:当服务器拥有多个cpu的时,切换展示各个菜谱的详细信息

在这里插入图片描述

PID:进程idUSER:该进程对应的用户PR:优先级VIRT:虚拟内存RES:常驻内存SHR:共享内存, 进程实际使用内存=常驻内存-共享内存S:表示进程的状态 S/R%CPU:cpu占用百分比%MEM:内存占用百分比TIME+: 执行的时间COMMAND:进程的名称或路径

du [-sh] :查看目录的真实大小

选项含义:

-s:只显示汇总的大小-h:表示以高可读性的形式显示

find:用于查找文件

find 路径 选项 选项的值

选项: -name(按文档名称模糊搜索), -type(按文档类型 (f/d: 文件/文件夹))

find ./ -name *conf | wc -l // 统计当前目录下以conf结束的文件个数

find ./ -type f // 查找当前目录下的所有文件

service:用于控制一些软件的服务启动/停止/重启

service 服务名 start/stop/restart

kill:杀死进程

kill 进程id // 需与ps配合使用killall 进程名称

ifconfig:操作网卡相关信息,inet是网卡的IP地址

reboot:重启计算机

rebootreboot -w //模拟重启,但是不重启,写关机与开机的日志信息(用于测试日志配置)

shutdown:

shutdown -h now // 立即关机shutdown -h 15:25 “关机提示语” //定时关机halt // 立即关机init 0 // 立即关机poweroff // 立即关机

uptime:输出计算机的持续在线时间(从开机到现在的运行时间)

uname:获取操作系统的相关信息

uname // 操作系统的类型uname -a

netstat -tnlp:查看网络连接状态

-t:列出tcp协议的连接-n:将地址从字母组合转化成IP地址(如localhost -> 127.0.0.1),将协议转化成端口号来显示-l:过滤出state字段的值为LISTEN(监听)的连接-p:发起连接的进程pid和进程名称

在这里插入图片描述

man:手册(manual),包含了Linux中全部命令手册

删除光标前后的内容:

前:ctrl+u后:ctrl+k 5、vim编辑器 5.1 三种模式

命令模式

不能直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴。。)

光标操作按键光标移动到行首shift + 6 (^)光标移动到行尾shift + 4 ($)光标移动到首行gg光标移动到末行G翻屏(向上)ctrl + b /pageUp翻屏(向下)ctrl + f / pageDown 复制操作按键备注复制光标所在行()yy在粘贴的地方按"p"以光标所在行为准(包含当前),向下复制指定行数字yy在粘贴的地方按"p"可视化复制,按 ctrl + v 进入可视化选择在粘贴的地方按"p"

dd: 剪切(删除): // 删除光标所有行, 删除之后下一行上移

数字dd: // 删除光标所在行为准(包含当前行),向下删除指定行,删除后下一行上移

D: // 删除之后当前行空白,即下一行不上移

:u : //撤销 ,直接输入“u" 也可以 (undo)

ctrl + r : // 取消之前的操作

将光标移动到指定行: 数字G / :数字

下移/上移指定行数: 数字 ↓ / 数字↑

编辑模式

可编辑

在这里插入图片描述

ctrl + R : // 计算器使用

末行模式

搜索、替换、保存、退出、撤销、高亮…

保存: :w

另存: :w 路径

退出::q

强制: !

搜索/查找: /关键词

在搜索结果中切换: 上一个/下一个: N/n

取消高亮: :nohl / :noh

替换:

​ :s/搜索的关键词/新的内容 // 替换光标所在行的第一处符合条件的内容

​ :s/搜索的关键词/新的内容/g // 替换光标所在行的全部符合条件的内容

​ :%s/搜索的关键词/新的内容 // 替换整个文档的第一处符合条件的内容

​ :%s/搜索的关键词/新的内容/g // 替换整个文档的全部符合条件的内容

显示行号(临时显示)/取消行号: :set nu / set nonu

着色: :syntax on/off

调用外部命令: : ! 外部命令

5.2 切换模式

在这里插入图片描述

5.3打开文件的方式

vim 文件路径 // 打开指定文件

vim +数字 文件路径 //将光标移动到指定行(不要省略符号"+") vim +3 /etc/passwd

vim +/关键词 文件路径 // 高亮显示关键词(不要省略符号"+") vim +/login /etc/passwd

vim 文件路径1 文件路径2… // 同时打开多个文件

%a:当前正被打开的文件

#:上一个打开的文件

:open 文件名: 切换到指定文件

:bn : 切换到下一个文件

:bp: 切换到上一个文件

在这里插入图片描述

5.4 扩展

vim的配置

临时

末行模式输入的配置

个人

~/.vimrc (如果没有可自行创建)在这里插入图片描述

全局

/etc/vimrc

异常退出

终端关闭、服务器断电等

解决方法:将交换文件删除即可, 文件名.swp

别名机制

依靠一个别名映射文件:; ~/.bashrc

在这里插入图片描述

退出方式

:x // 保存退出,如果文件没有被修改,使用x退出,文件的修改时间不会被修改,而:wq则会

五、Linux自有服务

操作系统内置的服务

1、运行模式(运行级别) init 进程,进程id是1,该进程对应的配置文件:/etc/inittab

在这里插入图片描述

0:关机级别1:单用户模式2:多用户模式,不带NFS(network file system)3:完整的多用户模式,不带桌面4:保留模式5:完成的图形化界面模式6:重启阶级别

不要把运行级别设置成0和6

与级别相关的几个命令:

init 0 // 关机

init 3 // 切换到不带桌面的模式,需要超级管理员权限(临时切换,重启之后复原)

systemctl set-default multi-user.target #设置成上述模式3 systemctl set-default graphical.target #设置成上述模式5

init 6 // 重启

2、用户与用户组 多用户多任务操作系统向系统管理员申请账号,账号可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统的访问

三个文件:

/etc/passwd //存储用户关键信息

/etc/group // 存储用户组关键信息

/etc/shadow // 存储用户的密码信息

2.1 用户管理 2.1.1 添加用户 useradd 选项 用户名 常用选项: -g:指定用户的用户主组,可以是用户组id/组名-G:指定用户的用户附加组,可以是用户组id/组名-u:uid(用户的标识符),系统默认从500之后按顺序分配uid-c:添加注释,可解释用户的用途

在这里插入图片描述

用户名:密码(占位):用户id:用户组id(主组):注释:家目录:解释器shell

解释器shell:等待用户进入系统,输入指令后,该解释器会收集用户输入的指令传递给内核处理

在这里插入图片描述

/etc/group文件: 上图中为用户所属附加组

2.1.2 修改用户 usermod 选项 用户名 常用选项 -g:指定用户的用户主组,可以是用户组id/组名-G:指定用户的用户附加组,可以是用户组id/组名-u:uid(用户的标识符),系统默认从500之后按顺序分配uid-l: 修改用户名 usermod -l 新用户名 旧用户名 -s:设置用户解释器shell,例如:usermod -s /sbin/nologin test(设置用户test不允许登录系统) 2.1.3 设置密码

创建用户未色湖之密码前都处于锁定状态

passwd 用户名

su [用户名] (switch user): 切换用户, 不指定则切换到root

2.14 删除用户 userdel 选项 用户名 常用选项 -r: 删除用户的同时,删除其家目录

== 除passwd外, 其他命令都需root权限

2.2 用户组管理 每个用户都有一个用户组用户组在创建用户时同时创建, 如果不指定用户的用户组, 则默认用户组与用户同名,

在这里插入图片描述

用户组名: 密码(占位): 用户组id: 组内用户名

组内用户名: 表示附加组是该组的用户名称 2.2.1 用户组添加 groupadd 选项 用户组名 常用选项 -g: 设置用户组id, 默认从500开始递增 2.2.2用户组修改 groupmod 选项 用户组名 常用选项 -g: 设置用户组id, 默认从500开始递增-n: 修改用户组名称 groupmod -n 新名字 旧名字 2.2.3 用户组删除 groupdel 用户组名

如果组是某个用户的主组, 则不允许删除组

3 网络设置 **网卡配置文件路径: ** /etc/sysconfig/network-scripts/

在这里插入图片描述

ONBOOT: 是否开机启动

BOOTPROTO: IP地址分配方式, DHCP表示动态主机分配协议, static表示静态地址

HWADDR: MAC地址

网卡重启 service network restart # 有些Linux分支可能没有 /etc/init.d: 服务的快捷方式目录 /etc/init.d/network restart

扩展1:

创建文件的快捷链接(软链接) ln -s 文档目录 目的 #例: ln -s /etc/sysconfig/networ-scripts/ ~/

在这里插入图片描述

扩展2:

停止单个网卡: ifdown 网卡名开启单个网卡: ifup 网卡名

扩展3:

pscp远程文件传输 下载: pscp 选项 用户名@主机地址:资源目录 windows本地路径上传: pscp 选项 资源路径 用户名@主机地址:远程路径 4 设置主机名 临时设置主机名, 需切换用户后生效 hostname tmp 永久设置, /etc/sysconfig/network , centos7在/etc/hostname 5 chkconfig

开启启动项管理服务

查询

chkconfig --list

在这里插入图片描述

0-6表示运行级别

删除服务 chkconfig --del 服务名 添加开机启动服务 chkconfig --add 服务名 设置服务在某个级别下开机启动/不启动 chkconfig --level 运行级别 服务名 on/off 6 ntp服务

对计算机的时间同步管理

一次性同步(手动同步) ntpdate 时间服务器的域名或地址 设置时间同步服务, 服务名: ntpd 7 防火墙

防范网络攻击, 软件防火墙 硬件防火墙

iptables: 7之下

firewalld: centos7.x

iptables service iptables status (iptables -L -n)

在这里插入图片描述

prot : 协议

设置防火墙规则

在这里插入图片描述

-A : add, 添加规则

INPUT: 进站请求

OUTPUT: 出站请求

-p : 协议

–dport: 端口号

-j: accept/reject

/etc/init.d/iptables save

8、rpm管理

类似于Windows上的"软件管家"产品,主要作用是对Linux服务器上的软件包进行管理操作,查询、卸载、安装。

查询某个软件的安装情况 rpm -qa | grep 软件名 # -q: query, -a: all 卸载软件 rpm -e 软件名 rpm -e 软件名 --nodeps // 当存在依赖关系时,可强制卸载 安装

软件包的获取方式:

官网下载从光盘(镜像文件)中读取 查看块状(光盘、U盘等与磁盘有关的设备)设备的信息: lsblk (list block devices)

在这里插入图片描述

name:名称

size:盘大小

type:类型

mountpoint:挂载点(类似windows下的盘符)

扩展:光盘的挂载和解挂:

解挂

umount 当前设备的挂载点(mountpoint) # 相当于U盘在Windows上弹出了但是没有拔出

挂载

mount 设备的原始地址 要挂载的位置路径 # 原始地址:统一都在/dev下,根据命令:lsblk列出的大小确定具体的name值,组成原始地址,例如上图中:/dev/sr0 # 挂载的位置路径:挂载的目录一般都在/mnt下 rpm -ivh 软件包 # -i: install # -v: 显示进度条 # -h: 表示以”#“号形式显示进度条 rpm -Uvh 软件包 # 更新 rpm -qf 文件路径 #查询文件属于那个软件包 9 cron/crontab计划任务

指定时间点执行任务(定时任务)

crontab 选项 #选项: # -l :list,列出指定用户的计划任务列表 # -e : edit,编辑指定用户的计划任务列表 # -u : user, 指定用户,不指定表示当前用户 # -r : remove 编辑计划任务

语法格式规则,以行为单位,一行则为一个计划:

分(0~59) 时(0~23) 日(1~31) 月(1~12) 周(0~7,0和7表示周日) 需要执行的命令,例如: 0 0 * * * reboot // 每天0点0分重启服务器

四个符号: *:区间类的任意值-:连续区间表达式,例如:1号到7号: 1-7/:每多少个,例如:每10分钟: */10,:多个取值,例如:1点,4点,5点: 1,4,5

crontab权限问题

超管可以配置某些用户不允许设置计划任务(黑名单),配置文件:/etc/cron.deny,将用户配置在此配置文件中即可

白名单,配置文件/etc/cron.allow (文件本身不存在,需自行创建)

六、Linux权限管理

3个身份: owner、group、others

owner:文件所有者,默认为文档的创建者group:与文件所有者同组的用户others:其他人(相对于所有者)root:超级用户(神)

3种权限: read、write、execute

在这里插入图片描述

1、Linux的权限介绍

在这里插入图片描述

文件类型 : 常见取值: d:文件夹, -:文件, l:软链接

2、权限设置

chmod 选项 权限模式 文档

常用选项: -R:递归设置权限(当文档是文件夹时可能需用到) 权限模式:该文档需要设置的权限信息文档:操作者可以是root用户或文档的所有者

提权漏洞

2.1 形式 字母形式:

在这里插入图片描述

如果在设置权限时不指定给谁设置,则默认给所有用户设置

=:将权限设置成具体的值

例如:

chmod u+x,g+rx,o+r aaa.txt chmod u=rwx,g=rx,o=r aaa.txt 数字形式

在这里插入图片描述

rwx : 421

删除或改变(重命名、移动位置)一个文件,不是看文件有没有对应的权限,而是看文件所在的目录有无写权限,如果有才可以删除

3、属主与属组设置

属主:所属的用户

属组:所属的用户组

在这里插入图片描述

chown

更改文档的所属用户

chown -R username 文档路径 # -R 递归更改 chgrp

更改文档的所属用户组

chgrp -R groupname 文档路径

扩展

通过chown也可以更改文档所属组

chown -R username:groupname 文档路径 4、sudo

switch user do,sudo可以让管理员(root)定义某些特殊命令谁可以执行

默认sudo中是没有除了root之外用户的规则配置文件:/etc/sudoers

/etc/sudoers使用root用户打开只读,使用命令visudo(此命令为系统自带)打开此文件

在这里插入图片描述

在这里插入图片描述

root:用户名;如果时用户组,写成:%组名

ALL:表示允许登录的主机(地址白名单)

(ALL):表示以谁的身份区执行

ALL:表示当前用户可以执行的命令,多个命令可以使用英文 ","分割

添加sudo规则

添加sudo规则时,写命令的完整路径,路径使用命令which查看,添加规则需使用

test ALL=(ALL) /user/sbin/useradd,/user/sbin/passwd,!/user/sbin/passwd root // test用户可以添加用户,修改密码(但是不允许修改root用户的密码:!/user/sbin/passwd root) **添加好规则后,命令前加上sudo即可执行命令

$ sudo useradd test0708 //此时需要输入的是登录用户的密码,而不是root的密码

在这里插入图片描述

sudo -l // 查看自己拥有的特殊权限 七、Linux网络基础

网络分类

局域网(local area network LAN)

城域网(meterpolitan area network MAN)

广域网(wide area network WAN)

所有者

公文接入方式:计算机的IP地址是Internet上的非保留地址

私网接入方式

1、IP地址

internet protocol,计算机网络相互连接进行通信而涉及的协议

分类:

公有地址

由inter NIC(internet network information center)负责分配,通过它直接访问因特网

私有地址

机构内部使用

A类:10.0.0.0—10.255.255.255

B类:172.16.0.0—172.31.255.255

C类:192.1680.0—192.168.255.255

2、网络相关命令 ping

检测当前主机与目标主机之间的连通性(有些服务器禁ping,所以不是100%准确)

netstat

查看网络的连接信息,

netstat -tnlpnetstat -an // 列出全部 traceroute

查找当前主机与目标主机之间的所有网关(路由器,会给沿途各个路由器发送icmp数据包,路由器可能会不给相应)

该命令不是内置命令,需安装

扩展:在Windows下类似的命令:tracert

arp

地址解析协议(address resolution),根据IP地址获取MAC地址的协议

首先查看本机mac地址缓存中有没有目标主机的mac地址,有就使用,没有就发出一个广播包,拥有该IP地址的主机的回应信息包括mac地址;如果目标主机不在本地子网中,arp解析到的mac地址是默认网关的mac地址 arp -a // 查看本地缓存arp -d 目标主机 // 删除本地缓存

在这里插入图片描述

arp攻击(arp欺骗)

tcpdump

抓包,抓取数据表

tcpdump 协议 port 端口tcpdump 协议 port 端口 host 地址tcpdump -l 网卡设备名 八、项目上线 1、服务器

真实服务器

云服务器

阿里云腾讯云知道创宇(加速乐)华为云盛大云新浪云亚马逊云 2、域名解析

将域名绑定到一个服务器地址的操作

在这里插入图片描述

DNS:domain name server,用于将域名转化成IP地址的服务器

九、Shell基础

Shell(外壳)是一个用c语言编写的程序,它是用户使用Linux的桥梁,既是一种命令语言,又是一种程序设计语言。

脚本:文字命令,常见的脚本:JavaScript,vbscript,asp,jsp,php,sql,lua,python,ruby,javafx,shell,perl

shell种类:

linux内置的脚本ash、bash、ksh、csh、zsh 1、shell入门 编写规范

代码规范:

#!/bin/bash // 告知系统当前脚本要使用的解释器

文件命名规范:

文件名.sh // .sh是Linux下bash shell的默认后缀

使用流程:

创建.sh文件 // touch/vim

编写shell代码 //

执行shell脚本 // 需有执行权限

# echo,输出内容如果包含字母和符号(不包含变量),需要用引号括起来,纯数字可以不包 2、shell进阶 2.1 变量

定义形式:变量名=变量值(等号左右不能有空格), 如count=2

使用形式:$变量名,如:echo $count

双引号能识别变量,如echo “名字是:$str”,也能实现转移,如要乘号(*)

单引号不能识别,原样输出,单引号不能转义

在脚本中需要执行一些指令,并把执行的值赋值给变量时,需要使用”反引号“将执行包括,如:

在这里插入图片描述

只读变量

readonly 变量名

接受用户输入

read -p 提示信息 变量名

在这里插入图片描述

删除变量

unset 变量名

2.2 条件判断语句

语法1:

if condition then command.. fi

语法2:

if condition then command1 else command2 fi

语法3:

if condition then command1 elif condition2 then command2 else command3 fi 2.3 运算符

算数运算符

在这里插入图片描述

原生bash不支持算数运算,可以通过其他命令来实现,例如: awk和expr

expr :能完成表达式的求值运算,例如:

val=expr 2 + 2

注意:

运算符之间要有空格,例如2+2是错的,要写成:2 + 2完整表达式要被``包含(上面的例子被markdown语法覆盖了) 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

在这里插入图片描述

-gt:great than

-lt:less than

-ge:great than or equal

-le: less than or equal

逻辑运算符

在这里插入图片描述

字符串运算符

在这里插入图片描述

在这里插入图片描述

文件测试运算符

检测Linux文件的各种属性

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

扩展

Linux shell中如何处理tail -100 access.log命令选项

调用tail指令系统内核把后续选项传递给tailtail打开指定文件取出最后10行

自己写的shell向内置命令一样传递一些选项,如./test.sh a b c

在脚本中使用$1表示a(第一个选项), $2表示b,以此类推

扩展2:

解压:

tar -zxvf *.tar.gz -C 指定解压目录 压缩包中指定的文件 选项: -z:通过gzip指令处理文件,–gzip或–ungzip-x:从文件中还原文件,即解压-v:显示操作过程-f:指定一个文件,必填-j:支持bzip2解压文件,*.tar.bz2

压缩:

tar -zcvf *.tar.gz 选项: -c 建立压缩

只查看解压:

tar -ztvf *.tar.gz 十、软件安装 源码包安装

配置(config/configure/bootstrap)→ 编译(make/bootstrapd) → 安装 (make/bootstrapd install)

配置:指定软件安装目录,依赖路径,不需要可选依赖,配置文件路径,通用数据存储路径等 指定安装路径:–prefix=路径需要依赖的路径:–with-PACKAGE名=包所在的路径(源码包路径)不需要依赖:–without-PACKAGE名 二进制包(rpm)

rpm -ivh 软件包

yum等傻瓜式安装

简单快捷,但不能自定义,需要联网

yum list [installed] # 列出所有[已安装的] yum search #搜索指定关键词的包 yum [-y] install 包名 # -y: 表示安装过程过不需要确认 yum [-y] update [包名] # 不指定包,更新所有 yum [-y] remove 包名 联网下载软件包命令:wget

wget 线上下载链接地址

mysql数据备份(这是Linux命令,不是MySQL的)

在这里插入图片描述

-A:表示全部数据库

在这里插入图片描述

mysql数据还原

还原全部数据库

mysql命令行source方法

source 备份的文件路径

系统命令行

mysql -uroot -p123456 < 备份的文件路径

还原单个数据库

mysql命令行source方法

选择数据库:use 库名source 备份的文件路径

系统命令行

mysql -uroot -p123456 库名 < 备份的文件路径


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3