一.准备工作(针对Centos7)
1.常用软件安装:
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap
tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc
2.将网卡enss改为eth:
[root@web01 ~]# cd /etc/sysconfig/network-scripts/
[root@web01 network-scripts]# mv ifcfg-ens33 ifcfg-eth0 #mv移动文件或目录 eth0为外网地址
[root@web01 network-scripts]# vim ifcfg-eth0 修改NAME=eth0 DEVICE=eth0 保存并退出
[root@web01 network-scripts]# mv ifcfg-ens34 ifcfg-eth1 #mv移动文件或目录
[root@web01 network-scripts]# vim ifcfg-eth1 修改NAME=eth1 DEVICE=eth1 保存并退出 eth1为私网地址
[root@web01 ~]# vim /etc/sysconfig/grub
修改 GRUB_CMDLINE_LINUX='rhgb net.ifnames=0 biosdevname=0 quiet'
[root@web01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成配置
3.克隆
在做克隆之前需要删除etho和eth1的UUID:
vim ifcfg-eth0 鼠标光标移到uuid 命令模式下按dd 删除UUID
vim ifcfg-eth1 鼠标光标移到uuid 命令模式下按dd 删除UUID
先拍快照,拍完快照做克隆,选择创建链接克隆,进入克隆机修改eth0和eth1的ip地址
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0 修改IP地址IPADDR=10.0.0.7 #公网ip
vim ifcfg-eth1 修改IP地址IPADDR=172.16.1.7 #私网ip
systemctl restart network #网卡重启
hostnamectl set-hostname web01 #修改主机名立即生效
4.防火墙
- 关闭firewall防火墙
确定防火墙 iptables -L
临时关闭防火墙 iptables -F
永久关闭防火墙 systemctl disable firewalld
- 关闭selinux防火墙
查询防火墙 getenforce
临时关闭 setenforce 0
永久关闭防火墙 vim /etc/selinux/config 修改SELINUX=disabled
- 查询防火墙
[root@web01 ~]# getenforce
Enforcing
[root@web01 ~]# setenforce 0
[root@web01 ~]# getenforce
[root@web01 ~]# vim /etc/selinux/config
- 三种防火墙状态
enforcing - SELinux security policy is enforced.
permissive - SELinux prints warnings instead of enforcing.
disabled - No SELinux policy is loaded.
二.Linux命令
1.命令的基本构成
一般的套路
命令体 选项 参数(对象)
ls -l /var
参数:文件
文件类型:
d :目录
f :普通文件
l :链接
b :块设备,磁盘 光驱
c :字符设备 pty
p :管道
s :套接字
命令提示符:
[root@web01 ~]#
[petrus@web01 ~]$
2.常用快捷键(bash shell支持的快捷键)
命令 | 含义 |
---|---|
ctrl + a | 把光标移动到行首 |
ctrl+c | 取消或终止任务 |
ctrl + e | 把光标移动到行尾 |
ctrl + l | 清屏 |
ctrl + u | 把光标到行首的内容删除/剪切 |
ctrl + k | 把光标到行尾的内容删除/剪切 |
ctrl + y | 粘贴 |
ctrl + → | 向右移动一个单词 |
ctrl + ← | 向左移动一个单词 |
ctrl + s | 锁屏 |
ctrl + q | 解锁 |
ctrl + w | 按照一个一个字符串进行删除数据 |
esc+. | 调取上一个命令行中的参数信息 |
–help | 获取帮助 |
man | 命令的需求 |
info | 更加详细 |
reboot | 关机重启 |
poweroff | 关闭电源 |
3.linux命令分类
绿色的是二进制的可执行文件
1.针对不同文件的管理命令
1.1 目录
FHS 文件系统层次化标准
ls /
ls /bin
ls /boot启动文件
ls /dev/
ls /etc 配置文件
ls /home 用户的家目录
绝对路径:从"/"开始一个具体路径
相对路径:从当前目录开始的具体路径(pwd可以查看当前所在目录)
4.目录
- 创建目录:
mkdir /oldboy #根下面创建一个目录
mkdir oldboy #在当前所在目录创建目录
mkdir -p /a/b/c #一次性创建3层目录
- 查询目录
ls -ld /oldboy #只能看一层
tree /a #直接看所有目录
tree -L 2 / #只看2层
- 删除目录(危险)
rm -rf /oldboy
通过文件句柄,有可能可以找回丢失数据(前提:不能重启,不能有大量数据写入)
- 修改,剪切
mv /root/test/ /tmp #修改目录(剪切,复制)
mv /root/test/ /tmp/test.bak #剪切并重命名
mv test test_new #只是重命名
拷贝:
cp:复制文件或目录 默认无法复制目录
-r: 递归复制 复制目录及目录里面的内容
-p: 复制的时候保持属性不变
-a 等价于 -pdr 复制所有
mkdir a{1..10} #创建a1-10
- 切换目录:
cd /
cd /test
cd test
cd ..
返回上一次的目录
cd -
cd
小技巧:
创建a1-10
[root@web01 tmp]# mkdir a{1..10}
[root@web01 tmp]# mkdir dir{a..f}
所有
[root@web01 tmp]# ls -ld dir*
[root@web01 tmp]# rm -rf dir*
- 过滤
grep 在文件中找到你想要的的内容
grep "oldboy" test.txt
- 排除
grep -v "oldboy" test.txt
- head
head -2 test.txt #取出文件内容的前两行
5.普通文件
- 种类
ASCII TEXT:纯文本文件(操作最多的)
LSB Exe:二进制的可执行文件(命令,程序)
压缩文件:zip tar gz bz2 cpio iso
二进制数据文件等. - 文件创建
touch a.txt (不能创建同名)
- 文件删除
rm -rf a.txt #文件删除
- 文件查看
ls -l a.txt #看文件属性
cat /etc/passwd #小文件内容查看
cat /etc/passwd /etc/shadow #同时看2个内容
cat -n /etc/passwd #带序号显示
more /var/log/secure #分页显示大文件内容
less /var/log/secure #更好可以上下翻页
head /etc/passwd #文件前多少行 默认显示前10行
head -n3 /etc/passwd #文件前3行 -3也可以
tail -2 /etc/passwd #文件后2行
tail -f /var/log/secure #监控
- 剪切 复制
mv 命令和目录的操作一样
cp 命令和目录的区别不需要加-r (加上也不报错)
- 内容修改
重定向
> 标准输出重定向 先把文件的内容清空 把内容放在文件的最后一行 cat /etc/passwd >a.txt
>> 追加重定向 把内容放在文件的最后一行 cat /etc/passwd >>a.txt
将内容追加 echo "10.0.0.100 python3" >>/etc/hosts
1 >或者1 >> 标准正确输出重定向 执行正确的内容才会通过
2 > 或者 2>> 标准错误输出重定向 执行错误的内容才会通过
2>&1 把错误的信息放入对的信息中 结果是错误的信息和对的信息都在一个文件中
三.vim 编辑器
命令模式:初始模式
命令 | 含义 |
---|---|
G | 将光标快速切换到最后一行 |
gg | 将光标快速切换到第一行 |
ngg | 将光标快速切换到第n行 |
$ | 将光标快速切换到一行的行尾 |
^ | 将光标快速切换到一行的行首 |
yy | 复制光标所在位置一行的内容 |
Nyy | 复制N行 |
p | 剪切或复制的信息粘贴回来 |
dG | 将光标所在位置的一行内容及以下所有行的内容全部删除 |
u | 撤销 |
ctrl+r | 还原 |
/ | 搜索关键字 |
dd | 删除(剪切)一行的内容 |
x(del) | 删除光标所在字符 |
d$ | 从光标删除到行尾,包括光标所在字符 |
d^ | 从光标删除到行首,不包括光标所在字符 |
ZZ | 保存退出 |
- 编辑模式:
命令 | 含义 |
---|---|
a | 在光标所在位置的下一个字符进入编辑模式 |
A | 将光标快速切换到一行的行尾,并进入到编辑状态 |
o | 在光标所在行的下一行(新起一行),进入到编辑状态 |
O | 在光标所在位置的上一行(新起一行),进入到编辑状态 |
C | 将光标所在位置到行尾的信息都删除,并进入编辑状态 |
cc | 将光标所在行的内容进行删除,并进入到编辑状态 |
i | 在光标所在位置进入编辑模式 |
I | 将光标快速切换到一行的行首,并进入到编辑状态 |
- 底行模式:
命令 | 含义 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消设置行号 |
:%s#xxx#yyy#g | 替换文件中指定数据信息(将文件中所有的xxx替换为yyy) |
:11,12s#xxx#yyy#g | 替换文件中指定数据信息(只替换11到12行信息) |
:%s/root/ROOT/g | 替换退出(g全局global) |
小技巧:grep -Ev “#|^$” /usr/local/nginx/conf/nginx.conf.default >/usr/local/nginx/conf/nginx.conf #过滤nginx
.conf.default中以#号和空行开头的,将过滤后的内容输出重定向到nginx.conf中
修改命令行字体颜色:
键入命令:
cd
ls -la
现在可以看到.bashrc这个文件。
编辑.bashrc:
vim .bashrc
加入这一行:
PS1="[[\e[32;40m]\u@\h \w ]$ [\e[0m]"
保存退出
重新加载bash配置文件:
source .bashrc
标准输入0 从键盘获得输入 /proc/self/fd/0
标准输出1 输出到屏幕(即控制台) /proc/self/fd/1
错误输出2 输出到屏幕(即控制台) /proc/self/fd/2
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”
1、2>/dev/null意思就是把错误输出到“黑洞”
2、>/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
3、2>&1 >/dev/null意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。