Linux-shell脚本编程(一)
参考文献
Linux Shell脚本攻略
脚本开头
1# !/bin/bash
查看环境变量
查看所有环境变量env
查看单个程序的环境变量
pgrep <程序名称>
cat /proc/$PID/environ
示例
12345678910111213[root@holelin ~]# pgrep java2375829629[root@holelin ~]# cat /proc/23758/environ | tr '\0' '\n'SHELL=/bin/bashUSER=jenkinsPATH=/sbin:/usr/sbin:/bin:/usr/binPWD=/LANG=en_US.UTF-8HOME=/var/lib/jenkinsSHLVL=2LOGNAME=jenkins_=/usr/local/jdk1.8/bin/java
获取字符串长度
12[root@holelin ~]# echo ${#USER}4
识别当前的shell版本
1234[root@holeli ...
Linux-用户管理
参考文献
用户管理
useradd
新建用户
12345678910111213-c<备注>: 加上备注文字.备注文字会保存在passwd的备注栏位中;-d<登入目录>: 指定用户登入时的启始目录;-D: 变更预设值;-e<有效期限>: 指定帐号的有效期限;-f<缓冲天数>: 指定在密码过期后多少天即关闭该帐号;-g<群组>: 指定用户所属的群组;-G<群组>: 指定用户所属的附加群组;-m: 自动建立用户的登入目录;-M: 不要自动建立用户的登入目录;-n: 取消建立以用户名称为名的群组;-r: 建立系统帐号;-s<shell>: 指定用户登入后所使用的shell;-u<uid>: 指定用户id.
12345678910111213#-g: 加入主要组、-G: 加入次要组useradd –g sales jack –G company,employees # 新建用户并创建同名用户组,创建home目录,使用/bin/bash作为初始bash useradd -U -m -s /bi ...
Linux工具-VIM
参考文献
精通 VIM ,此文就够了
多模式文本编辑器
四种模式
正常模式(Normal-mode) 默认
正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作.这时击键时,一些组合键就是 vim 的功能键,而不会在文本中键入对应的字符.
在这个模式下,我们可以通过键盘在文本中快速移动光标,光标范围从小到大是字符、单词、行、句子、段落和屏幕.启动 VIM 后默认位于正常模式.不论是什么模式,按一下 <Esc> 键 ( 有时可能需要按两下,插入模式按一下 Esc ,就会切换到正常模式,命令模式或者可视模式下执行完操作以后,就会自动进入正常模式,如果进入命令模式或者可视模式没有执行任何操作,按两下 Esc 即可 )都会进入正常模式.
插入模式(Insert-mode)
该模式下可以输入内容
按下i,l,o,O,a,A,R等任何一个字母之后才会进入插入模式
命令模式(Command-mode)
在正常模式中,按下:(冒号)键或者/ (斜杠),会进入命令模式.在命令模式中可以执行一些输入并执行一些 VIM 或插件提供的指令,就像在shell里一样.这些指令 ...
Linux-备份压缩
参考文献
Compressing and decompressing files under Linux
Linux的备份压缩
最早的Linux备份介质是磁带,使用的命令是tar;
可以打包的磁带文件进行压缩存储,压缩命令是gzip和bzip2;
经常使用的扩展名是:.tar.gz,.tar.bz2,.tgz
常见的压缩后缀
*.Z compress 程序压缩的档案;
*.bz2 bzip2 程序压缩的档案;
*.gz gzip 程序压缩的档案;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
tar格式
注意tar是打包,不是压缩
1Format: tar [primary option + secondary option] file or directory
Primary options(主要选项): they cannot be present at the same time, telling tar what to do is mandatory
...
Linux-文件和目录管理
参考文献
鸟哥的Linux私房菜基础学习篇(第四版)
目录和路径
相对路径和绝对路径
绝对路径: 路径的写法一定由根目录/写起,例如/usr/share/doc这个目录;
相对路径: 路径的写法不是由/写起,例如由cd ../home
目录的相关操作
.: 代表此层目录;
..: 代表上一层目录;
-: 代表前一个工作目录;
~: 代表目前使用者身份所在的家目录;
~holelin: 代表holelin这个使用者的家目录
cd: (change directory)切换目录
pwd: (print working directory)显示当前目录
mkdir: (make directory)建立一个新目录
rmdir: 删除一个空目录
文件与目录管理
ls: 文件与目录的查看
123ls [-aAdfFhilnrRSt] 文件名或目录名称ls [--color={never,auto,always}] 文件名或目录名称ls [--full-time] 文件名或目录名称
-a: 全部的文件,连同隐藏文件一起列出来
-A: 全部的文件,连同隐 ...
Linux-文本查看命令
参考文献
cat
文本内容显示到终端
1cat demo.yml
tac
文本反向显示到终端
head
查看文件开头
12head demo.ymlhead -5 demo.yml
tail
查看文件结尾
常用参数-f文件内容更新后,显示信息同步更新
wc
统计文件内容信息
1wc -l demo.yml
grep
检索文本内容
1grep -i "待查询的字符串信息" filename
说明:grep能在文件中检索特定内容
-i:大小写敏感
-A/-B/-C <N>:顺带显示前后文,-A表示后面 N 行,-B表示前面 N 行,-C表示前后各 N 行
-E:使用正则表达式来匹配
-v:反选(输出不匹配的行)
-l:只输出能匹配到内容的文件名
-F:不要将检索内容视为正则表达式
-r:递归匹配目录下所有文件的内容
-o:只输出匹配上了的部分(而不是整行)
-a:也对二进制文件进行检索,而不是忽略它们!
nl
添加打印行号
12345678910# nl [-bnw] 档案 参数:-b :指定行号指定的方式,主要有两 ...
Linux(二)-文件/目录权限管理
参考文献
鸟哥的Linux私房菜基础学习篇(第四版)
权限的概念
文件拥有者
用户组
每个账号都可以有多个用户组的支持
其他人
在Linux中,任何一个文件都具有用户(User),所属群组(Group)以及其他人(Others);
Linux用户身份与用户组记录
默认情况下,所有的系统上的账号与一般身份用户的相关信息都记录在/etc/passwd这个文件内,个人密码则是记录在/etc/shadow这个文件中,Linux所有的组名都记录在/etc/group中
Linux文件属性
使用ls -al显示的文件列表信息
123456789101112[root@holelin holelin]# ls -altotal 32drwx------ 3 holelin holelin 4096 May 25 23:34 .drwxr-xr-x. 5 root root 4096 Mar 4 11:09 ..-rw------- 1 holelin holelin 783 May 24 23:33 .bash_history-rw-r--r-- 1 h ...
Linux-基础
参考文献
鸟哥的Linux私房菜基础学习篇(第四版)
基础命令
显示日志与时间: date
显示日历: cal
计算器: bc
注销: logout
帮助命令:
man <command> : DATE(1)
代号
说明
1
用户在Shell环境中可以操作的命令或者可执行文件
2
系统内核可调用的函数与工具等
3
一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)
4
设备文件的说明,通常在/dev下的文件
5
配置文件或是某些文件的格式
6
游戏(games)
7
惯例与协议等.例如Linux文件系统,网络协议,ASCII代码等的说明
8
系统管理员可使用的管理命令
9
跟内核有关的文件
<command> --help
info <command>
说明文档路径: /usr/share/doc/
获取终端支持的语系数据库:
echo $LANG
locale
1234567891011121314L ...
Linux-环境变量配置
参考文献
Linux环境变量配置全攻略
在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法.
下面所有例子的环境说明如下:
系统:Ubuntu 14.0
用户名:uusama
需要配置MySQL环境变量路径:/home/uusama/mysql/bin
Linux读取环境变量
读取环境变量的方法:
export命令显示当前系统定义的所有环境变量
echo $PATH命令输出当前的PATH环境变量的值
env 查看所有默认的环境变量
set |more 要查看所有环境变量,包括 shell 变量、本地变量和 shell 函数(如任何用户定义的变量和命令别名)
这两个命令执行的效果如下
123456789101112131415uusama@ubuntu:~$ exportdeclare -x HOME="/home/uusama"declare -x LANG="en_US.UTF-8"declare -x LANGUAGE="en_US:"declare ...
inside-the-linux-kernel
参考文献
inside the linux kernel
https://www.baeldung.com/linux/boot-process
https://www.freecodecamp.org/news/the-linux-booting-process-6-steps-described-in-detail/
The Linux Booting Process
BIOS and UEFI
首先,系统启动后,BIOS(基本输入/输出系统)或 UEFI(统一可扩展固件接口)程序就会启动.通常,BIOS 包含获得对主机设备的初始访问的所有代码:
keyboard 键盘
display screen 显示屏
disk drives 磁盘驱动器
serial communications 串行通讯
然而,一旦系统完全启动,大多数这些设备都会有专用的设备驱动程序接管.
BIOS 和 UEFI 是计算机用来启动操作系统 (OS) 的固件接口.然而,这两个程序在如何存储驱动器上和有关驱动器的元数据方面有所不同:
BIOS 使用主引导记录 (MBR)
MBR 代表主引导记 ...