一、快捷键
( AE BF PN)
1. 历史命令的查找
history
往回查找:ctrl+ P
往后查找:ctrl+ N
2. 光标移动
ctrl+ B 往前移
ctrl+ f
ctrl+ a 光标移动行首
ctrl+ e 光标移动行尾
二、目录结构
目录 /boot 系统启动相关的文件,如内核、initrd,以及grub(BootLoader) /etc 配置文件 /home 用户的家目录,每一个用户的家目录通常默认为/home/USERNAME /root 管理员的家目录 /lib 库文件静态库:单在程序中的库,其他程序不能使用该库文件动态库:在内存中,任何用到该库的程序都可以使用/lib/modules:内核模块文件 /media 挂载点目录,移动设备(在windows中,插入一张光盘,系统会自动读取光盘,用户可以直接执行,但在linux中,插入光盘后需要在挂载点挂载这个设备之后才可以使用这个设备。) /mnt 挂载点目录,额外的临时文件系统 /opt 可选目录,第三方程序的安装目录 /proc 伪文件系统,内核映射文件 /sys 伪文件系统,跟硬件设备相关的属性映射文件 /tmp 临时文件,/var/tmp /var 可变化的文件,经常发生变化的文件 /bin 可执行文件,用户命令 ;其中用到的库文件可能在/lib,配置文件可能在/etc /sbin 可执行文件,管理命令 ;其中用到的库文件可能在/lib,配置文件可能在/etc /usr 只读文件,shared read-only/usr/local:第三方软件
三、文件及目录管理
whatis
info
man
which
whichis
--------------
统计当前目录下文件个数
find ./ | wc -l
在家目录下有一个.bashrc 文件可以自定义命令
alias lsl = 'ls -lrt'
ls文件会有一个编号
ls | cat -n
find 实时查找
locate 不是实时查找,速度较快
比较两个文件异同
diff 文件1,文件2
使用egrep 查询文件内容
egrep content 文件
ln cc ccAgain :硬连接;删除一个,将仍能找到;
ln -s cc ccTo :符号链接( 软链接) ;删除源,另一个无法使用;(后面一个ccTo 为新建的文件)
ls /proc && echo suss! || echo failed.
等同于
if ls /proc; then echo suss; else echo fail; fi
0 :表示键盘输入
1 :表示屏幕输出
2 :表示错误输出
将标准错误stderr与stdout一同显示出来
./test.sh > test2.log 2 >&1
ls proc/*.c > list 2 > & l 将标准输出和标准错误重定向到同一文件;
bash 快捷键
Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行
Ctl-W 删除当前光标到前边的最近一个空格之间的字符
Ctl-H backspace,删除光标前边的字符
Ctl-R 匹配最相近的一个文件,然后输出
查找record.log中包含AAA,但不包含BBB的记录的总数:
cat -v record.log | grep AAA | grep -v BBB | wc -l
四、文本处理
查找txt和pdf文件:
find . \( - name "*.txt" - o - name "*.pdf" \) - print
否定参数 , 查找所有非txt文本:
find . ! - name "*.txt" - print
列出所有目录
find . - type d - print
所以, 可以用以下命令组合来实现查找本地目录下的所有二进制文件:
ls - lrt | awk '{print $9}' | xargs file| grep ELF| awk '{print $1}' | tr - d ':'
最近第7 天被访问过的所有文件:
find . - atime 7 - type f - print
最近7 天内被访问过的所有文件:
find . - atime - 7 - type f - print
查询7 天前被访问过的所有文件:
find . - atime + 7 type f - print
w字 k M G 寻找大于2 k的文件:
find . - type f - size + 2 k
删除当前目录下所有的swp文件:
find . - type f - name "*.swp" - delete
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
在多级目录中对文本递归搜索( 程序员搜代码的最爱):
grep "class" . - R - n
匹配多个模式:
grep - e "class" - e "vitural" file
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
file 内容作为一行输出
cat file. txt| xargs
single 内容作为三行输出
cat single. txt | xargs - n 3
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
sort 排序
字段说明
- n 按数字进行排序 VS - d 按字典序进行排序
- r 逆序排序
- k N 指定按第N 列排序
示例:
sort - nrk 1 data. txt
sort - bd data
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
uniq 消除重复行
消除重复行
sort unsort. txt | uniq
统计各行在文件中出现的次数
sort unsort. txt | uniq - c
找出重复行
sort unsort. txt | uniq - d
五、磁盘管理
查看磁盘空间利用大小:
df - h
查看当前目录所占空间大小:
du - sh
查看当前目录下所有子文件夹排序后的大小:
for i in `ls`; do du - sh $i; done | sort
或者:
du - sh `ls` | sort
查看磁盘空间 df - h
查看目录大小 du - sh
打包 tar - cvf
解包 tar - xvf
压缩 gzip
解压缩 gunzip bzip
六、进程管理工具
eg: 查询进程名中含有re的进程
pgrep - l re
ps - ef | grep re
ps - ajx
ps - aux
查看端口占用的进程状态:
lsof - i: 3306
查看用户username的进程所打开的文件
$lsof - u username
-- -- -- -- -- -- -- -- -- -- -
使用命令pmap,来输出进程内存的状况,可以用来分析线程堆栈;
$pmap PID
-- -- -- -- -- -- -- -- -- -- --
$top
( -> ) P
输入top命令后,进入到交互界面;接着输入字符命令后显示相应的进程状态:
对于进程,平时我们最常想知道的就是哪些进程占用CPU最多,占用内存最多。以下两个命令就可以满足要求:
P :根据CPU使用百分比大小进行排序。
M :根据驻留内存大小进行排序。
i:使top不显示任何闲置或者僵死进程。
七、性能监控
sar 命令
yum install - y sysstat
监控cpu
查看CPU使用率
sar - u 1 2
后面的两个参数表示监控的频率,比如例子中的1 和2 ,表示每秒采样一次,总共采样2 次
查看CPU平均负载
$sar - q 1 2
查看内存
$sar - r 1 2
vmstat
八、网路工具
列出所有端口 ( 包括监听和未监听的) :
netstat - a
列出所有 tcp 端口:
netstat - at
列出所有有监听的服务状态:
netstat - l
netstat - antp
netstat - tunlp
lsof - op pid
-- -- -- -- -- -
查看路由状态:
$route - n
发送ping包到地址IP:
$ping IP
探测前往地址IP的路由路径:
$traceroute IP
DNS查询,寻找域名domain对应的IP:
$host domain
反向DNS查询:
$host IP
九、系统管理
查看Linux 系统版本:
uname - a
查看Unix 系统版本:操作系统版本:
$more / etc/ release
查询CPU信息:
$cat / proc/ cpuinfo
查看CPU的核的个数:
$cat / proc/ cpuinfo | grep processor | wc - l
查看内存信息:
$cat / proc/ meminfo