[读书笔记]鸟哥的LINUX私房菜 五-十一章 基础指令
第五章:
finger 用于显示用户的登陆信息
TAB键 命令补全,目录补全功能
CTRL C 终止运行功能 命令输入错误时也用来退出
CTRL D 终止输入end of file
man q结束 space翻页 /查找关键字
shutdown reboot 关机,重启
忘记ROOT密码的修复方法 P170
第六章
cd 目标目录 转移当前目录到目标目录
cp 源文件(可多个) 目标文件 -i如目标文件已经存在,覆盖前先询问。 -r用于递归复制整个目录
rm 删除目录或文件 -r递归删除目录所有文件 -i询问后删除 可用通配符删除多个文件 ?代表一个字符 *代表0到多个字符
touch 目标文件 建立一个空文件 或 修改文件的状态
mv 源(可多个) 目标 源于目标相同时可用作改名 -i 询问后移动
basename 目标目录 查看目录下的文件
dirname 目标目录 查看目下下的目录 (写SHELL脚本时用于判断)
alias '指令' 指令别名 例: alias lm='ls -al'
unalias 别名 消除别名
查看文档内容:
1 cat 查看全部 -b显示行号
tac 从最后一行开始输出
2 head tail 查看我文件的前,后几行 可一次看多个文件 head file1 file2
3 more 一页一页的查看 空格翻页 ENTER翻行
4 file 目标文件 查看文件内型
5 which 文件名(命令名) 查找文件所在目录
6 find 文件名 同上
第九章
gzip 文件名 压缩成GZ格式
zcat 文件名 查看GZ格式的压缩文档
gzip -d 文件名 解压缩
bzip2 用法同上 -k 保留源文件不删除
bzcat 文件名 查看bz2格式的压缩文档
tar 打包指令 加上选项可以压缩
第十章
type 指令名 查看指令类型
echo $变量名 获得变量
变量=内容 定义变量 =号两边不能有空格,如需要空格则用“ ‘引号
$ var="lang is $LANG" lang is zh_CN.UTF-8 双引号$会显示指代内容
$ var='lang is $LANG' lang is $LANG 单引号会显示原始内容
可用转义符\把特殊符号变成一般符号
unset 变量名 取消变量
name='$name'abc 追加功能 在变量中追加内容 例:PATH='$PATH':/home/yjh/bin
$(命令) 或 `命令` 使用命令的返回值作为内容使用
例:cd /lib/modules/$(uname -r)/kernel 相当于cd: /lib/modules/1.7.16(0.262/5/3)/kernel
$变量 把变量内容取出使用 例:work="/tmp/bin/" ls $work
env 查看环境变量
set 查看环境变量与自建变量
export 变量名 把自定义变量转化为环境变量 环境变量进入子程序(输入命令bash新建一个shell)时变量不会消失
read 变量名 获取用户输入存到变量 -p "提示语言" -t 秒数 限定输入等待时间
declare [选项] 变量名=初值 声明变量类型 -a 数组array -i整数 -x环境变量 -r只读 例:declare -i sum=100+2 sum为102(默认为字符串类型) (声明时不需要$取出时要)
declare +x 变量名 +为取消操作,取消环境变量
declare -p 变量名 列出变量类型 例: declare -p | grep var 列出所有变量的类型 并 提取含有var的 (管道与grep用法)
myvar[1]=内容 数组变量 myvar相当于myvar[0] 读取时需要使用大括号{} echo ${myvar[1]}
删除:
echo ${变量#*结束标志} 从头删除到第一次遇到结束标志 例:var=abcde echo ${var#*c} 得de , 因为从头开始删*放左边
echo ${变量##*结束标志} 从头删除到最后一次遇到结束标志 例:var=abcdebcd echo ${var##*b} 得cd
echo ${变量%结束标志*} 从尾删除到第一次遇到结束标志 ,例:同上,*号位置相反而已
echo ${变量%结束标志*} 从尾删除到最后一次遇到结束标志
替换:
echo ${var/cde/CDE} 把var中(第一个)cde替换为CDE
echo ${var//ab/CDE} 把var中(所有)cde替换为CDE
条件赋值:
bb=${bb-shit} 如果bb没被定义则赋值shit,否则维持原值
bb=${bb:-shit} 如果bb没定义或者为空白则赋值
history n 显示最近n条指令 n为空显示全部
!n 执行历史n指令 !!执行上次指令 !begin 执行历史中开头为begin的指令
重定向:
ls / > ~/rootfile 将指令结果重定向到文件 >为重定向符号 单个时为清空文件内容再添加新内容,>>时为从文件尾部添加新内容
2> 与 2>> 为标准错误输出 把错误信息重定向到文件中
cat > catfile
输入内容 按CTRL + d 结束
cat > catfile < input(文件) 把文件内容作文输入内容传给catfile
ls /tmp | tee -a /tmp/abcd tee就是把输出定向到文件并且在屏幕输出(双重定向) -a代表以累加方式添加到文件尾部
cmd1 && cmd2 cmd1正确执行了才执行cmd2 cmd1 || cmd2 cmd1执行失败了才执行cmd2
管道与数据截取
cut:用于分割同一行数据
echo $PATH | cut -d ':' -f 3,5 cut的-d与-f配合使用 -d后加分割标志 -f后加分割后的段号,例子中就是打印第3、5段
export | cut -c 12- 每行只输出第12个以后的字符 如12-20代表输出12到20的字符
grep:用于分割多行数据中符合条件的行 grep [a-zA-Z] /tmp/abcd [a-zA-Z] 表示只显示大小写相关内容
export | cut -c 12- | grep -iv 'term' -i忽略大小写 -v输出不包含关键字的 -n输出行号 --colour=auto 给关键字着色
grep MANPATH /tmp/man.conf 可直接捉取文件内容 捉取man.conf中含有MANPATH的行
sort:用于排序输出数据 -o outputfile inputfile 把排序后结果存储到文件
cat /etc/passwd | sort -t ':' -k 3 -n默认是按第一个字符排序 这里是 以:为分割 按第三栏排序 -n代表把第三栏看做数字来排序而非文本
cat /tmp/abcd | uniq -c 把输出结果去重,-c代表在每行前添加重复次数
wc /tmp/abcd 查看文件或输出的信息 输出:5(行) 5(单词) 18(字符) /tmp/abcd
tr:替换与删除
ls /tmp | tr '[a-z]' '[A-Z]' 将输出中所有小写换成大写
ls /tmp | tr -d man 删除所有‘man’ -d代表删除包含字符串
cat /tmp/abcd | tr -s ab x 把ab换成x -s代表字符替换
join -t ':' file1 file2 将file1 file2 以:分隔的第一项为索引合并,只有第一项相同的行才会合并
paste -d ':' file1 file2 将两个文件的同一行链接在一起 -d表示分隔符
cat file3 | paste -d '!' file1 - | head -n 3 -代表标准输入 也就是cat的输出
expand -t 1 file3 把每个TAB转换成1个空格 -t代表空格数 unexpand可以吧空格转换成TAB
split -b 20 file1 myfile 将file1分割成每20一个 后面也可以加单位如20k 20m
cat myfile* > myfile 将几个被分割的文件合并
ls -al / | split -l 3 - lslist 将详细资料每3行存为一个文件 -l代表以行分割
xargs:产生命令参数 例:cut -d ':' -f 1 /etc/passwd | head -n 3 | xargs -n finger 把passwd中第一栏前三个取出作为finger的参数 -n每次n个参