标签:搜索 shared source asd 逆向 查询 打印 x86 dig
命令和选项
command [options] [arguments]
命令 选项 参数
选项
短选项- 例(-h -l -a)
短选项可组合 例(-hla)
有些命令短选项可以不带-, 通常称作BSD风格的选项 例(ps aux ,tar xf)
有些选项需要带参数 tail -n 2 /etc/passwd
长选项不能组合 --help --list
如果需要参数 长选项的参数通常需要=号 --size=1G
命令后的参数就是命令的作用对象
例:ls /root
cat /etc/passwd
命令帮助
内部命令
help command
外部命令
command --help
通过type查看命令是内部命令还是外部命令
[root@learn ~]# cd ~ #切换目录到主(家)目录
[root@learn ~]# cd #切换目录到主(家)目录
[root@learn ~]# cd /home/
[root@learn home]# cd - #来回切换
/root
[root@learn ~]# echo $PWD #当前路径变量
/root
[root@learn ~]# echo $OLDPWD #上一次路径变量
/home
[root@learn ~]# cd .. #上级目录
[root@learn /]# cd . #当前目录
..上级目录
. 代表当前目录
绝对路径 以根目录开始的路径
相对路径 以当前目录为参照
列出文件的信息(默认为当前目录)
-a列出目录中所有文件,包含隐藏文件
-l 长格式显示
-R 递归显示
-d 只显示目录属性
-r 逆序输出
创建目录
-p --parents 需要时创建目标目录的上层目录
-v --verbose 每次创建新目录都显示信息(显示创建目录的过程)
删除目录
-p --parents 删除指定目录及其上级目录
-v --verbose 输出处理的目录详情(显示删除目录的过程)
显示目录结构
最小化安装系统则没有该命令,需要安装该命令
[root@learn ~]# mkdir /mnt/cdrom #创建需要挂载光盘目录
[root@learn ~]# mount /dev/cdrom /mnt/cdrom/ #挂载光盘到创建的光盘目录
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@learn ~]# find /mnt/cdrom/Packages/ -name "tree*" #查找光盘内有无该命令的安装包
/mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm
[root@learn ~]# rpm -i /mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm
package tree-1.5.3-3.el6.x86_64 is already installed #该提示是之前安装过该命令
[root@learn ~]# tree #列出该目录结构
.
├── 2.txt
├── anaconda-ks.cfg
├── c
│ ├── a.c
│ ├── num
│ ├── num.c
│ └── sum
├── install.log
├── install.log.syslog
└── old.txt
1 directory, 9 files
1、普通文件 标识 -
2、目录文件 标识 d
3、链接文件
软链接 标识l
硬链接 标识-
4、特殊文件 用于作为硬件设备访问的文件
块设备 标识b 随机按块进行读取
字符设备 标识c 安装输入的顺序来读取
5、套接字文件(socket) 标识s 让两个进程进行通信使用软件模拟的设备
6、命名管道(pipe) 标识p
拷贝目录及文件
格式: cp_源_目标
-d 保留文件的链接属性
-a 保留所有属性
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
-p 包含属性一起
拷贝过程不指定目标文件名,则目标文件名和源文件名一样
[root@learn lisi]# cp 91/1.txt 51cto/
拷贝过程指定目标文件名(改名)
[root@learn lisi]# cp 91/1.txt 51cto/2.txt
[root@learn lisi]# ls
123 51cto 91
将51cto文件夹中扩展名是txt的文件拷贝到当前目录
[root@learn lisi]# cp 51cto/*.txt .
[root@learn lisi]# ls
123 1.txt 2.txt 51cto 91
将51cto文件夹拷贝到/tmp文件夹
[root@learn lisi]# cp -R 51cto/ /tmp/
[root@learn lisi]# ls 123
123
只有管理员能够将文件拷贝权限不变
[root@learn lisi]# chmod 777 123 #改变123的权限
[root@learn lisi]# ll 123
-rwxrwxrwx 1 root root 0 Jan 16 14:03 123
[root@learn lisi]# cp 123 91/ #直接复制过去则文件属性会发生改变
[root@learn lisi]# ll 91/
total 0
-rwxr-xr-x 1 root root 0 Jan 16 14:08 123
-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt
[root@learn lisi]# cp -p 123 91/ #加-p参数后文件属性不变
[root@learn lisi]# ll 91
total 0
-rwxrwxrwx 1 root root 0 Jan 16 14:03 123
-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt
删除文件或目录
-r递归
-f强制
查看rm帮助
[root@learn ~]# rm --help
删除单个文件
[root@learn ~]# rm 2.txt
rm: remove regular file `2.txt‘? y
-r删除51cto目录中的文件和目录
[root@learn lisi]# ls 51cto/
1.txt 2.txt
[root@learn lisi]# mv -r 51cto/*
mv: invalid option -- ‘r‘
Try `mv --help‘ for more information.
[root@learn lisi]# rm -r 51cto/*
rm: remove regular empty file `51cto/1.txt‘? y
rm: remove regular empty file `51cto/2.txt‘? y
[root@learn lisi]# ls
123 1.txt 2.txt 51cto 91
删除目录
[root@learn lisi]# rm 51cto/
rm: cannot remove `51cto/‘: Is a directory
[root@learn lisi]# rm -r 51cto/
rm: remove directory `51cto‘? y
-f强制删除,无提示
[root@learn lisi]# ls 51cto/
123
[root@learn lisi]# rm -f 51cto/123
移动文件或目录;重命名功能
查看mv帮助
[root@learn lisi]# mv --help
把目录123移动到91下
[root@learn lisi]# mv 1
123 1.txt
[root@learn lisi]# mv 123 91/
mv: overwrite `91/123‘? y
[root@learn lisi]# ls 91/
123 1.txt
把91/123重命名为91/456
[root@learn lisi]# ls 91/
123 1.txt
[root@learn lisi]# mv 91/123 91/456
[root@learn lisi]# ls 91
1.txt 456
改变文件的时间戳
最近一次访问时间(access time)
最近一次修改时间(modify time) 改变文件的内容;内容变元数据变
最近一次改变时间(change time) 元数据(文件名、大小、权限)的改变
通过stat命令查询文件3个时间(元数据)
[root@learn lisi]# stat 1.txt
File: `1.txt‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-16 14:13:43.566016527 +0800
Modify: 2017-01-16 14:13:43.566016527 +0800
Change: 2017-01-16 14:13:43.566016527 +0800
更改访问时间和改变时间
[root@learn lisi]# touch homework
更改修改时间和改变时间
[root@learn lisi]# touch -a 1.txt
[root@learn lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:13:42.939001409 +0800
Modify: 2017-01-17 17:13:16.254001264 +0800
Change: 2017-01-17 17:13:42.939001409 +0800
使用指定的时间更改修改时间
[root@learn lisi]# touch -m 1.txt
[root@learn lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:13:42.939001409 +0800
Modify: 2017-01-17 17:13:57.920001327 +0800
Change: 2017-01-17 17:13:57.920001327 +0800
如果没有则创建文件,如果存在则更改三个时间
[root@learn lisi]# touch -m -t 201611110930.12 1.txt
[root@learn lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:14:08.478001013 +0800
Modify: 2016-11-11 09:30:12.000000000 +0800
Change: 2017-01-17 17:21:07.863002188 +0800
如果文件不存在不创建
[root@learn lisi]# touch -c hjhj
[root@learn lisi]# ls
1.txt 2.txt 51cto 91 c homework
可以查看文件类型
文件类型有ASCII , LSB(二进制)executable(可执行)
[root@learn lisi]# file 1.txt
1.txt: ASCII text
[root@learn lisi]# which cat
/bin/cat
[root@learn lisi]# file /bin/cat #二进制可执行文件
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
查找文件
按名称和文件类型查找
-name 按名称
-type 按文件类型
-o 或者
! 非(取反)
文件时间查找
-amin n 查找系统中最后n分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后n分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后n分钟被改变文件数据的文件
-mmtime n 查找系统中最后n*24小时被改变文件数据的文件
+n表示此值之前; n表示此值; -n表示此值以内
例: +7表示7天后;7表示第7天;-7表示7天内
默认查找当前路径
[root@learn ~]# find -name "*.txt"
./old.txt
默认查找列出当前路径下所有文件包含子目录内的文件
[root@learn ~]# find
.
./.tcshrc
./install.log
./anaconda-ks.cfg
./.cshrc
./old.txt
./.bash_logout
./.ssh
./.ssh/authorized_keys
./c
./c/num.c
./c/a.c
./c/sum
./c/num
./.viminfo
./install.log.syslog
./.bash_profile
./.bashrc
./.bash_history
查找指定路径的文件
[root@learn ~]# find /home -name "*.txt"
/home/lisi/2.txt
/home/lisi/91/1.txt
/home/lisi/1.txt
/home/vmware-tools-distrib/doc/open_source_licenses.txt
查找满足两个条件的文件 都满足
[root@learn ~]# find /home -name "*.txt" -name "*.h"
查找满足两个条件的文件 或者
[root@learn ~]# find /home -name "*.txt" -o -name "*.h"
/home/lisi/2.txt
/home/lisi/91/1.txt
/home/lisi/1.txt
/home/vmware-tools-distrib/lib/include/vmci/vmci_sockets.h
/home/vmware-tools-distrib/doc/open_source_licenses.txt
除了某个条件的文件
[root@learn ~]# find /home ! -name "*.txt"
查找/home目录中最近一天更改过的文件
[root@learn ~]# find /home -mtime -1
/home
/home/123
查找/home目录中60分钟内(小于)修改过的文件
[root@learn ~]# find /home -mmin -60
/home
/home/123
查找/home目录中60分钟以前(大于)更改过的文件
[root@learn ~]# find /home -mmin +60
查找所属主(lisi)的文件
[root@learn ~]# find /home -user lisi
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
查找所属组(lisi)的文件
[root@learn ~]# find /home -group lisi
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
使用主id和组id查找文件
[root@learn ~]# id lisi
uid=501(lisi) gid=501(lisi) groups=501(lisi)
[root@learn ~]# find /home -uid 501
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
[root@learn ~]# find /home -gid 501
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
按大小查找
查找空文件
[root@learn ~]# find . -empty
./1
查找大于1M的文件
[root@learn ~]# find /home -size +1M |xargs ls -lh
-rwxr-xr-x 1 root root 1.2M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libCommAmqpIntegration.so
-rwxr-xr-x 1 root root 2.8M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libFramework.so
-r-xr-xr-x 1 root root 1.6M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libglib-2.0.so.0.3400.3
查找小于1M的文件
[root@learn ~]# find /home -size -1M |xargs ls -lh
-rw-r--r-- 1 root root 0 Jan 19 21:45 /home/123
-rw-r--r-- 1 root root 0 Jan 16 14:13 /home/lisi/2.txt
-rw-r--r-- 1 root root 0 Jan 16 14:04 /home/lisi/91/1.txt
-rwxrwxrwx 1 root root 0 Jan 17 09:19 /home/lisi/91/456
-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/c
-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/homework
-rw-r--r-- 1 root root 0 Feb 26 2016 /home/vmware-tools-distrib/etc/not_configured
显示文本文件内容单个或多个
-n 显示行号
-E 显示换行符
查看并显示当文件
[root@learn ~]# cat old.txt
111
222
333
444
555i name is
i what
what is
查看并显示多个文件
[root@learn ~]# cat old.txt oldboy.txt
111
222
333
444
555i name is
i what
what is
11111
显示文件内容行号
[root@learn ~]# cat -n old.txt
1 111
2 222
3 333
4 444
5 555i name is
6 i what
7 what is
显示文件换行符
[root@learn ~]# cat -E old.txt
111$
222$
333$
444$
555i name is$
i what $
what is$
按行号逆向显示文本内容
[root@learn ~]# tac old.txt
what is
i what
555i name is
444
333
222
111
分屏显示文本文件内容,从前往后翻;
b键往前翻一行,翻到文件的尾部显示结束则不能往前翻。
回车 往下翻一行;空格 往下翻一屏
分屏显示
向下翻一行 向下键或回车
向上翻一行 向上键
向下翻一屏 pgdn或空格键
向上翻一屏 pgup或b
查找功能 /或?
退出less命令 q
显示文本文件的前几行;默认是10行,可加参数定义需要的行数 -n 2
[root@learn ~]# head old.txt
111
222
333
444
555i name is
i what
what is
[root@learn ~]# head -2 old.txt
111
222
[root@learn ~]# head -n 2 old.txt
111
222
显示文本文件的后几行;默认是10行,可加参数定义需要的行数 -n 2
-f(follow) 一直(实时)跟踪 不再退出
默认显示
[root@learn ~]# tail /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
显示2行
[root@learn ~]# tail -2 /etc/passwd
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
[root@learn ~]# tail -n 2 /etc/passwd
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
实时显示(一直跟踪)
[root@learn ~]# tail -f /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
按照我们想要的格式显示文件内容,可以对文件内容进行过滤、改变样式输出。
将文件使用指定的字符切开,显示我们想要的
使用冒号分割passwd文件,显示第1,3至5列
能把文件中指定的字符进行替换,该命令后面只能使用标准输入重定向
使用A替换passwd文件中的a字符
[root@learn ~]# tr ‘a‘ ‘A‘ <passwd
root:x:0:0:root:/root:/bin/bAsh
删除passwd文件中的:字符
[root@learn ~]# tr -d ‘:‘ <passwd
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
删除passwd文件中的空格,原理同上。
显示passwd文件中后2行,并以:号分割取1,5列,替换:号为空格
[root@learn ~]# tail -2 passwd |cut -d: -f 1,3 |tr ":" " "
li 500
lisi 501
字数统计,可以统计文件的行数、单词数量、字符数量
-l统计行数
-w统计单词数
-c统计字符数量(包含空格)
统计行数、单词数、字符数
[root@learn ~]# wc passwd
26 35 1126 passwd
统计行数
[root@learn ~]# wc -l passwd
26 passwd
统计单词数
[root@learn ~]# wc -w passwd
35 passwd
统计字符数
[root@learn ~]# wc -c passwd
1126 passwd
利用分割命令显示指定分割数
[root@learn ~]# wc -c passwd |cut -d ‘ ‘ -f 1
1126
[root@learn ~]# wc -c passwd |cut -d ‘ ‘ -f 2
passwd
[root@learn ~]# wc -c passwd |cut -d ‘ ‘ -f 3
对文件中的行进行排序(默认按字符(a-z)排序(生序))
-r 反转(z-a)排序(降序)
-t 指定分割符
-k 指定列
-u 去重
-n 按数值排序
-f 忽略大小写
把users文件的行进行排序输出(升序)
[root@learn ~]# sort users
jia aa 33
li bb 12
wang bb 23
zhang aa 12
把users文件的行进行排序输出(降序)
[root@learn ~]# sort -r users
zhang aa 12
wang bb 23
li bb 12
jia aa 33
使用空格把users文件分割 使用第3列排序
[root@learn ~]# sort -t ‘ ‘ -k 3 users
li bb 12
zhang aa 12
wang bb 23
jia aa 33
使用空格把users文件分割 使用第3列排序 去掉重复行
[root@learn ~]# sort -t ‘ ‘ -k 3 -u users
zhang aa 12
wang bb 23
jia aa 33
按数值排序
[root@learn ~]# sort -t‘ ‘ -k3 -n users
bin aa 9
li bb 12
zhang aa 12
wang bb 23
jia aa 33
唯一的意思;针对文本中的连续的重复行进行操作
-d 只显示重复的行
-D 显示全部重复的行
-c 显示重复次数
不显示重复行
[root@learn ~]# uniq uniqtest
zhang aa 12
wang bb 11
li bb 11
zhang aa 12
li bb 11
只显示重复的行
[root@learn ~]# uniq -d uniqtest
zhang aa 12
li bb 11
显示全部重复的行
[root@learn ~]# uniq -D uniqtest
zhang aa 12
zhang aa 12
zhang aa 12
li bb 11
li bb 11
显示重复次数
[root@learn ~]# uniq -c uniqtest
3 zhang aa 12
1 wang bb 11
1 li bb 11
1 zhang aa 12
2 li bb 11
1
grep(global re printing)全局搜索正则表达式并将搜索到的行打印出来
re(regular expression)正则表达式,由一些元字符和其他组成的表达式;元字符是由特定意义的字符并不代表这个字符本身。
文本过滤工具能够根据指定的正则表达式逐行扫描文件的内容,只要行中有满足正则表达式的内容则整行被显示。
re
basic re 基本正则表达式
extended re 扩展正则表达式
grep[option]...‘re‘ file...
-v 显示不匹配的行
-i 不区分大小写
-o 只显示匹配的字符串
-A# 显示找到的行以及后面的行 #表示数字
-B# 显示找到的行以及前面的行 #表示数字
-C# 显示找到的行以及前后的行 #表示数字
-E 表示后面的表达式是扩展的正则表达式
--color=auto 将匹配的字符串改变颜色显示
显示匹配的行
[root@learn ~]# grep ‘cpu‘ /proc/cpuinfo
cpu family : 6
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
显示匹配行进行取反
[root@learn ~]# grep -v ‘cpu‘ /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
model : 60
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
stepping : 3
microcode : 28
cache size : 3072 KB
physical id : 0
siblings : 1
core id : 0
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep
bogomips : 5200.13
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
显示匹配行并将匹配的字符加色
[root@learn ~]# grep ‘cpu‘ --color=auto /proc/cpuinfo
cpu family : 6
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
[root@learn ~]# grep ‘cpu‘ --color=auto -o /proc/cpuinfo
cpu
cpu
cpu
cpu
显示匹配行不区分大小写并显示颜色
[root@learn ~]# grep ‘cpu‘ --color=auto -i /proc/cpuinfo
cpu family : 6
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
显示匹配行以及后一行
[root@learn ~]# grep ‘cpu‘ --color=auto -A1 /proc/cpuinfo
cpu family : 6
model : 60
--
cpu MHz : 2600.069
cache size : 3072 KB
--
cpu cores : 1
apicid : 0
--
cpuid level : 13
wp : yes
显示匹配行以及后两行
[root@learn ~]# grep ‘cpu‘ --color=auto -A2 /proc/cpuinfo
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
--
cpu MHz : 2600.069
cache size : 3072 KB
physical id : 0
--
cpu cores : 1
apicid : 0
initial apicid : 0
--
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep
显示匹配行以及前一行
[root@learn ~]# grep ‘cpu‘ --color=auto -B1 /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
--
microcode : 28
cpu MHz : 2600.069
--
core id : 0
cpu cores : 1
--
fpu_exception : yes
cpuid level : 13
显示匹配行以及前后一行
[root@learn ~]# grep ‘cpu‘ --color=auto -C1 /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
model : 60
--
microcode : 28
cpu MHz : 2600.069
cache size : 3072 KB
--
core id : 0
cpu cores : 1
apicid : 0
--
fpu_exception : yes
cpuid level : 13
wp : yes
将命令结果通过管道匹配相关行
[root@learn ~]# ifconfig |grep ‘addr‘
eth0 Link encap:Ethernet HWaddr 00:0C:29:41:FA:11
inet addr:192.168.99.189 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe41:fa11/64 Scope:Link
eth1 Link encap:Ethernet HWaddr 00:0C:29:41:FA:1B
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe41:fa1b/64 Scope:Link
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
文件名通配符
*代表任意长度任意字符
?代表任意单个字符
[]指定范围内的任意单个字符
[^]指定范围外的任意当字符
.匹配任意单个字符
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
.*任意长度任意字符
匹配任意单个字符
[root@learn ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a.c‘ --color=auto
a2c a3c abc adb bad
[root@learn ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a.c]‘ --color=auto
a2c a3c abc adb bad
匹配指定范围内的任意单个字符
[root@learn ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a]‘ --color=auto
a2c a3c abc adb bad
[root@learn ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[a-z]c‘ --color=auto
a2c a3c abc adb bad
匹配指定范围外的任意单个字符
[root@learn ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[^a-z]c‘ --color=auto
a2c a3c abc adb bad
匹配任意长度任意字符
[root@learn ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a.*c‘ --color=auto
ac asc assc asssc asdc
* 匹配前一个字符0次1次或多次 写法:ab*c ac abc abbc abbdc
\? 匹配前一个字符0次或1次 写法:ab\?c ac abc abbc
\{m,n\} 匹配前一个字符最少m次,最多n次
\{0,n\} 最多n次
\{m\} 最少m次
as\{0,2\}c ac asc assc asssc asdc
匹配前一个字符0次或多次
[root@learn ~]# echo ‘ac abc abbc abbdc abbbc‘ |grep ‘ab*c‘ --color=auto
ac abc abbc abbdc abbbc
匹配前一个字符0次或1次
[root@learn ~]# echo ‘ac abc abbc‘ |grep ‘ab\?c‘ --color=auto
ac abc abbc
匹配最少0次最多2次
[root@learn ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘as\{0,2\}c‘ --color=auto
ac asc assc asssc asdc
[root@learn ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a[a-z]\{0,2\}c‘ --color=auto
ac asc assc asssc asdc
\(\)实现分组匹配
连续引用
[root@learn ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)*51‘ --color=auto
91abcabcabcabc51 fdsfsf
[root@learn ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{4\}51‘ --color=auto
91abcabcabcabc51 fdsfsf
[root@learn ~]# echo ‘91abcabcabcabc51 91abcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{0,4\}51‘ --color=auto
91abcabcabcabc51 91abcabcabc51 fdsfsf
不连续引用
[root@learn ~]# cat 123
zhangsan,math=good,english=bad
han,math=good,english=good
yixiu,math=bad,english=good
xiaomo,math=bad,english=bad,music=good,geography=good
yuan,math=good,english=bad,music=good,geography=good
[root@learn ~]# grep ‘.*,math=\(.*\),english=\1‘ 123 --color=auto
han,math=good,english=good
xiaomo,math=bad,english=bad,music=good,geography=good
向后引用;
前后取值一致,前面括号内正则的值通过数字(用数字表示第几个括号)取值到后面。
[root@learn ~]# grep ‘.*,math=\(.*\),english=\1,music=\(good\),geography=\2‘ 123 --color=auto
xiaomo,math=bad,english=bad,music=good,geography=good
\< 锚定词首
\> 锚定词尾
\< \> 锚定单词
[root@learn ~]# grep ‘\<r..t‘ --color=auto t1
root chroot rooter
this is root
[root@learn ~]# grep ‘r..t\>‘ --color=auto t1
root chroot rooter
this is root
[root@learn ~]# grep ‘\<r..t\>‘ --color=auto t1
root chroot rooter
this is root
^ 锚定行首
$ 锚定行尾
匹配行首为空一个或多个后面是root开始的行
[root@learn ~]# grep ‘^[[:space:]]*root‘ --color=auto t1
root chroot rooter
匹配r任意字符t结尾的行
[root@learn ~]# grep ‘r..t$‘ --color=auto t1
root chroot rooter root
匹配标点字符(punct)结尾的行
[root@learn ~]# grep ‘root[[:punct:]]\?$‘ --color=auto t1
root chroot rooter root
this is root.
[root@learn ~]# grep ‘root[[:punct:]]\{1\}$‘ --color=auto t1
this is root.
[root@learn ~]# grep ‘root[[:punct:]]‘ --color=auto t1
this is root.
alnum 字母和数字
alpha 字母
blank 仅表示空格或制表符
cntrl 控制字符
digit 十进制数
graph 打印字符,不包含空格
lower 小写字母
print 打印字符,包括空格
punct 打印字符,不包含字母和数字。
space 空白
upper 大写字母
xdigit 十六进制数
1.找出ifconfig命令结果中1-255之间的数字。
[root@learn ~]# ifconfig eth0|grep ‘[1-9]\{1,3\}‘ --color=auto -o |xargs
29 41 11 192 168 99 189 192 168 99 255 255 255 255 6 8 2 29 41 11 64 15 1 211 31 1 662 1 221 679 21 25 751 6 2 3
2.找出ifconfig命令结果中的ip地址。
[root@learn ~]# ifconfig eth0|grep ‘\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}‘ --color=auto -o
192.168.99.189
192.168.99.255
255.255.255.0
3.分析文件rc 找出第4位字符数值和最后一位字符数值一样的行
[root@learn ~]# cat rc
L1:1:wait:/etc/rc.d/rc 1
L3:3:wait:/etc/rc.d/rc 3
L1:1:wait:/etc/rc.d/rc 3
L3:1:wait:/etc/rc.d/rc 3
[root@learn ~]# grep ‘L.:\(.\).*\1‘ rc
L1:1:wait:/etc/rc.d/rc 1
L3:3:wait:/etc/rc.d/rc 3
4.找出当前系统上名字为li的用户账户相关信息/etc/passwd,注意不要找到lisi或li1这样的用户
[root@learn ~]# grep ‘^li:‘ /etc/passwd
li:x:500:500::/home/li:/bin/bash
.匹配任意单个字符
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
* 匹配前一个字符0次1次或多次
\? 匹配前一个字符0次或1次
新增
+至少匹配一次
[root@learn ~]# echo "rooteeeeer" |egrep ‘ro+te*‘ --color
rooteeeeer
{m,n}括号前不需要转义字符\
[root@learn ~]# echo ‘rooteeeeer‘ |egrep ‘e{2,6}‘ --color
rooteeeeer
[root@learn ~]# echo ‘rooteeeeer‘ |egrep ‘ro+te{2,6}‘ --color
rooteeeeer
^ 锚定行首
$ 锚定行尾
新增
\< or \b 锚定词首
\> or \b 锚定词尾
[root@learn ~]# echo ‘chroot root rooter123‘ |egrep ‘\bro+ter[[:digit:]]*\b‘ --color
chroot root rooter123
| 如abc|wer
[root@learn ~]# echo ‘abcde abwde abc wde‘ |egrep ‘abc|wde‘ --color
abcde abwde abc wde
[root@learn ~]# echo ‘abcde abwde abc wde‘ |egrep ‘ab(c|w)de‘ --color
abcde abwde abc wde
( )分组不用转义字符\
[root@learn ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1d=\2‘ --color
a=10b=20c=10d=20
[root@learn ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1‘ --color
a=10b=20c=10d=20
[root@learn ~]# echo ‘a=10b=20c=10d=20‘ |grep -E ‘a=(..)b=(..)c=\1‘ --color
a=10b=20c=10d=20
不解析正则表达式直接搜索文本
[root@learn ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘wde‘ --color
abcfr123a{1,2}wde
[root@learn ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘abc‘ --color
abcfr123a{1,2}wde
1. 转义字符\
[root@learn ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\(han\)*51cto‘ --color
[root@learn ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\\(han\\)\*51cto‘ --color
91xueit\(han\)*51cto
将正则表达式中元字符转换成字符本身
2. 如果正则表达式中有命令替换,正则表达式只能使用" " 弱引用
如果正则表示式中没命令替换,可以使用 ‘ ‘ 强引用 " " 弱引用
[root@learn ~]# echo ‘abc/root123‘ |grep ‘abc$(pwd)123‘ --color
[root@learn ~]# echo ‘abc/root123‘ |grep "abc$(pwd)123" --color
abc/root123
提示所有终端要进行关机操作
shutdown -c 取消关机操作
shutdown -r 重启
shutdown -r now现在重启
shutdown +5 过5分钟关机
shutdown -h 02:23 & 后台运行在2点23分关机
shutdown -r 02:23 & 后台运行在2点23分重启
日常使用shutdown命令关机,此命名有提示其他终端。其他两个命令无提示。
日历
[root@learn ~]# cal
February 2017
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
显示系统时间
-s 设置系统时间
[root@learn ~]# date -s ‘2017/02/04 21:27‘
Sat Feb 4 21:27:00 CST 2017
查看主板时间
[root@learn ~]# hwclock
Sat 04 Feb 2017 09:26:19 PM CST -0.798354 seconds
-w将系统时间写入主板时间
[root@learn ~]# hwclock -w
[root@learn ~]# hwclock
Sat 04 Feb 2017 09:27:19 PM CST -0.768415 seconds
标签:搜索 shared source asd 逆向 查询 打印 x86 dig
原文地址:http://www.cnblogs.com/pathping/p/7252732.html