第一章:
第一节:
- 终端(terminal):主机输入输出设备
- 主机:程序和数据的存储与处理
- 行律:
- 一行内字符的缓冲,回显与编辑,知道回车结束
- 数据加工
- 将字符转化为信号
第二节:
- shell提示符:
- $普通用户提示符
- #超级用户提示符
su
su:
切换用户
su root切换到超级用户
- 几个基本Linux命令:
man
man:
说明书与使用手册
q-退出,空格-下一页,上下箭头-上下移动
使用方法:
man name
man section name
man -k regexp
section:
1-命令,2-系统调用,3-库函数,5-配置文件
date
date:
第一个字符规定为+,%Y-年号,%m-月份,%j-天数
ntpdate -q 0.pool.ntp.org查询时间
cal
cal:
使用方法:
cal year;
cal month year
bc
bc:
功能强大的计算器,精度任意
bc精度为0,bc -l精度为20
passwd
passwd:
更改自己的口令
口令是通过哈希算法来存储的
第三节:
- 系统状态命令:
who
who:
列出当前登入系统的用户
who am i:列出当前终端上登陆的用户
uptime
uptime:
显示已开机年龄
top
top:
列出资源占用排名靠前的进程
属性:
VIRT-进程逻辑地址空间大小
RES-驻留内存数
SHR-与其他进程共享的内存数
%CPU-CPU占用百分比
%MEN-内存占用比
TIME-占用CPU时间
ps
ps:
查阅进程状态
e-列出系统所有进程,f以full模式列出,l-长格式列出
属性:
UID-用户ID
PID-进程ID
PPID-父进程PID
C-CPU占用指数
SZ-进程逻辑内存
TTY-终端名字
COMMAND-命令名
TIME-占用CPU时间
PRI-优先级
S-状态
free
free:
了解内存使用情况
vmstat
vmstat:
了解系统负载
第四节:
- 重定向:将标准输入或标准输出重定向,用<输入重定向和>输出重定向
cat hello.c > redirection.txt
- 管道:用|将多个命令连接组合,将前一个命令的输出转为后一个命令的输入
cat hello.c | grep hello
第五节:
more与less:
使用方法:
more filename
more *filename
ls -l | more
空格-显示下一屏,回车-下滚动,q-退出,Ctrl+L-刷新
注:less可以回退,可用上下键滚动
cat与od
cat与od:
列出文件内容
cat -n:添加行号打印,od:逐字节打印,可以以不同进制打印
echo 字符 | od:可以打印字符不同进制的ascii
head与tail
head与tail:
显示文件前或后10行
-n number:可以显示number行数据
tail -f:实时打印文件尾部追加内容
wc
wc:
显示文件字数
l-显示文件行数,m-显示文件字符数
sort
sort:
对文本进行排序
默认对数字以字符串排序,n-对数字按照算数大小排序
tr
tr:
翻译字符,将标准输入拷贝到标准输出
使用方法:
tr 'str1' 'str2':将str1中出现的字符替换为str2中的字符
注:可用[]指定一个集合,可用-表示一个范围,可用\加三个八进制十足表示一个字符
uniq
uniq:
筛选文件中重复的行
保留没有重复的行和有重复的行一次,u-保留没有重复的行,d-保留重复的行一次,c-显示重复次数
第二章:
第一节:
- 正则表达式(BRE):字符串匹配与替换操作
- 注:正则表达式与文件通配符规则不一样
- 6个元字符:
. * [ \ ^ $:
1.用\可以取消元字符的特殊作用
2.用[]表示集合,. * \在[]中表示自己,可用-表示一个区间(放在最后失去区间意义),可用^放在开头表示补集(放在其他地方失去补集意义)
3.用.表示任意字符
4.用*放在正则表达式或字符后,匹配此单字符0次或任意多次出现
第二节:
- 组合:可用单字符正则表达式组合
- 锚点:
$:在尾部时表示匹配文件行尾的字符,否则表示自身
^:在首部时表示匹配文件行首的字符,否则表示自身
:number1,number2:表示number1行到number2行
第三节:
grep:
在文件中查找字符串
n-显示时显示行号,v-显示所有不包含模式的行,i-忽略字母大小写比较
空行表示方法:'^ *$'
sed
sed:
流编辑
使用方法:
sed -e '命令1' -e '命令2' -e '命令3' 文件名
sed -f 命令文件 文件名
sed 's/被替换项/替换项/g' 文件名
加上\(或者\)不影响匹配工作
\0:匹配的整个字符串,\1:匹配中用圆括号括起来的字符串
awk
awk:
awk '/条件/{动作}'
逐行扫描文件并进行文件处理
每行用空格隔开的部分叫做"域",$n表示第n域的内容,$0表示整行内容
第三章:
第一节:
- 文件比对命令:
cmp
cmp:
两个文件逐字节比较
输出第一个不同的位置
注:现在多用MD5算法或者SHA-1算法来比较(md5sum)
diff
diff:
显示两个文件的差别
a-Add,c-Change,d-Delete,左边的文件对应行经过a,c,d对应新文件行才能得到右边的文件,其中<是移出,>是输入
diff -u:git模式下比较
版本管理系统:SVN,GIT;对文本文件进行版本管理
第二节:
- 文本文件的编辑命令:
vi
vi:
i-在当前字符前插入正文,a-在当前字符后插入正文,Esc-退出文本编辑回到命令编辑
用h,j,k,l来移动,^移动到开头,$移动到结尾,:n移动到第n行,%花括号配对移动
x-删除一个,dd-删除一行,r-字符替换,u-撤回上次操作,.-重复上次操作
ZZ:wq<CR>-存盘退出,:w<CR>存盘不退出,:q!<CR>不存盘退出,/正则表达式-模式查找(n-向下查找,N-向上查找),s///g-替换(s:::g,s^^^g都可以代替s///g)
第三节:
- 文件名:不能是/字符,大小写有区别
- 文件分类:/etc目录,/tmp临时文件,/var运行文件,/bin常用命令,/dev设备文件,/usr/include头文件,/lib库文件
- 文件通配符规则:
*:
匹配任意长度的文件名字符串(包括空字符)
.和/字符文件必须显式匹配
?:
匹配任一单字符
[]:
匹配括号内任一字符,也可用-指定范围
第四章:
第一节:
- 文件操作基本命令:
ls
ls:
列出当前目录下所有文件和目录
F-在目录后加/,可执行文件后加*,符号链接文件后加@,普通文件后无标记,l-长格式列出,h-便于人阅读方式打印数值,d-列出目录自身信息,a-列出首字符为.的文件,s-列出文件占用磁盘空间
cp
cp:
复制文件
cp file1 file2(file2不存在则创建)
cp file1 file2 ... filen dir
mv
mv:
移动文件
mv file1 file2
mv file1 file2 ... filen dir
mv dir1 dir2
注:若是file2和dir2不存在,则相当于改名
rm
rm:
删除文件
r-递归删除,i-删除文件前需要确认,f-强迫删除,用--显式表示命令行选项结束
第二节:
- 目录管理及路径名相关命令:
pwd
pwd:
打印当前工作目录
cd
cd:
改变当前工作目录
mkdir
mkdir:
创建新目录
p-自动创建路径中不存在的目录
rmdir
rmdir:
删除目录
cp
cp:
复制目录
r-递归的复制目录,v-冗长方式,实时列出复制文件名,u-增量拷贝便于备份
touch
touch:
更改文件更新时间
find
find:
遍历搜索目录树
find filename -name 'wildcard' -action
-type:f,d,l,c,b,p
-size:+-n,单位c,b(默认),k,M,G
-mtime:+-n,单位day
()-与,-o-或,!-非
exec ;:对查找到的目标马上执行命令,用{}表示查找到的目标文件
ok:需要经过操作员确认
第三节:
gzip
gzip/gunzip:
用gzip方式压缩和解压一个文件(执行速度快,效率低)
bzip2
bzip2/bunzip2:
用bzip2的方式压缩和解压一个文件(执行速度慢,效率高)