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参数将不再起作用。