4bash_ch10

本文为《鸟哥的Linux私房菜》学习笔记系列,如有问题欢迎打扰

相关知识

sh:Bourne Shell
csh:C Shell
bash:Bourne Again SHell

系统中合法的shells:/etc/shells
账户登录时的默认shell:/etc/passwd 每行的最后一个字段
前一次登录执行过的命令:~/.bash_history
别名:alias
查看命令类型:type [-apt] name

变量

变量的使用与设置

显示
echo $name
echo ${name}

赋值
name=zinkt
doublename="$zinkt+$zinkt" 双引号保有特殊字符特性
singlename='$zinkt+$zinkt' 单引号为纯文本
varname=$zinkt+\$zinkt 反斜杠转义
name=${name}zinkt 扩增内容

操作
$(uname -r) 获取内核版本号(在有带空格参数时,使用括号)
`` 反单引号内的命令会被先执行,因此也可以是
`uname -r`

export name 使变量变成环境变量
unset name 取消变量

可在~/.bashrc 中指定变量
......

3文件_文件系统的压缩ch8

本文为《鸟哥的Linux私房菜》学习笔记系列,如有问题欢迎打扰

压缩指令

gzip, zcat/zmore/zless/zgrep

gzip [-cdtv#] 文件名
-c 将压缩的数据输出到屏幕上,可用数据重定向来处理
-d 解压缩
-t 检测压缩文件的一致性
-v 显示压缩比等信息
-# 接1-9数字,表示压缩等级

bzip2, bzcat/bzmore/bzless/bzgrep

xz, xzcat/xzmore/xzless/xzgrep

打包命令tar

tar -c -f filename.tar 目录或文件   #打包
tar -t -f filename.tar            #查看打包文件中的文件名
tar -x -f filename.tar -C 欲解压缩的目录 #解压

-c 建立打包文件
-t 查看打包文件的内容含有哪些 文件名
-x 解打包
-z 通过gzip的方式
-j 通过bzip2的方式
-J 通过xz的方式

-v 在过程中显示正在处理的文件名
-f 文件名
-C 特定目录解压

-p 保留备份数据的原本权限与属性
-P 保留根目录
--exclude=FILE 压缩过程中,不将FILE打包

......

ginkorm

sqlite3使用

sqlite3 gink.db #进入数据库
.head on #打开列名开关
.table #显示表
.schema User #查看建表sql

log

封装了log标准库,主要部分:

var (
	errorLog = log.New(os.Stdout, "\033[31m[error]\033[0m ", log.LstdFlags|log.Lshortfile)
	infoLog  = log.New(os.Stdout, "\033[34m[info ]\033[0m ", log.LstdFlags|log.Lshortfile)
	loggers  = []*log.Logger{errorLog, infoLog}
	mu       sync.Mutex
)

Session

封装了database/sql 标准库的Exec()Query() 和 QueryRow() 三个方法,主要目的是:

  1. 统一打印日志 (包括 执行的SQL 语句和错误日志)
  2. ......

2磁盘格式_分区ch7

本文为《鸟哥的Linux私房菜》学习笔记系列,如有问题欢迎打扰

文件系统

ext2 文件系统构成

  1. 超级区块:记录此文件系统的整体信息(inode,数据区块的总量、剩余量、使用量等)
  2. inode:记录文件的属性,及文件数据所在区块的号码。一个文件占用1个
  3. 数据区块:记录文件实际内容
  • BootSector,Block Group1,Block Group2,Block Group3...
  • 区块群组:inode和数据区块太大时,不方便管理,因此分成多个区块,每个区块由对应的区段组成:
    • superblock
      • 数据区块和inode的总量
      • 未使用和已使用的数据区块与inode的数量
      • 数据区块与inode的大小
      • 文件系统的挂载时间、最近写入数据时间、最近一次检验磁盘的时间等文件系统相关信息
      • 一个有效位数值,若此文件系统已被挂载,有效位为0;若未被挂载,则为1
    • 文件系统描述
      • 描述每个区块群组的开始与结束
      • 及说明每个区段(超级区块、对照表、inode对照表)分别介于哪一个区块之间
    • 区块对照表
      • 记录哪些区块是空的
      • ......

5shell脚本

本文为《鸟哥的Linux私房菜》学习笔记系列,如有问题欢迎打扰

一些前置知识

编写

  1. 命令是从上而下,从左到右地分析与执行
  2. 命令,选项与参数间的多余空格会被忽略,[tab]键产生的空白同样视为空格键,空白行也被忽略
  3. 如果读到一个Enter符号(CR),就尝试开始执行该行(串)命令
  4. 如果一行太多,可用\[Enter]来拓展至下一行
  5. #可做注释

执行

  1. 需要有可执行权限
  2. 通过绝对或相对路径执行
  3. 通过变量【PATH】,将shell.sh放在PATH指定的目录,如~/bin/
  4. 以bash程序来执行:【bash shell.sh】或【sh shell.sh】(此时只要有r权限即可)

良好习惯

文件头处记录好

  • 脚本功能
  • 脚本版本
  • 脚本作者及联络方式
  • 脚本版权声明方式
  • 脚本History
  • 脚本内较特殊的命令,如使用【绝对路径】的
  • 脚本运行时需要的环境变量预先声明与设置
  • ......
关于我
zinkt
zinkt@foxmail.com
前端基于bootstrap5
后端使用Spring Boot
基于它们构建的一个个人博客系统