问题合集 ---- Linux命令(三) find tar ssh top grep

转自 http://www.neocanable.com/linux-find/ && http://www.neocanable.com/linux-tar/ &&http://www.neocanable.com/linux-ssh/ &&http://www.neocanable.com/linux-top/&&http://www.neocanable.com/linux-shell-hot-key/


linux find 使用方法


1.找到某个名字的文件

find  -name  'demo.rb'  # 找到名字是demo.rb的文件(当前目录下递归查找)
find  -name  '*.svn'    # 后面也能跟正则表达式

2.大小写不敏感

find  -iname  'demo.rb'  # 不区分大小写的找demo.rb这个文件名字,DEmo.rb也匹配

3.指定最大/小递归的目录层数
# 在当前目录下面递归查找demo.rb,但是最深到第2层目录

find  --maxdepth  2  -name  'demo.rb'

# 最大递归目录层数3,最小2

find  --mindepth  2  --maxdepth  3  -name  'demo.rb'

4.查找不匹配的,反向查找

find  -not  -name  'demo.rb'  # 找到不是demo.rb的文件

5.用find的执行结果执行下个命令

# cat 所有名字报行demo.rb的文件

find  -name  'demo.rb'  --exec  cat  { }
find  -name  'demo.rb'  |  xargs  cat

6.查找空文件

find . /  -empty  # 找当前目录下的空文件

7.根据文件类型查找

find .  -type s  # 查找socket文件
find .  -type d  # 查找目录
find .  -type f  # 普通文件
find .  -type f  -name  ".*"  # 隐藏文件
find  -type d  -name  ".*"  # 隐藏目录

8.根据文件大小搜索

find . /  -size +100M  # 找出大于100M的文件
find . /  -size  -100M  # 找出小于100M的文件
find . /  -size 100M   # 找出等于100M的文件

9.根据修改时间查找

find  -mtime  5   # 找出5天之前修改的文件
find  -mmin  5    # 找出5分钟之前修改的文件

find  -atiem  5   # 5天之内修改过的文件
find  -amin   5   # 5分钟内修改过的文件


==========================================================================================

linux tar 打包方法


1.创建tar包

tar cvf demo.tar demo /  # 打包
tar xvf demo.tar        # 解包

c : 创建归档文件
v : 显示被打包的文件
f : 使用文件归档

tar czvf demo.tar.gz demo /  # 打包并且压缩
tar xzvf demo.tar.gz        # 解压缩

z : 压缩,用gzip
note: tgz == tar.gz

tar cjvf demo.tar.bz2 demo /  # 用gzip2压缩
tar xjvf demo.tar.bz2        # 解压

j : bzip2解压
note: tbz和.tb2 等同于tar.bz2

2.查看tar包里面的东西(listing a tar file)

tar tvf demo.tar      # 查看一个tar文件
tar tzvf demo.tar.gz  # 查看tar.gz/tgz文件
tar tjvf demo.tar.bz2  # 查看bz2/tb2/tbz等类型的文件

3.解压单独文件或者目录

tar xvf demo.tar . / file        # 将file从demo.tar中解压出来
tar xzvf demo.tar.gz . / file    # 将file从demo.tar.gz中解压出来
tar xjvf demo.tar.bz2 . / file   # 将file从demo.tar.bz2中解压出来

5.解压出一种类型的文件

tar xvf demo.tar  --wildcards ‘ *.rb’  # 解压demo.tar包中所有的rb文件

6.将文件或者目录推到tar里面

tar rvf demo.tar demo /      # 将demo/ 目录打包到demo.tar中
tar rvf demo.tar demo.file  # 将demo.file打包到demo.tar中

other tips

tar cjvf back-$ ( date + %Y %m %d ).tar.bz2 to_backup /  # 按照日期备份

=======================================================================================

linux ssh


1.ssh -l username remoteip 或者 ssh username@remoteip
ssh -l meng -p 22 192.168.254.50
ssh默认的端口是22,所以remote address的ssh server 如果没有修改ssh的端口的话会默认为22
neo@ubuntu:~$ ssh -l meng 192.168.254.50
Last login: Fri Mar 11 12:14:48 2011 from 192.168.254.102
[meng@ddkan ~]$

2.ssh server绑定ip地址
ListenAddress 192.168.0.11 # 只允许192.168.0.11这个ip登录上来

3.修改ssh端口
Port 2222 修改ssh服务的端口为2222

4.修改ssh协议的版本
Protocol 2 # 可以为1和2这两个版本

5.不允许root登录
PermitRootLogin no


=====================================================================================

linux top 使用方法


LINUX性能监控工具

1.top各个列的含义

最顶行:三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

a PID 进程 id  
b PPID 父进程 id  
c RUSER Real user name  
d UID 进程所有者的用户 id  
e USER 进程所有者的用户名  
f GROUP 进程所有者的组名  
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?  
h PR 优先级  
i NI  nice值。负值表示高优先级,正值表示低优先级  
j P 最后使用的CPU,仅在多CPU环境下有意义  
%CPU 上次更新到现在的CPU时间占用百分比  
l TIME 进程使用的CPU时间总计,单位秒  
m TIME+ 进程使用的CPU时间总计,单位 1 / 100秒  
%MEM 进程使用的物理内存百分比  
o VIRT 进程使用的虚拟内存总量,单位kb。 VIRT=SWAP+RES  
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。  
q RES 进程使用的、未被换出的物理内存大小,单位kb。 RES=CODE+DATA  
r CODE 可执行代码占用的物理内存大小,单位kb  
s DATA 可执行代码以外的部分 (数据段+栈 )占用的物理内存大小,单位kb  
t SHR 共享内存大小,单位kb  
u nFLT 页面错误次数  
v nDRT 最后一次写入到现在,被修改过的页面数。  
w S 进程状态。 
D=不可中断的睡眠状态 
R=运行 
S=睡眠 
T=跟踪 /停止 
Z=僵尸进程  
x COMMAND 命令名 /命令行  
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

2.交互式

t : cpu和任务数量的总结性信息是否显示
m : 是否显示内存的使用情况
A : 分屏,可以分四个屏,用来监控不同的参数
    -或者 "_" : 否显示当前窗口和是否显示所有
    G : 选择操作的窗口
    
    

z : 关闭颜色显示
Z : 设置颜色, 0- 7
B : 使用加粗显示
b : 配合x,y使用,能公将当前排序列加粗
f : 设置需要选择的那些列
o : 设置列的显示顺序,例如地一列显示内存的使用,第二列显示cpu的使用
     ....  shift+字母 /字母调整顺序

F /O : 设置排序的列

R : 将结果倒排序 (reverse )
c : 显示进程是用什么命令运行的 ( command line )
i : 空闲的任务
u : 设置显示某个用户的进程,什么都不填是所有用户的
n 或者  # : 设置显示的进程数量,0是不限 
k : 杀死某个进程,需要给出进程的 id
r :  nice和renice
W : 写到配置文件中 
l : 是否显示load average
s : 改变刷屏的时间间隔
<或者 > : 替换排序的列

3 运行参数

    -d 设置刷屏的时间          # top -d 2
    -p 指定需要监控的进程 id    # top -p 1122
    -s 安全模式,这个不太懂
    -i 不显示闲置和僵死的进程
    -c 显示全部命令参数


========================================================================================

linux shell快捷键


Ctrl + a 切换到命令行开始
Ctrl + e 切换到命令行末尾
Ctrl + l 清除屏幕内容
Ctrl + u 清除剪切光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 复制剪切板里的内容
Ctrl + h 类似于退格键
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c 终止命令
Ctrl + d 退出shell
Ctrl + z 转入后台运行..
Ctrl + p 上一条命令
alt键比较少用,因为很多地方与远程登陆工具是有冲突的..
Alt + f 切换光标前的字母
Alt + b 切换光标后的字母


========================================================================================

linux grep 使用方法


1.在一个文件内搜索某个字符串

grep  'match_word'  file

2.在多个文件内搜索某个字符串

grep  'match_word'  file file2
grep  'match_word'  *.rb       # 后面可以跟正则\

3.不区分大小写

grep  -i  'match_word'  file

4.正则表达式

grep  'regular'  file   # 放一个正则表达式也是ok的

5.全字匹配

grep  -w  'the'  file    # 会匹配the,但是不会匹配there

6.匹配前后几行(match with A/B/C)

grep  -A  3  'the'  file  # 匹配出现the的那行并且也输出后面的三行
grep  -B  3  'the'  file  # 匹配出现the的那行并且也输出前面的三行
grep  -C  3  'the'  file  # 匹配出现the的那行并且也输出前后三行

7.搜索目录下的文件

grep  -r  'the' . /   # 搜索目录下面的文件里面报行the的文件
grep  -R  'the' . /   # 递归搜索

8.反向匹配

grep  -v  'the'  file  # 找不不含有the的行

9.反向匹配多个字符

grep  -v  -e  'the'  -e  'this'  -e  'find'  # 匹配不包含the、this、find的行

10.找到匹配的数量

grep  -c  'the'  file  # 找出字符the的行数的数量

11.显示匹配的的行号

grep  -n  'the'  file  # 找出file内匹配the的行,并且显示行号

12.仅仅显示匹配的文件名称

grep  -l  'the'  *.rb   # 所有包含字符the的文件名称

13.仅仅显示匹配的字符串

grep  -o  'the'  file   #  仅仅显示每行的the

14.多颜色显示

grep  -v  'the'  file  --color

或者

export  GREP_OPTIONS= '--color=auto'  GREP_COLOR= '100;8' ; 
grep  'the'  file

============================================================================================

sar命令 http://blog.csdn.net/arau_sh/article/details/6574853

find命令 http://blog.csdn.net/arau_sh/article/details/6574867

objdump, nm, ar 命令 http://blog.csdn.net/arau_sh/article/details/8062373




你可能感兴趣的:(问题合集 ---- Linux命令(三) find tar ssh top grep)