linux基础及常见服务器搭建

第一阶段、基础命令
第二阶段、shell编程
第三阶段:常见服务器搭建

第一阶段、基础命令

一、书籍在线学习:
视频b站:细说linux
Linux笔记:https://docs.qq.com/doc/DVmhOaFdyeXN5RnJX
菜鸟教程:https://www.runoob.com/linux/linux-tutorial.html
Linux命令查询:https://man.linuxde.net/

二、Linux分为三层:
应用层(应用软件:例如图形界面,图形界面当中有很多的图标,其中的一个图标是终端模拟器:他可以解释和执行用户的命令)
shell层:命令解析器,他可以将用户输入的命令进行编译后交给操作系统,然后操作系统将处理后的结果交给shell,shell将命令执行的结果反应给用户。
操作系统:就是执行shell命令,将命令交给硬件去处理。
Linux一切皆文件,这些文件都是下载在电脑的硬盘内存之上,通过其他方式下载的软件,也是以文件的形式储存在硬盘之中,只不过这些文件都是要被操作系统的文件管理。

三、虚拟机安装linux
文章:https://blog.csdn.net/rentian1/article/details/79887408
容易安装错误点:
1、安装centos官网:http://mirrors.cn99.com/centos/8.2.2004/isos/x86_64/ 选择第四个
2、在我要配置分区时需要将这三个都设置4、在我要配置分区时需要将这三个都设置
3、当配置完成时出现磁盘空间不够时:将根分区调制很大

四、Linux操作命令
linux命令总格式
命令 参数 操作对象(命令后面一般跟文件操作结果)

常见linux命令
linux目录结构
window是以盘符来管理文件,内存下面是文件目录
linux是以目录为主,Linux是以树形目录结构的形式来构建整个系统的,本质上Linux的操作系统是以目录形式挂载在磁盘上,但是在逻辑结构上磁盘是挂载在目录上的(一块磁盘对应一个目录)
FHS:Linux目录标准文档
目录路径
路径:就是招到文件的路线 (cd 命令可以切换路径 .表示当前路径 …表示上一级路径 -表示上一次所在路径 ~表示当前用户的home路径)
绝对路径:就是以“/”为起点的完整路径,例如: /usr/local/bin
相对路径:也就是相对于你当前的路径,现对路径是以“.”为开头 例如: …/…/usr/local/bin
注意:在进行目录切换的过程中请多使用 Tab 键自动补全,可避免输入错误,连续按两次 Tab 可以显示全部候选结果

帮助命令 :
ls --help:ls是查看当前文件 --help是显示ls 后面可以接的参数
man:帮助手册
whatis ls:获得ls命令的简单介绍信息
tab按键:可以补全没有写全的命令,按两次tab按键可以显示命令后面跟的操作对象

用户
Linux当中每一个文件都他的所有者,每一个用户都有一个他的所属组。同时每一个文件都有他的权限。
添加用户 adduser user 创建用户成功时,也会创建一个同名的用户组,-g可以指定用户组
给用户设置密码passwd user
切换用户 su - user
删除用户remove - user
删除用户userdel -r user
添加用户组 groupadd user
删除用户组groupdel user
改变用户 chown [用户] [文件或目录]
chown user file 改变文件file的所有者为user
chgrp:chgrp [用户组] [文件或目录]
chgrp group file 改变文件file的所属组为group
用户组中的用户管理
添加用户到用户组 gpasswd -a user network
gpasswd -d user network
-a添加用户到用户组
-d从用户组中移除用户
chown [-R] 账号名称:用户组名称 文件或目录
-R :实现文件和目录的递归处理
chown -R user:group file 改变文件和用户所属
umask -S:显示、设置文件的缺省权限

目录、文件基本操作
创建目录:mkdir -p file
创建文件:touch mulu
删错目录和文件:rm -rf file 或者 rm -rf mulu

移动目录、文件
mv :文件剪切。源目录文件 目的目录 例:mv file1 Documents
mv :文件重命名。(同级目录) 如将文件“ file1 ”重命名为“ myfile ”:mv file1 myfile
cp:拷贝目录。cp -rp [原文件或目录] [目标目录】
cd:切换目录。 相对路经、绝对路径。cd … 表示上级目录

显示目录
ls : ls [文件或目录] 仅仅显示目录下的文件
ll:ll 文件或者目录 显示文件或者目录的详细信息
pwd:显示当前的目录

查看文件
cat:用来打印文件内容到标准输出(终端)。
more:可以分页显示,但是只能朝一个方向。
less:可以分页显示,他可以向上或者向下两个方向。
head:可以显示文件的前10行(默认)
tail:可以显示文件的后10行(默认)
file:可以查看文件类型

改变文件权限
chmod uog+w IPhone :给文件iPhone的user,other,group添加 写的权限
chmod -R 777 iPhone :修改目录testfile及其目录下文件为所有用户具有全部权限
-R 递归修改
1代表读(列出文件内容)
2代表写(可以 创建文件和删错文件)
4代表可以执行(进入文件)

搜索文件
which:我们通常使用 which 来确定是否安装了某个指定的程序,因为它只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果。也就是说,我们可以看到某个系统命令是否存在以及执行的到底是哪一个地方的命令
find:find [搜索范围] [匹配条件]
find /etc -name init
在目录/etc中查找文件init
grep -iv [指定字串] [文件]
功能描述:在文件中搜寻字串匹配的行并输出
grep mysql /root/install.log
grep -v^# /etc/inittab 去除以#开头的所有行信息,表示以XXX开头
whereis :只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。通过数据库查找,
搜索命令所在目录及帮助文档路径 :whereis ls
locate:查找文件 例:locate /etc/sh 查找etc所有以sh开头文件
他是通过数据库/var/lib/mlocate/mlocate.db来检索信息,不过不是立马更新他是每天定时更新。要更新数据库必须updatedb命令

打包文件
zip
zip -rqo shiyanlou.zip /home/shiyanlou/Desktop
上面命令将目录 /home/shiyanlou/Desktop 打包成一个文件。第一行命令中,-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。
将 shiyanlou.zip 解压到当前目录
unzip shiyanlou.zip

tar
tar -cvzf shiyanlou.tar /home/shiyanlou/Desktop
-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar
解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)
tar -xvzf shiyanlou.tar -C tardir
-x 解包 -v 显示详细信息
-f 指定解压文件 -z 解压缩

链接命令
链接:所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。
软链接:
ln:ln -s [原文件] [目标文件]
例:$ ln -s /etc/issue /tmp/issue.soft
创建文件/etc/issue的软链接/tmp/issue.soft(相当于window中的快捷方式)
硬链接:硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。

磁盘管理
df:查看磁盘和目录的容量
du:使用 du 命令查看目录的容量
mount命令挂载磁盘到目录树
umount命令卸载挂载磁盘
fdisk为磁盘分区
losetup命令建立镜像与回环设备的关联

输出到文件
$ dd of=test bs=10 count=1 或者 dd if=/dev/stdin of=test bs=10 count=1
bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如’K’,‘M’,'G’等单位),count用于指定块数量。
输出到标准输出
dd if=/dev/stdin of=/dev/stdout bs=10 count=1
if(input file,输入文件)和of(output file,输出文件)

使用mkfs命令格式化磁盘
你可以在命令行输入 sudo mkfs 然后按下Tab键,你可以看到很多个以 mkfs 为前缀的命令,这些不同的后缀其实就是表示着不同的文件系统,可以用 mkfs 格式化成的文件系统。
sudo mkfs.ext4 virtual.img

网络设置:
网络配置文件
1、/etc/hosts :记录ip地址和主机名,实现域名和ip之间的映射。主要用于本地域名解析。
2、/etc/resolve.conf :记录计算机域名和域名服务器地址。
3、/etc/sysconfig/network-script/ifcfg-ethN 主要记录ip地址,网关等信息
设置系统主机名称:hostnamectl set-hostname centos :不需要重启就可以生效
网卡设置:
1、图形界面设置(推荐)、nmtui
2、nmcli connetion add con-name eth0 type ethernet ifname ens32
nmcli connetion modify eth0 ipv4.address"192.168.10.2/24 192.168.10.1"
nmcli connetion modify etn0 ipv4.method manual
nmcli conention eth0 connetion .autoconnect yes
nmcli conention up eth0
3、 不推荐使用修改配置文件。

命令执行
命令执行顺序的控制
sudo apt-get update;sudo apt-get install some-tool;some-tool(一次性输入完成多条命令)
选择执行
&&:他表示如果前面的命令执行结果返回为0则执行后面,否则不执行,可以通过KaTeX parse error: Expected 'EOF', got '&' at position 50: …命令执行的结果) ||:他是于&̲&相反的控制效果当上一条命令执…?≠0)时则执行它后面的命令

管道
管道是一种通信机制。通常用于进程之间的通信(也可通过socket进行网络通信),他的表现就是将前面的每一个进程的输出(stdout)直接做为下一个进程的输入(stdin)
管道又分为匿名管道和具名管道
我们经常使用|对于程序的过滤
具名管道就是有名字的管道,通常只会在源程序当中用到具名管道。
ls -al /etc | less
通过管道将前一个命令(ls)的输出作为下个命令(less)的输入然后一行一的看

cut命令打印每一行的某一个字段
打印/etc/passwd文件中以:为分隔符的第 1 个字段和第 6 个字段分别表示用户名和其家目录cut /etc/passwd -d ‘:’ -f 1,6
grep命令,在文本或stdin中查找配备字符串
我们搜索/home/shiyanlou目录下所有包含"shiyanlou"的文本文件,并显示出现在文本中的行号:grep -rn I “shiyanlou” ~

wc命令,简单小巧的计数工具
wc /etc/passwd

sort 排序命令:就是将输入按照一定方式排序,然后再输出,

uniq:用于过滤或者输出重复行
过滤重复行

重定向:

会覆盖目bai标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。

会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。

**vim:**文本编译器(就是对所创建的文件进行编译)
1、命令行模式
2、插入模式
3、末行模式 按:
**

软件包管理
软件包分类
● 源码包
脚本安装包
● 二进制包(RPM包、系统默认包):
rpm进行软件的安装、查询、卸载、升级等工作,但是需要解决软件包之间依赖关系。
yum:Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。yum分为网络yum(只要联网就可以使用yum)和yum在线管理(需要挂载才可以使用)。

网络yum源
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
● [base] 容器名称,一定要放在[]中
● name 容器说明,可以自己随便写
● mirrorlist 镜像站点,这个可以注释掉
● baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务 器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
● enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成 enable=0就是不生效
● gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
● gpgkey 数字证书的公钥文件保存位置。不用修改

第二阶段、shell编程

**
shell
环境变量:有效作用域中变化的量,通常变量和值一一对应。
declare tmp :declare 用于声明变量 tmp为变量
= :赋值运算 例:tmp=xiaoming
使用echo命令和 符 号 ( 符号 ( 符号用于表示引用一个变量的值,初学者经常忘记输入)
例 declare tmp tmp=xiaoming echo $tmp 显示结果为xiaoming
注意:并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。

命令的查找路径于顺序
当我们输入一个命令的时候shell如何去查找命令然后去执行?这是通过环境变量 PATH 来进行搜索的

linux任务计划crontab
我们时常会有一些定期定时的任务,如周期性的清理一下/tmp,周期性的去备份一次数据库,周期性的分析日志等等。
crontab:用于周期性的执行一些命令、
crontab 命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行

crontab准备
首先我们会启动 rsyslog,以便我们可以通过日志中的信息来了解我们的任务是否真正的被执行了(Ubuntu会默认启动)
sudo apt-get install -y rsyslog
sudo service rsyslog star

**

第三阶段:常见服务器搭建

视频:
基础版Linux服务器:https://www.bilibili.com/video/BV1C5411s7JA?p=1
企业级Linux服务器:https://www.bilibili.com/video/BV1V4411J76i?p=1
https://space.bilibili.com/586684152/video

书籍:
linux就该这么学:https://www.linuxprobe.com/chapter-01.html
鸟哥的私房菜:http://cn.linux.vbird.org/

文章:
samba配置:
https://blog.csdn.net/weixin_40806910/article/details/81917077
1、设置共享用户。
2、设置共享目录以及设置目录相应的权限。
3、安装samba服务器 :yum -y install smb
4、修改samba主配置文件: vim /etc/samba/smb.conf
5、重启服务,关闭防火墙与selinux。
6、客户端测试。

nfs配置:
https://blog.csdn.net/weixin_43265596/article/details/85469405
1、设置共享用户。
2、设置共享目录以及设置目录相应的权限。
3、安装:yum -y install nfs*
yum -y install rpcbind
4、修改配置文件:/etc/exports
添加内容:/opt 192.168.206.0/24(rw)
解释:将/tmp对192.168.1.0/24网段共享且可以读写,而其他主机不能访问该资源。
5、重启服务,关闭防火墙与selinux。
6、客户端测试

ftp配置:
https://blog.51cto.com/sf1314/2072984
1、设置共享用户。
2、设置共享目录以及设置目录相应的权限。
3、安装服务器
yum -y install vsftpd
4、修改配置文件。
5、重启服务,关闭防火墙与selinux。
6、客户端测试。

dns配置:
https://blog.csdn.net/weixin_44565944/article/details/86558814
1、安装bind服务器: yum -y install bind*
2 正向:
修改bind主配置文件:vim /etc/named.conf #修改两处any
修改区域配置文件:vim /etc/named.rfc1912.zones #设置解析域
修改数据库:cp named.localhost liu.com.zone #具体解析域名与ip
注意:检验解析结果。为了检验解析结果,一定要先把Linux系统网卡中的DNS地址参数修改成本机IP地址

反向:
修改区域配置文件:vim /etc/named.rfc1912.zones #设置解析域
修改数据库: cp named.loopback 192.168.44.zone #具体解析域名与ip
3、重启服务,关闭防火墙与selinux。
4、客户端测试。

dhcp配置:
https://www.cnblogs.com/easonscx/p/10724742.html
设置两台虚拟机都为仅主机模式用来测试
1、安装dhcp : yum -y install dhcp
2、修改配置件:vim /etc/dhcp/dhcpd.conf

ddns-update-style none; 
ignore client-updates;     # 不用管
subnet 192.168.10.0 netmask 255.255.255.0 {            # 分配子网地址网段
range 192.168.10.50 192.168.10.150;                          #子网ip地址范围
option subnet-mask 255.255.255.0;                            #子网wang
option routers 192.168.10.1;                                        #服务器的ip地址(网关地址)
                          }

3、重启服务,关闭防火墙和selinux(可做可不做)
4、测试,客户机重启,就会自动分配到地址。

smtp配置:
https://blog.csdn.net/qq_42776455/article/details/84066933
https://blog.csdn.net/hehehechen/article/details/99674624

web配置:
https://www.linuxprobe.com/chapter-10.html#104

默认主页:
1、安装web软件包:yum -y install httpd
客户端测试
2、systemctl stop firewalld.service 关闭防火墙
3、systemctl start httpd 开启httpd服务
4、cd /var/www/html
touch index.html
echo “网页内容 ”> index.html

个人主页:
1、安装web:yum -y install httpd
2、设置个人用户主页:mkdir -P /home/liu/public_html
vim /home/liu/public_html/index_html
3、修改配置文件:
vim /etc/httpd/conf.d/userdir.conf
主要修改目录路径
4、重启httpd,关闭防火墙、selinux

配置虚拟目录
1、安装web:yum -y install httpd
2、设置个人用户主页:mkdir -P /user/web
vim /user/web/index.html
3、修改配置文件:
vim /etc/httpd/conf/httpd.conf
主要修改目录路径

4、
添加: Alias /myweb/user/web/
</ifmodule alias_module>

  <Diretory " /user/web/">   修改文件路径

squid配置:
1、一台服务器配置两块网卡内网卡和外网爱卡(内网卡连接客户端,客户端不可以上网)
客户端和服务器内网卡可以ping通
2、服务器安装squid代理服务器
客户端需用window在浏览器中设置代理,代理成功后,客户端可以上网。

acl访问策略
1、修改配置文件:/etc/squid/squid.conf
添加acl语句
2、重启服务,关闭防火墙和selinux

vpn配置:
http://www.manongjc.com/article/24177.html(简单配置)
https://itbilu.com/linux/management/Vk5H3ItW-.html(配置出错查看)
https://blog.51cto.com/12404273/1881941(不能上网)

软件下载:
软件包下载链接http://www.rpmfind.net/linux/rpm2html/
ppp:yum -y install ppp
pptpd: https://pic.ithothub.com/wp-content/uploads/2020/03/pptpd-1.4.0-2.el8.x86_64.rpm
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.i686.rpm
libpcap:在search当中直接搜查 libpcap
安装pptpd:rpm -ivh pptpd-1.4.0-2.el8.x86_64.rpm --nodeps --force 如果提示错误 --nodeps --force 强制安装
或者升级相关模块:yum install ppp perl

vpn功能:实现对内网资源的访问,服务器上面配置两块网卡,一块内网开,一块外网卡。内网卡用来配置成服务的ip地址
,外网卡来实现连接外网客户端。客户端上配置连接服务器外网卡的ip地址。从而实现外网来访问内网卡。

服务端配置:
1、配置pptp文件:vi /etc/pptpd.conf #设置连接服务器的ip,分配给远程客户端ip
2、配置ppp文件:vi /etc/ppp/options.pptpd #配置dns服务
3、配置vpn账号:vi /etc/ppp/chap-secrets #给远程的客户端提供身份验证(密码和用户名)
4、启用系统转发功能:vi /etc/sysctl.conf #
5、关闭防火墙和selinux : systemctl stop firewalld setenforce 0

测试:
准备一台win7客户端
控制面板—>网络和Internet—>网络和共享中心—>设置新的连接或网络—>连接到工作区—>使用我的Internet连接(VPN)—>我将稍后设置Internet连接输入IP—>接着跟着指示走
打开cmd输入"ipconfig"查看是否获得VPN的IP

猜你喜欢

转载自blog.csdn.net/weixin_45761101/article/details/108729732
今日推荐