Linux学习笔记(一)
- 聚客宝
- 2021-08-06 15:55:20
在公司以centos7最小安装模式下配置的服务器。在使用中遇到一个问题,很多的指令不存在,比如ifconfig等,通过查询资料,知道在最小安装的情况下,很多指令需要单独安装。
(1)安装net-tools
yum install -y net-tools
(2)安装防火墙管理setup
yum -y install setuptool
安装setup命令工具
yum -y install ntsysv
安装setup工具配套的系统服务组件
yum -y install system-config-securitylevel-tui
安装setup工具配套的防火墙配置组件
yum -y install system-config-network-tui
安装setup工具配套的网络配置组件
yum -y install authconfig-gtk
安装setup工具配套的验证配置组件
yum -y install system-config-keyboard
安装setup工具配套的键盘配置组件
(3)安装软件下载指令wget
yum -y install wget
(4)安装lsof
yum -y install lsof
(5)安装links
yum -y install links
(6)安装vim
yum -y install vim
在测试配置Apache服务器的过程过程中遇到的一些问题:
(一)如何在命令行下测试配置的网站能否访问:可以使用curl命令
# curl http://localhost
执行后,html代码会显示在屏幕上
通过这个指令可以在本地机器测试配置的网站是否能用。
注意:即使测试的没问题,但是也不能保证在外网可以访问。外网无法访问的原因一般可能是防火墙没有打开。
还可以直接使用links指令通过文本方式打开网页,是文本模式下浏览网页的一种方法
(二)与服务相关的命令 systemctl
(1)启动服务
#systemctl start httpd.service
(2)停止服务
#systemctl stop httpd.service
(3)重启服务
#systemctl restart httpd.service
(4)设置自启服务
#systemctl enable httpd.service
(5)禁止自启服务
#systemctl disable httpd.service
(6)查看服务状态
#systemctl status httpd.service
(7)显示所有已启动的服务
#systemctl list-units --type=service
(三)网路相关的
(1)ifconfig命令
无参数可以查看本地IP地址
eth0表示第一块网卡
HWaddr表示网卡的物理地址
inet addr 网卡的IP地址
Bcast 广播地址
Mask 掩码地址
1) 启动关闭指定网卡:
ifconfig eth0 up
ifconfig eth0 down
2)为网卡配置和删除IPv6地址:
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址
3)用ifconfig修改MAC地址:
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
4)配置IP地址:
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
5)启用和关闭arp协议:
ifconfig eth0 arp #开启网卡eth0 的arp协议
ifconfig eth0 -arp #关闭网卡eth0 的arp协议
6)设置最大传输单元:
ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
(2)netstat
来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况
1)列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
2)列出所有处于监听状态的 Sockets
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
3)显示每个协议的统计信息
netstat -s 显示所有端口的统计信息
netstat -st 显示TCP端口的统计信息
netstat -su 显示UDP端口的统计信息
4)显示路由表
netstat -r
5)显示网络工作信息统计表
netstat -s
(3)lsof 列出打开文件(lists openfiles)
检测端口的状态
#lsof -i :80
lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
(3)管理SELinux
1).查看SELinux状态
#sestatus
2)getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态
3)setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,
setenforce 0用于关闭selinux防火墙,但重启后失效
4)永久关闭
修改selinux的配置文件,重启后生效。
[root@localhost ~]# vim /etc/selinux/config
修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
(四)pwd 是 Print Working Directory
列出当前目录,琢磨了好久为什么用这三个字母,终于今天明白了。
关于配置Apache服务器的问题
在没有关闭防火墙之前,折腾了不少,还修改了配置文件,其实在安装完毕httpd服务以后,打开防火墙,就可以很轻松的访问默认网站。什么都不需要去做。
接下来需要继续尝试配置虚拟主机的过程,在昨天第一次尝试中,配置完毕后,无法启动httpd服务。也许是配置文件中相关的关键词出现了错误。
按照昨天晚上的代码,重新处理一遍,配置的两个虚拟主机都通了。
<VirtualHost *:80>
DocumentRoot "/var/www/html/a.zbca.com"
ServerName a.zbca.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/b.zbca.com"
ServerName b.zbca.com
</VirtualHost>
这里修改了网站的目录位置,改在系统默认的目录下 /var/www/html/
下午三点左右,测试通过,也算是第一次把虚拟主机配置成功
晚上在腾讯的北京免费主机上,也重复了一遍。因为80端口无法打开,就使用88端口来测试。
<VirtualHost *:88>
DocumentRoot "/var/www/html/a.zbca.com"
ServerName a.zbca.com
</VirtualHost>
<VirtualHost *:88>
DocumentRoot "/var/www/html/b.zbca.com"
ServerName b.zbca.com
</VirtualHost>
如果修改默认虚拟主机目录 /www/a.zbca.om
在虚拟主机配置文件的前面,需要添加新目录的权限
<Directory "/www">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:88>
DocumentRoot "/var/www/html/a.zbca.com"
ServerName a.zbca.com
</VirtualHost>
<VirtualHost *:88>
DocumentRoot "/var/www/html/b.zbca.com"
ServerName b.zbca.com
</VirtualHost>
这样就可以通过。否则,访问会自动跳转到apache的欢迎页面。
中间遇到的问题是,在服务器本地测试,使用#curl http://a.zbca.com,系统无法识别。从浏览器上测试没有问题,这是才想出了原因。因为a.zbca.com并没有解析,只是在本地host文件上做了指向处理,当然在服务器端的本地测试就无法识别a.zbca.com。
其中很多的故障都是由于这种阴差阳错的事情,加之自我基础知识不足,很容易陷入迷途之中。截至到今天,算是静态虚拟主机配置已经初战告捷。
归纳总结如下:
(1)需要把防火墙关闭,或者重新配置防火墙,不要挡住访问用户;
(2)注意域名解析的问题,如果采用host文件,务必注意使用场景;
(3)在默认网站目录下如果没有建立首页文件,/var/www/html/index.html。则显示系统自定义的欢迎页面,如果建立了自定义首页,则显示自定义的页面。
删除文件及文件夹操作指令
(1)直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
I、删除文件夹实例:
#rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
II、删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件
文件更名
mv [options] 源文件或目录 目标文件或目录。
主要参数[options]
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。