Linux从入门到秃头教程
Linux发展史
1、 诞生
Multics项目,MIT、Bell实验室
1970年(Unix元年),Unix诞生,在Multics基础上开发,使用汇编,时间戳(从1970-1-1 00:00:00 至今的秒数)
1973,汇编对于计算机硬件过于依赖,移植性不好,用C重写了Unix
1991, 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
id
id 用户名
whoami :显示当前登录用户名,一般用于shell脚本
ps -ef:主要用于查看服务器的进程信息
-e :列出全部进程
-f:显示全部的列
ps -ef | grep 进程名称
UID:该进程执行的用户
PID:进程id
PPID:父级进程ID,如果一个进程的父级进程找不到,则该程序的进程称之为僵尸进程
C:cpu的占用率
STIME:进行的启动时间
TTY:终端设备,发起该进程的设备识别符号,如果显示"?",则表示该进程并不是由终端设备发起
CMD:该进程的名称或者对应的路径
top:查看服务器的进程占用的资源
top // 动态显示,按q键退出
M:按内存(MEM)从高到低进行排序
P:按CPU使用率
1:当服务器拥有多个cpu的时,切换展示各个菜谱的详细信息
PID:进程id
USER:该进程对应的用户
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:重启计算机
reboot
reboot -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
1
2
init 6 // 重启
2、用户与用户组
多用户多任务操作系统
向系统管理员申请账号,账号可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统的访问
三个文件:
/etc/passwd //存储用户关键信息
/etc/group // 存储用户组关键信息
/etc/shadow // 存储用户的密码信息
2.1 用户管理
2.1.1 添加用户
useradd 选项 用户名
1
常用选项:
-g:指定用户的用户主组,可以是用户组id/组名
-G:指定用户的用户附加组,可以是用户组id/组名
-u:uid(用户的标识符),系统默认从500之后按顺序分配uid
-c:添加注释,可解释用户的用途
用户名:密码(占位):用户id:用户组id(主组):注释:家目录:解释器shell
解释器shell:等待用户进入系统,输入指令后,该解释器会收集用户输入的指令传递给内核处理
/etc/group文件: 上图中为用户所属附加组
2.1.2 修改用户
usermod 选项 用户名
1
常用选项
-g:指定用户的用户主组,可以是用户组id/组名
-G:指定用户的用户附加组,可以是用户组id/组名
-u:uid(用户的标识符),系统默认从500之后按顺序分配uid
-l: 修改用户名
usermod -l 新用户名 旧用户名
-s:设置用户解释器shell,例如:usermod -s /sbin/nologin test(设置用户test不允许登录系统)
2.1.3 设置密码
创建用户未色湖之密码前都处于锁定状态
passwd 用户名
1
su [用户名] (switch user): 切换用户, 不指定则切换到root
2.14 删除用户
userdel 选项 用户名
1
常用选项
-r: 删除用户的同时,删除其家目录
== 除passwd外, 其他命令都需root权限
2.2 用户组管理
每个用户都有一个用户组
用户组在创建用户时同时创建, 如果不指定用户的用户组, 则默认用户组与用户同名,
用户组名: 密码(占位): 用户组id: 组内用户名
组内用户名: 表示附加组是该组的用户名称
2.2.1 用户组添加
groupadd 选项 用户组名
1
常用选项
-g: 设置用户组id, 默认从500开始递增
2.2.2用户组修改
groupmod 选项 用户组名
1
常用选项
-g: 设置用户组id, 默认从500开始递增
-n: 修改用户组名称
groupmod -n 新名字 旧名字
2.2.3 用户组删除
groupdel 用户组名
1
如果组是某个用户的主组, 则不允许删除组
3 网络设置
**网卡配置文件路径: **
/etc/sysconfig/network-scripts/
1
ONBOOT: 是否开机启动
BOOTPROTO: IP地址分配方式, DHCP表示动态主机分配协议, static表示静态地址
HWADDR: MAC地址
网卡重启
service network restart # 有些Linux分支可能没有
1
/etc/init.d: 服务的快捷方式目录
/etc/init.d/network restart
1
扩展1:
创建文件的快捷链接(软链接)
ln -s 文档目录 目的 #例: ln -s /etc/sysconfig/networ-scripts/ ~/
1
扩展2:
停止单个网卡: ifdown 网卡名
开启单个网卡: ifup 网卡名
扩展3:
pscp远程文件传输
下载: pscp 选项 用户名@主机地址:资源目录 windows本地路径
上传: pscp 选项 资源路径 用户名@主机地址:远程路径
4 设置主机名
临时设置主机名, 需切换用户后生效
hostname tmp
1
永久设置, /etc/sysconfig/network , centos7在/etc/hostname
5 chkconfig
开启启动项管理服务
查询
chkconfig --list
1
0-6表示运行级别
删除服务
chkconfig --del 服务名
1
添加开机启动服务
chkconfig --add 服务名
1
设置服务在某个级别下开机启动/不启动
chkconfig --level 运行级别 服务名 on/off
1
6 ntp服务
对计算机的时间同步管理
一次性同步(手动同步)
ntpdate 时间服务器的域名或地址
1
设置时间同步服务, 服务名: 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
1
卸载软件
rpm -e 软件名
rpm -e 软件名 --nodeps // 当存在依赖关系时,可强制卸载
1
2
安装
软件包的获取方式:
官网下载
从光盘(镜像文件)中读取
查看块状(光盘、U盘等与磁盘有关的设备)设备的信息:
lsblk (list block devices)
name:名称
size:盘大小
type:类型
mountpoint:挂载点(类似windows下的盘符)
扩展:光盘的挂载和解挂:
解挂
umount 当前设备的挂载点(mountpoint) # 相当于U盘在Windows上弹出了但是没有拔出
1
挂载
mount 设备的原始地址 要挂载的位置路径
# 原始地址:统一都在/dev下,根据命令:lsblk列出的大小确定具体的name值,组成原始地址,例如上图中:/dev/sr0
# 挂载的位置路径:挂载的目录一般都在/mnt下
1
2
3
rpm -ivh 软件包
# -i: install
# -v: 显示进度条
# -h: 表示以”#“号形式显示进度条
rpm -Uvh 软件包 # 更新
1
2
3
4
5
rpm -qf 文件路径 #查询文件属于那个软件包
1
9 cron/crontab计划任务
指定时间点执行任务(定时任务)
crontab 选项
#选项:
# -l :list,列出指定用户的计划任务列表
# -e : edit,编辑指定用户的计划任务列表
# -u : user, 指定用户,不指定表示当前用户
# -r : remove
1
2
3
4
5
6
编辑计划任务
语法格式规则,以行为单位,一行则为一个计划:
分(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
1
2
数字形式
rwx : 421
删除或改变(重命名、移动位置)一个文件,不是看文件有没有对应的权限,而是看文件所在的目录有无写权限,如果有才可以删除
3、属主与属组设置
属主:所属的用户
属组:所属的用户组
chown
更改文档的所属用户
chown -R username 文档路径
# -R 递归更改
1
2
chgrp
更改文档的所属用户组
chgrp -R groupname 文档路径
1
扩展
通过chown也可以更改文档所属组
chown -R username:groupname 文档路径
1
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 -tnlp
netstat -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,输出内容如果包含字母和符号(不包含变量),需要用引号括起来,纯数字可以不包
1
2、shell进阶
2.1 变量
定义形式:变量名=变量值(等号左右不能有空格), 如count=2
使用形式:$变量名,如:echo $count
双引号能识别变量,如echo “名字是:$str”,也能实现转移,如要乘号(*)
单引号不能识别,原样输出,单引号不能转义
在脚本中需要执行一些指令,并把执行的值赋值给变量时,需要使用”反引号“将执行包括,如:
只读变量
readonly 变量名
接受用户输入
read -p 提示信息 变量名
删除变量
unset 变量名
2.2 条件判断语句
语法1:
if condition
then
command..
fi
1
2
3
4
5
6
7
语法2:
if condition
then
command1
else
command2
fi
1
2
3
4
5
6
语法3:
if condition
then
command1
elif condition2
then
command2
else
command3
fi
1
2
3
4
5
6
7
8
9
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指令
系统内核把后续选项传递给tail
tail打开指定文件
取出最后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 包名
1
2
3
4
5
6
联网下载软件包命令:wget
wget 线上下载链接地址
mysql数据备份(这是Linux命令,不是MySQL的)
-A:表示全部数据库
mysql数据还原
还原全部数据库
mysql命令行source方法
source 备份的文件路径
系统命令行
mysql -uroot -p123456 < 备份的文件路径
还原单个数据库
mysql命令行source方法
选择数据库:use 库名
source 备份的文件路径
系统命令行
mysql -uroot -p123456 库名 < 备份的文件路径
————————————————
版权声明:本文为CSDN博主「C\_Liao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ex\_tang/article/details/118642226