crul
不带有任何参数时,curl 就是发出 GET 请求
-A 参数指定客户端的用户代理标头
-H 参数直接指定标头
-b 参数用来向服务器发送 Cookie
-X 参数指定 HTTP 请求的方法
-d 参数用于发送 POST 请求的数据体 $ curl -d’login=emma’-X POST url
–data-urlencode 参数等同于-d 会自动将发送的数据进行URL编码
-G 参数用来构造 URL 的查询字符串 $ curl -G -d ‘count=20’ url
-o 参数将服务器的回应保存成文件,等同于wget命令
top:显示所有正在运行而且处于活动状态的实时进程, 它显示了CPU使用率,内存使用率,交换内存使用大小,调整缓存使用大小,缓冲区使用大小,进程PID, 使用的命令等信息。
vmstat:显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。
lsof:列出打开的文件;它常用于以列表形式显示所有打开的文件和进程,包括磁盘文件,网络套接字,管道,设备和进程。
netstat:用于监控进出网络的包和网络接口统计的命令行工具。
iostat :查看存储设备输入和输出状态统计的工具,用来追踪存储设备的性能 问题;包括设备,磁盘,NFS远程磁盘。
查看文件内容:cat、more、less
cat 一次性显示整个文件的内容,可以将多个文件连接起来显示,常与重定向符号配合使用
more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能
more比cat强大,提供分页显示的功能
less比more更强大,提供翻页,跳转,查找等命令 Ctrl+F向前翻页 Ctrl+B向后翻页
more和less都支持:用空格显示下一页,按键b显示上一页
搜索关键字less +/intel /var/log/messages
n键向前继续显示搜索结果
Shift+n键向后复看搜索结果
查看文件内容:head、tail、sed
看文件的前5行: head -5 /etc/passwd 等价 head -n +5
看文件的后10行: tail -10 /etc/passwd
第5行开始输出 tail -n +5 /etc/passwd 要使用加号
看文件中间一段: sed -n ‘5,10p’ /etc/passwd
ping、telnet、tracert
ping 端对端连通 网络层 ping是被防火墙禁用的
telnet 测试目标机器的TCP端口是否开放 应用层
tracert:可以用于确定IP数据包访问目标时所选择的路径
history命令:查看和执行历史命令
列出曾经输入的命令 history
重复上一次的执行 !!; !-1 ; Ctrl+P
定位 !1
清除所有的命令 history -c history -w
更换历史命令的存储位置 export HISTFILE=~/history.log
控制历史命令记录的总个数 export HISTSIZE=1000 export HISTFILESIZE=1000
清除整个命令历史中的重复条目 export HISTCONTROL=erasedups
忽略记录命令历史中连续重复的命令 export HISTCONTROL=ignoredups
find gerp 查找, sed 编辑, awk 根据内容分析并处理.
find :搜索匹配条件的文件
命令格式:
find pathname -options [-print -exec -ok …]
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;
-ok: 和-exec的作用相同,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
-options
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,b - 块设备文件; d - 目录;c - 字符设备文件;p - 管道文件;l - 符号链接文件;f - 普通文件;
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中
示例:
find /etc -name “passwd*” -exec grep “sam” { } ;
find . -name “*.conf” -mtime +5 -ok rm { } ;
find . -perm 755 -print
find /apps -path “/apps/bin” -prune -o -print
find /usr/sam ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -print
find ~ -user root -print
find /home -nouser -print
find /etc -type l -print
grep :查找匹配条件的行
命令格式:
grep [-options] “关键字/正则表达式” 文件名/ * / * -R / *.log / 文件1 文件2 …
示例:
grep “关键字” 文件名
grep “关键字” * //表示在当前目录下的所有文件中查找
grep “关键字” * -R //如果有子目录则进入到子目录中查找
grep “关键字” *.log //在后缀为.log文件中查找
grep “关键字” 文件名1 文件名2 … //在指定的多个文件中查找关键字
grep -n “关键字” 文件名 //显示出关键字在文件中的行号
grep -c “关键字” 文件名 //只打印匹配的行数,不显示匹配的内容 等价于 grep “关键字” 文件名 | wc -l
grep -v “关键字” 文件名//选择那些不匹配搜索条件的行
grep -i “关键字” 文件名 //忽略关键字的大小写
grep -l “关键字” * //只显示查找到的文件,不显示关键字
grep -A num //显示匹配后和它后面的n行
grep -B num //显示匹配行和它前面的n行
grep -C num //匹配行和它前后各n行
sed
命令格式:
sed [-options] {script(sed自带语法脚本)} [input-file]
sed [-options] ‘command’ [input-file]
sed [-options] -f script file
模式:
-n : 只有经过sed处理的那一行被列出来
-e : 多重编辑
-i : 直接编辑
-f :从指定文件中读取编辑脚本
动作:
p :显示,将某个选择的数据打印显示。通常 p 会与参数 sed -n 一起执行
a :添加, a 的后面可以接字符串,该字符串会在当前指定行的下一行出现
d :删除,显示模式空间删除指定行后的内容,不会对原文件数据删除
c :更改, c 的后面可以接字符串,该字符串可以取代 n1,n2 之间的行
i :插入, i 的后面可以接字符串,该字符串会在当前指定行的上一行出现
s :替换,通常 s 的动作,如 sed ‘s/old/new/g’ file
w :写入,指定行内容重定向写入到指定文件
示例:
sed ‘3p’ /etc/passwd 【】
sed -n ‘3p’ yum.log 【只打印第3行】
sed -n ‘3,9p’ yum.log 【只打印第3-9行】
sed -n ‘/root/p’ yum.log 【只打印匹配行的内容】
sed -n ‘2,6!p’ yum.log 【不只打印第2-6行】
sed -n -e ‘/root/p’ -e ‘/root/=’ yum.log 【打印匹配行的内容和符号】
sed -e ‘1i happy’ -e ‘ a n e w y e a r ′ y u m . l o g 【 界 面 显 示 】 s e d − i − e ′ 1 i h a p p y ′ − e ′ a new year' yum.log 【界面显示】 sed -i -e '1i happy' -e ' anewyear′yum.log【界面显示】sed−i−e′1ihappy′−e′a new year’ yum.log 【真实写入文件】
sed ‘3,9d’ yum.log 【删除第3到第9行】
sed ‘5,10 s/root/FTL/g’ yum.log 【5到10行里匹配root,把行内所有的root替换为FTL】
sed ‘/1/s/x/X/g’ test
head -n 5 /etc/passwd|sed ‘s/:.*$//’
sed -n -f callsed mysed.txt 【cat callsed /2004/,/2006/p】
awk
命令格式:
awk ‘{pattern + action}’ {filenames}
内置变量:
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,以此类推。
$NF是number finally,表示最后一列的信息,跟变量NF是有区别的,变量NF统计的是每行列的总数
示例:
awk -F ‘:’ ‘{print “filename:” FILENAME “,linenumber:” NR “,columns:” NF “,linecontent:”$0}’ /etc/passwd 【统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容】
awk -F: ‘NR==2{print "filename: "FILENAME, $0}’ /etc/passwd 【打印/etc/passwd/的第二行信息】
awk -F “:” ‘{print $NF-1}’ /etc/passwd
awk -F “:” ‘{if(NR<31 && NR >12) print $1}’ /etc/passwd
echo “I am Poe,my qq is 33794712” > test.txt
awk -F ‘[ ,]+’ ‘{print $3" "$7}’ test.txt
awk ‘{count++;print $0;} END{print "user count is ",count}’ /etc/passwd
awk ‘BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}’ /etc/passwd
ll |awk ‘BEGIN{size=0;} {size=size+$5;} END{print "[end]size is ",size/1024/1024,“M”}’
dD ↩︎