常用命令:
编译器使用:ed sed vi vim emacs vim 命令模式 编辑模式 i 光标所在点插入模式 I 行首插入模式 a 光标所在点退一格插入模式 A 行尾插入模式 o 下一行插入模式 O 上一行插入模式 0 跳到行首 $ 跳到行尾 G 文件末尾行首 gg 文件头行首 3G 文件第三行 w 跳1个单词 u 返回|撤销 ctrl+r redo d 删除一行 x 删除一个字符 yy 复制一行 p 粘贴 r 替换命令,替换光标所在位置的字符 6i 插入6行 :set nu :set nonu cut -d: -f1 /etc/passwd ; 以:截取/etc/passwd文件 并显示第一列 cut -d: -f2-4 -c1-5 /etc/passwd ; 显示以:为分割,第2行到第4行 第1个字符到第5个字符 cut -d: -f7 /etc/passwd |sort |uniq|wc -l; sort -t: +2 -n /etc/passwd ; 以:截取文件,并以第二个字符排序 sort -n -r -t:+2; du |sort -n -r |head -n 3|cut -f2; tail -n 5 /etc/passwd; grep -R grep -l -R grep -v -l -R -c netstat -tunlp|grep 8080 //查看端口 grep -v bash /etc/passwd;显示不包含bash的行 grep -A5 -B5 bash /etc/passwd;显示包含bash的上5行和下5行 wc /etc/passwd; wc -l |-w|-c /etc/paawd ;显示文件行|字符|字节数正则表达式:
grep 'b.*' /etc/passwd ;搜索文件以b开头的字符
任意一个字符
* 任意多个任意字符 * a* 任意多个a
* 反义符
^k 以k开头 k$ 以k结尾\``` 以s开头中间两个单词以k结尾^a\{18\} 以a开头 重复18次 ```grep '.\{40,\}' /usr/share/dict/wprds 查询文件中超过40以上字符的单词
grep 'bash$' /etc/passwd
grep -v ‘^#’ /etc/passwd |grep -v ‘^$’ 查看文件,去掉#开头和空行
grep ‘^[abc]’ /etc/passwd;查找以a、b、c开头 grep ‘^[a-c]’ /etc/passwd;查找a到c开头 grep ‘^[^a-c]’ /etc/passwd;查找不是a到c开头 a? 表示一个或零个单独的a a+ 表示a、aa、乃至多个a a{n}重复了n次的als >/tmp/1.list 标准正确输出重定向
ls /ops 2> /tmp/1.list 标准错误输出重定向 cat > /tmp/2.list find / -name cc >/tmp/3.list 2>&1 ;标准正确输出和标准错误输出到/tmp/3.lits,类似于 find / -name cc &>/tmp/3.list cat << E ;等待输入E结束,或者ctrl+d 结束键盘输入 tr “a-z” “A-Z” ;标准输入小写变大写 tr “a-z” “A-Z” < /etc/passwd ;标准输入重定向,把passwd文件由大写变成小写 cat > 1.list << EEE ls -l /dev | grep ‘^d’|wc -l ;显示/dev 目录下有多少个文件夹 ls -l /dev | grep ‘^d’|tee 1.log |wc -l ls -l /dev | grep ‘^d’|tee /dev/pts/0|wc -l tr ’ “a-z” “m-n” ’ ’ “u-z” “s-y”’ < /etc/passwd ;把文件a-z替换成u-z,m-n替换成u-z tr ’ “a-z” “m-n” ’ ’ “u-z” “s-y”’ < /etc/passwd |mail -s “this si my text” bo-chen1@hnair.com;把替换过的文件已邮件的方式发送给bo-chen1用户,主题为”this is my text”。 ab -n 1000 -c 1000 ;压力测试 模拟1000次客户端访问 mtr www.baidu.com traceroute www.baidu.com netstat -antup ps aux ESTABLISHED 3次握手成功之后,开始工作 LISTEN 建立连接中 TIMEOUT 访问超时 DDOS攻击(某个IP不断发起访问请求,可以查看netstat 状态,多为listen状态)。 CC攻击(某个IP不断访问摸个网页,可以查看发起访问的IP,多为同个IP)。 syn-flood 洪水攻击,冒充用户身份发起访问,查看netstat多为timeout。 arp攻击,冒充网关 iptraf tcpdump wireshark 抓包工具 arping 10.37.2.1 ;通过IP地址定位网卡。 如果网络慢,通过arping 网关,发现有多个IP回应,肯定有冒充的忘关,我们可以强制绑定IPmac,如下:arp -s mac ip;绑定ip mac地址 iptables -l iptables -F;清除防火墙规则 kill -l killall httpd ;把httpd所有的子进程杀掉 skill -9 oracle ;把oracle用户的所有进程杀掉 skill -9 pts/2 ;把pts/2终端的所有进程杀掉 pkill -u oracle 进程状态: R running S seelping T stop D deepseelping Z 僵尸进程通过&可以把进程丢到后台运行,通过jobs可以查看后台的任务,通过kill %n 杀掉后台第n个任务,通过fg 可以把后台任务拿到前台运行,也可以通过bg把前台正在运行任务丢到后台运行。可以通过nohup 参数使一个进程不依赖当前父进程,nohup updatedb & ,即使退出当前shell当前的进程也会继续运行不依赖父进程。
进程优先级:
NI nice值-20—+19(由高到底) 可以在top 命令按r修改进程优先级的NI值 可以在top 命令按 k杀掉进程 可以在top 命令按 n修改显示列数 可以在top 命令按 ?显示帮助 可以在top 命令按 <>反页ps aux
/proc proc虚拟文件,反应内存实时信息 mpstat -P 1 1 10 //查看cpu1负载 sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 ;修改内核文件,只有/proc/sys/net/ 下可修改,且不支持vi编辑。 内核参数文件修改:vi /etc/sysctl.conf 使修改的内核参数立即生效:sysctl -p 查看所有的内核参数:sysctl -a 使系统加载内核文件:sysctl -f /tmp/a.sysctl -p /var/log/messages 系统运行日志 /var/log/secure 系统安全日志 /var/log/wtmp 系统安全日志(二进制) /var/log/xferlog 系统ftp日志 /var/log/boot 系统启动日志 /var/log/dmesg 内核日志bash使用详解:
shell分类: ash bsh ——>经gun组织改写成bash,大部分linux使用 csh(使用c语言编写)——>tcsh——>目前被sun souirs平台使用 ksh——>目前被IBM AIX平台使用 变量: 可以通过 set查看所有变量 echo PS1;当前终端变量,可以通过manbash查看语法export全局变量设置,例如:exportPATH=PS1;当前终端变量,可以通过manbash查看语法export全局变量设置,例如:exportPATH=PATH:/usr/bin 每执行一个shell脚本系统默认会打开一个bash进程为之服务 bash快捷键: Tab 自动补齐 ctrl+c 结束当前任务 ctrl+z 当前任务暂停,放到后台 ctrl+s 停止屏幕输出 ctrl+q 恢复屏幕输出 ctrl+l 清屏 ctrl+d 标准输入结束.bash_logout 用户退出资源文件
ctrl +r 搜索history命令历史 unset 删除一个变量 alias 、 unalias 运算符: !6 调用history第6条命令 !!上一个命令 !$上一个命令的最后一个参数 echo * 任意多个文件名 echo ??? 表示3个字母的文件名 echo [abc]* 表示文件名开头可能是a、b、c的任何文件名 echo [^abc]* echo {a,b,c} 表示枚举出a,b,c的文件名 cd ~oracle 跳转到oracle用户主目录 %n 第n个任务 aaa() 申明函数aaa [root ~]# aaa(){ echo 1 mkdir -p /tmp/a echo end } [root@localhost ~]# aaa 1 end \ 脱义符 $ 表示$是一个普通字符
[ -f /etc/passwdd ] && echo ok ;表示第一个表达式为真,第二个表达式才会执行
[ -f /etc/passwdd ] || echo ok ; 表示第一个表达式为假,第二个表达式才会执行 [ -d /tmp ] && echo ok ;/tmp目录存在则输出ok [ -x /tmp/install.sh ] && echo ok ;/tm/install.sh可执行则输出ok; -w -r 可读用户配置文件执行优先级:/etc/profile
~/.bash_profile ~/.bashrc ~/etc/bashrc profile在登录的时候会自动执行,bashrc在bash启动的时候会执行 su oracle;执行了bashrc su - oracle;执行了profile和bashrcrhel7 服务管理命令变化:
6: service httpd start|stop|restart|reload|status 7: systemctl start|stop|restart|reload|status httpd.service 允许、禁止服务自启动: 6: chkconfig httpd on|off 7: system enable|disable httpd.service 列出服务: 6: chkconfig –list 7: systemctl list-unit-files –type=service 或 ls /etc/systemd/system/*.wants/ 添加服务: 6: chkconfig httpd –add 7: systemctl daemon-reload