常用命令:
编译器使用: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\ >
``` 以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次的a
ls >/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 http://www.baidu.com.cn/index.jsp ;压力测试 模拟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=
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@localhost ~]# 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和bashrc
rhel7 服务管理命令变化:
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