一、文件和文件夹属性(重点)
1.查看目录和文件属性(ls -al)
[root@localhost ~]# ls -al
总用量 44
dr-xr-x---. 3 root root 192 9月 12 15:34 .
dr-xr-xr-x. 17 root root 224 9月 12 10:10 ..
-rw-r--r-- 1 root root 79 9月 12 10:52 1.txt
-rw-------. 1 root root 1259 9月 11 23:04 anaconda-ks.cfg
--------------------------------
文件属性 层级 属主 属组 大小 月 日 时间 文件名
文件属性:dr-xr-x---.
d
:表示文件夹,l(连接类型);-(普通文件);c(字符读取设备);b(block块读取设备);s(socket)网络通信r-xr-x---
:- r-x:文件属主的权限
- r-x:文件属组的权限,该文件属于哪个用户组
- —:文件其他用户的权限
.
:和selinux相关,暂不考虑
2.设置文件权限 (chmod)
设置权限时,添加
-R
进行递归赋权
重点:chmod ugoa
ugoa:
- u表示user,表示属主,配置该文件所属用户的权限
- g表示group,表示属组。配置该文件的所属用户组的权限
- o表示other,表示其他,配置该文件其他用户的权限
- a表示all,表示所有,同时配置上面3个类型的权限
+\-=
- +:表示加权限
- -:表示减权限
- =:表示直接配置于这个权限
示例:
- u+x : 表示给属主配置执行权
- u-rw : 表示给属主去掉阅读和读写权限
- chmod u+x,o+r /1.txt 通知配多个权限
使用数字快速配置权限
谨慎使用777全权限
读 | 写 | 执行 |
---|---|---|
r | w | x |
4 | 2 | 1 |
示例:chmod 777 /1.txt 配置所有权限
666:rw-rw-rw-
000:— — — 表示都无权限
356:-wx r-x rw-
651:rw- r-x --x
数字分别是属主、属组、其他用户的权限
3. 进制运算
十进制: 123
二进制: 0b 00011 1 1011
四进制: 1323
八进制: 0o173 每3位二进制换算位1位8进制
十六进制: 0x7b 每4位二进制换算位1位16进制
三十二进制:3r
问题?
为什么3位换1位8进制?8进制 0~7 000~111
为什么4位换1位16进制?16进制 0 ~15 0000 ~ 1111
4.文件归属
-
chown
chown zhangsan:root 1.txt
前面属主,后面属组
更改用户的所拥有者
二、网络配置
1.网络套装工具
1.1 IProute2套装工具
系统自带安装,ip addr | ip addr add ip/24 dev ens33、
ip route | ip route add ip/24 via 192.168.80.2
1.2 net-tools工具包(重点)
yum -y install net-tools
目前的linux虚拟机是最小化安装,不会自带vim,net-tools。
工具包包含的命令:
/bin/netstat
/sbin/arp
/sbin/ether-wake
/sbin/ifconfig
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-diag
/sbin/mii-tool
/sbin/nameif
/sbin/plipconfig
/sbin/route
/sbin/slattach
iproute2 套装工具命令 | net-tools套装工具命令 | 说明 |
---|---|---|
ip addr | ifconfig | 查看网卡信息,IP 、MAC 等 |
ip neigh | arp | 查看arp 缓存 |
ip -s link | ifconfig -s | 查看查看网卡收发数据包的大小(RX:收、TX:发) |
ip addr add 192.168.100.100/24 dev ens33 | ifconfig add ens33 192.168.100.100/24 | 为ens33 网卡添加一个临时的IP 地址 |
ip addr del 192.168.100.100/24 dev ens33 | ifconfig del ens33 192.168.100.100/24 | 为ens33 网卡删除一个IP 地址 |
ip route | route -n netstat -r | 查看路由表 |
ip route add 192.168.30.0/24 via 192.168.188.2 | route add -net 192.168.50.0/24 gw 192.168.188.5 | 添加路由条目 |
ip route del 192.168.30.0/24 via 192.168.188.2 | route del -net 192.168.50.0/24 gw 192.168.188.5 | 删除路由条目 |
route add default gw 192.168.188.2 | 添加默认路由 | |
netstat -anpt | a:all n:number p:processid t: tcp |
2.网络相关命令(重点,常用)
2.1查看白盒测试网络
- ifconfig 查看
已启用
的网卡; ip addr 可以查看到未启动的网卡。
启动网卡可以使用
ifup ens33
ifconfig up ens36
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.132 netmask 255.255.255.0 broadcast 192.168.88.255
inet6 fe80::ec4f:8b6b:990a:483d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f5:1a:c2 txqueuelen 1000 (Ethernet)
RX packets 144242 bytes 185322556 (176.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21602 bytes 2490131 (2.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 4 bytes 348 (348.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 348 (348.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:第一块网卡的名字,en是Ethernet,s表示热拔插吗,33表示插槽编号,后面添加第二张网卡,一般是36
lo:loopback,本地回环网卡,localhost,127.0.0.1
- hostname 主机名字
hostname 查看主机名字
hostname abc 修改主机名字
都是临时的,重启失效
-
netstat
查看网络连接情况(重要) -
[root@localhost ~]# netstat -anpt -a:显示当前主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。 -n:以数字的形式显示相关的主机地址、端口等信息。 -r:显示路由表信息。 -l:显示处于监听(Listening)状态的网络连接及端口信息。 -t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。 -u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。 -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)。 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 36 192.168.119.136:22 192.168.119.1:55917 ESTABLISHED 7380/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 7097/sshd tcp6 0 0 ::1:25 :::* LISTEN 7252/master
-
ping
-
traceroute:windows是tracert
-
nslookup
:系统不自带,需要安装band-utils
3.上下线网卡
上线网卡,禁用网卡设备
ifconfig ens37 down | ifdown ens37(此命令禁用设备不会显示down,但是同样不能获取到ip)
上线网卡
ifconfig ens37 up | ifup ens37 (ifup必须确保 有ifcfg-ens37配置文件,没有配置文件会报错。)
4.永久修改hostname
修改/etc/hostname文件
5.修改网卡配置为静态IP
修改/etc/sysconfig/network
修改BOOTPROTO为ststic
添加IPADDR=
添加NETMASK=
添加GATEWAY=
//网关地址->虚拟机设置里面
添加DNS1=
添加DNS2=
修改网卡参数,重启服务
systemctl restart network (centos7以后)
service network restart (cnetos6)但是底层还是systemctl
网关来源:
6.修改DNS解析
修改 /etc/resolv.conf
7.请求网络任务
下面的命令 -O 参数均为保存文件
-
curl:利用url地址,进行文件传输,抓取网页内容,允许通过curl下载文件,默认下载文件是html
同时,iptable也会使用curl来测试网络连通情况
-
wget:下载工具,和curl差不多,linux常用下载工具,下载镜像源
wget -O /home/1.txt http://地址
三、进程管理(必懂)
1.进程管理
-
ps命令:统计静态进程
a:显示当前终端下所有进程信息,包括其他用户的进程。 u:使用以用户为主的格式输出信息。 x:显示当前用户所在终端下所有的进程。 -e:显示所有程序 -l:采用详细的格式来显示程序状况 -f:显示UID,PPIP,C与STIME栏位
常规:ps aux 或ps -ef
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 125332 3776 ? Ss 03:34 0:00 /usr/lib/systemd/systemd --switched-root --system --deseri
user:用户,谁启动就是谁
PID
:process id 程序id
%CPU:cpu占用
%MEM:磁盘占用
VSZ:占用的虚拟内存空间swap(物理磁盘借用的虚拟空间)
RSS:常驻内存空间,正常内存占用大小
TTY
:表示进程是运行在哪一个终端。pts/0表示运行在pts端(远程)
STAT
:显示进程状态,S(sleep休眠),R(run运行),Z(僵尸进程),<(高优先级),N(低优先级),+(前台运行),s(父进程)
COMMAND
:启动进程的名字、命令
-
top
:网安必备,每3s刷新一次。类似于win任务管理器[root@localhost ~]# top top - 22:59:55 up 23:20, 3 users, load average: 0.00, 0.01, Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, KiB Mem : 995896 total, 132808 free, 114000 used, 7490 KiB Swap: 2097148 total, 2097148 free, 0 used. 6884 PID USER PR NI VIRT RES SHR S %CPU %MEM 1 root 20 0 125332 3772 2564 S 0.0 0.4
- load average: 分别为1、5、15分钟cpu的进程
-
uptime,显示当前cpu的负载情况
[root@localhost ~]# uptime 23:01:00 up 23:21, 3 users, load average: 0.00, 0.01, 0.05
-
pgrep:查询相关信息的进程PID
-
kill -9 PID 杀死进程
但公司不推荐kill -9 ,推荐systemctl stop server任务。
# 下面是常用的信号。 # 只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 HUP 1 终端挂断 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) KILL 9 强制终止 TERM 15 终止 CONT 18 继续(与STOP相反,fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
2.控制进程
进程的启动方式一般是前台启动和后台启动
-
前台启动:如cmd启动程序之后必须保持cmd窗口常驻
-
后台启动:表示使用server启动之后,无cmd端口
- linux在命令行后面添加
&
,就表示后台运行
ping 127.1 >> ./ping.txt & 将输出重定向到指定文件
- 好处:正常不会占用前台的bash光标,可以在前台操作其他命令
ctrl+c 退出bash环境运行的前台程序
ctrl+z 暂停bash环境运行的前台进程
- linux在命令行后面添加
-
查看暂停进程
- ping 127.1
- ctrl+z
- 使用
jobs
查看被暂停的进程 - 使用
fg 编号
复工到前台进程 - 使用
bg 编号
后台运行进程
因为使用暂停进程之后,就会移动进程到后台
-
pkill
:根据输入的进程名或用户名进行批量终止pkill -U 用户名
直接杀死该用户下的所有进程。
一种防御手段,可以批量杀死某个程序用户所创建的病毒脚本
-t 根据某个终端来干掉进程
如:pkill -9 -t pst/2
四、软件安装(常识)
1.linux应用程序的组成
- 普通的可执行文件:存在/usr/bin目录下,普通用户都可以执行
- 服务器程序、管理程序:/usr/sbin,需要管理员权限
- 配置文件:/etc里面
- 日志文件:/var/log;
- 应用的参考文件:/usr/share/doc;
- man手册:保存在/usr/share/doc/man里面
2.软件包的封装类型
- RPM 软件包:这种软件包文件的扩展名为“.rpm”,只能在使用 RPM(RPM Package Manager,RPM 软件包管理器)机制的 Linux 操作系统中安装,如 RHEL、Fedora、CentOS 等。RPM 软件包一般针对特定版本的操作系统量身定制,因此依赖性较强。安装 RPM 软件包需要使用操作系统中的 rpm 命令。
- DEB软件包:这种软件包文件的扩展名为“.deb”,只能在使用DPKG(Debian Package,Debian 包管理器)机制的 Linux 操作系统中进行安装,如 Debian、Ubuntu 等。安装 DEB 软件包需要使用操作系统中的 dpkg 命令。
- 源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成“.tar.gz”或“.tar.bz2”等格式的压缩包文件,因多数使用 tar 命令打包而成,所以经常被称为“TarBall”。安装源代码软件包需要使用相应的编译工具,如 Linux 中的 C语言编译器 gcc。因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译环境。make 来进行编译安装。
- 附带安装程序的软件包:这种软件包的扩展名不一,但仍以 TarBall 格式的居多。软件包中会提供用于安装的可执行程序或脚本文件,如 install.sh、setup 等,有时候会以“.bin”格式的单个安装文件形式出现。安装时只需运行安装文件就可以根据向导程序的提示完成安装操作。
3.RPM包管理器
RPM 软件包管理机制最早由 Red Hat 公司提出,后来随着版本的升级逐渐融入更多的优秀 特 性 , 成 为 众 多 Linux 发 行 版 中 公 认 的 软 件 包 管 理 标 准 。 在 其 官 方 站 点http://www.rpm.org 中,可以了解到关于 RPM 包管理机制的详细资料。
3.1常用操作
rpm -qa 列出系统中安装的软件列表
rpm -qi xx 列出指定软件包的版本,作用等信息 -qi->info
rpm -ql xx 列出指定文件所安装的所有目录和信息 -ql->list
rm -qf xx 查询指定文件或目录是由哪个软件所安装的 -qf->file
-
qa查询
-
qi查询软件包信息
-
ql查询目标软件目录
-
qf查询目标文件夹对应应用
更多用法:
rpm -qf `which 程序名` #返回软件包的全名
rpm -qif `which 程序名` #返回软件包的有关信息
rpm -qlf `which 程序名` #返回软件包的文件列表
3.2安装升级卸载RPM软件包
-i:在当前系统中安装(Install)一个新的 RPM 软件包。
-e:卸载指定名称的软件包。
-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。
-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
-v:显示软件安装过程中的详细信息。
--force:强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一
个比当前使用的软件版本更旧的软件时,可以使用此选项。
--nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。
安装升级: -ivh 我们会上传mysql_xxxx.rpm软件包文件,手动去安装这个文件。
#安装
[root@localhost ~]# rpm -ivh /mnt/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
[root@localhost ~]# rpm -Uvh /mnt/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
#更新,软件包必须已经安装才可更新
[root@localhost ~]# rpm -Fvh /mnt/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
卸载 -e
#卸载net-tools
4.yum安装软件
-
查询软件包
yum list [软件名]... yum info [软件名]... yum search <关键词>...
-
查询软件包组
yum grouplist <包组名>... yum groupinfo <包组名>...
-
安装软件(可以使用 -y 选项表示不提醒)
yum install <软件名>... yum groupinstall <包组名>...
-
升级软件(可以使用 -y 选项表示不提醒)
yum update <软件名>... yum groupupdate <包组名>...
-
卸载软件(可以使用 -y 选项表示不提醒)
-
自动删除软件和对应的组件
yum autoremove <软件名>…
-
yum remove <软件名>…
yum groupremove <包组名>…
- 生成缓存和
yum makecache #生成缓存 提高效率
yum clean all #清空缓存
5.yum源
> 大概就是有一个统一的下载服务器,相当于各大市场应用商店,软件也不一定是统一,也不一定保证速度
>/etc/yum.repos.d/目录是yum源配置的目录,同时rpm很多包很小,里面只有一个rpm源地址
6.如何配置国内yum源
## 五、防火墙(重点)
iptables和firewall
> 系统默认使用firewall,所以先关闭firewall
>
> systemctl stop firewalld
>
> systemctl disable firewalld
> 安装iptables
>
> yum install iptables-services iptables
>
> 启动iptables
>
> systemctl start iptables
>
> 开启iptables开启自启动
>
> systemctl enable iptables
>
> 查看规则
>
> iptables -nL
查询服务状态
systemctl status iptables
以列表形式列出所有规则(ip和端口)->出现这个表示iptables真的启动成功
