《Linux就该这么学》第二期视频

Linux就该这么学--第二期学习笔记、、、

-------------

你的未来取决于你现在点点滴滴的努力

需要用到的一些工具:

Vm11激活码

----------

root在Linux系统中相当于上帝的角色
可以对系统做任意的修改
--------
需要完成的目标:
1.安装VM虚拟机
2.重置Root密码

yum 丫木
------------------
短格式 -h
长格式 --help
----------
在打开的帮助命令文档中搜索
/搜索的关键词

退出帮助文档 按着小q键就可以退出了
--------
空格键、pageup pagedown 上下方向键
home end键
------------
打印命令
echo 艾靠
-----------
打印日期
date "+%Y-%m-%H-%M:%S"
设置系统的时间
date -s ""
查看时区
date "+%Z"
查看星期几
date "+%A"
查看当前是上午还是下午
date "+%p"
判断今天是一年中的第几天
date "+%j"
------------------
查看系统的负载情况
uptime
查看系统的内核信息
uname -a
查看网卡的信息
ifconfig
查看当前系统的内存的使用情况
free -m
查看当前登录主机的用户是谁
who
查看系统的登录记录
last
查看系统中已经执行过的命令
history
显示带当前的工作目录
pwd
切换工作路径
cd
回到上一次的目录
cd -
回到家目录
cd ~(小波浪)
切换到其他用户的家目录
cd ~ 用户名
查看目录中有哪些文件
ls
用更容易理解的方式显示当前目录下的文件
ls -lh
----------------
查看纯文本文件的
cat 文件名
按小q退出查看
---------
查看前20行
head -n 20 文件名
查看后20行
tail -n 20
---------------
替换文本中的内容
tr
将一个文本中的所有小写字母都替换成大写字母
cat test.txt|tr [a-z] [A-Z]
查看etc目录下有多少个文件
ls -l /etc/|wc -l
查看当前系统中有多少个用户
wc -l /etc/passwd
-----------
常用的用户操作的命令:
useradd
passwd
userdel
--------------------
统计文本行数的命令
查看当前系统中有多少个用户不允许被登录系统
grep "/sbin/nologin" /etc/passwd|wc -l

--------------------
统计所有不允许登录系统的用户个数、
# grep "/sbin/nologin" /etc/passwd |wc -l

查看etc下有多少个文件
# ls -l /etc
用pageup或是pagedown翻页查询
# ls -l /etc | less
------------
用echo 艾靠 发送邮件给普通用户 burning
echo "Hello World ,Linux" | mail -s "Hello" burning
从root用户切换到burning查看收到的邮件
# su - burning
$ mail

Ctrl+d 退出邮件
----------
用echo修改root用户的密码为新的密码root
echo "root"|passwd --stdin root
-------------
查找etc下文件名中有yum的文件
ls -l /etc/|grep yum
统计还有yum的文件个数
ls -l /etc/|grep yum| wc -l
-----------
将date命令的man帮助文档信息写入一个txt文件中
man date > /tmp/date.txt
查看一下文本中是否写入了内容
less /tmp/date.txt
----------
用echo 写入一个文字到一个txt文件中
touch readme.txt
echo "Readme for help" > readme.txt
查看一下是否写入
cat readme.txt
再在readme.txt文本中追加一行文字
echo "The Second Line" >> readme.txt
查看一下是否写入了
cat readme.txt
统计一下 readme.txt中有多少行
cat readme.txt |wc -l
或者是
wc -l < readme.txt

----------
写一个封长文本的邮件
mail -s "readme" root@mailxxx.com << END
I think linux is very practical
I really like it
Can you teach me
I thnik you are a good teacher
END

查看一下这个邮件
mail
-------------
将某个命令的错误的输出信息写入到一个文件中
ls xxx.txt > /tmp/error.txt
查看一下一些报错信息是否写入了
cat error.txt
-----------------
查看一下etc下包含有host的文件
ls -l /etc/|grep "host*"
查看dev下所有的sda开头的所有文件
ls -l /dev/sda*
查看sda后面带有数字的文件
ls -l /dev/sda?
查看后面带有0-9之间任意一个的
ls -l /dev/sda[0-9]
查看包含2或4或6的
ls -l /dev/sda[246]
---------
定义一个变量输出它的价格是5$
price=5
echo "price is $$price"
----------
查看当前系统中有哪些别名
alias
取消别名
unalias
----------
查看一下PATH变量
echo $PATH
查看一个命令的类型
type ls
type which
-------------
查看系统中的变量
env
查看当前的home是谁的家
echo $HOME
查看当前的shell是谁
echo $SHELL
查看当前的主机名
echo $HOSTNAME
-----------------------
Vim的基本使用
保存退出
:wq
删除光标所在行
dd
复制光标所在行
yy
将之前dd或者是yy过的数据,粘贴到当前光标的后面
p
退出vim编辑器
:q
强制退出
:q!
强制保存
:wq!
显示vim中的行号
:set nu
不显示vim中的行号
:set nonu
只保存不退出vim
:w
被修改过的vim文件,不保存退出
:q!
Vim中全部删除一个文本中的内容
:%d
-------------
查看一下当前的系统的主机名字
cat /etc/hostname
修改系统的主机名
vim /etc/hostname
查看一下主机名是否修改成功了
cat /etc/hostname
-------
配置网卡信息

二、Bridge桥接模式、NAT模式、Host-only仅主机模式:

  • 桥接模式:虚拟机使用真实网卡进行通信,配置简单;只要和真实计算机在同一个网段内,就可以直接通信;局域网内如果有其他计算机,也可以进行访问。缺点:会占用网段内的一个IP地址。(类似于一台真正独立的计算机)
  • NAT模式:使用虚拟网卡VMnet8进行通信;只能和本机进行通信;在此基础上,虚拟机可通过主机访问互联网
  • 仅主机模式:使用虚拟网卡VMnet1进行通信;只能和本机进行通信;不能访问互联网。


进入网卡所在的目录中
cd /etc/sysconfig/network-scripts/
找到网卡名字
ls
编辑网卡
vim ifcfg-eno16777728
系统默认的网卡信息如下:
HWADDR=00:0C:29:8E:BB:3E
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777728
UUID=aa43d433-6cc3-49a8-aac8-3c99405496b0
ONBOOT=no

修改后的网卡信息如下:
HWADDR=00:0C:29:8E:BB:3E
TYPE=Ethernet
BOOTPROTO=atatic
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATWAY=192.168.10.1
DNS1=192.168.10.1
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777728
UUID=aa43d433-6cc3-49a8-aac8-3c99405496b0
ONBOOT=yes

---------------------
重启一下网卡
systemctl restart network
ping一下ip看是否能ping通
ping 192.168.1.112
PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data.
64 bytes from 192.168.1.112: icmp_seq=1 ttl=64 time=0.153 ms
64 bytes from 192.168.1.112: icmp_seq=2 ttl=64 time=0.125 ms
64 bytes from 192.168.1.112: icmp_seq=3 ttl=64 time=0.121 ms
64 bytes from 192.168.1.112: icmp_seq=4 ttl=64 time=0.126 ms
64 bytes from 192.168.1.112: icmp_seq=5 ttl=64 time=0.054 ms
查看一下当前的网卡的IP信息
ifconfig -a
-----------------
配置yum 亚木 仓库
进入到yum仓库的配置文件目录中
cd /etc/yum.repos.d/
-------------
删除从光标开始处的两行
2 dd
-----------
复制从光标开始的5行
5yy
----------
vim中搜索
/搜索关键字
?搜索关键字
----------

配置yum 丫么仓库
切换到Yum 仓库的配置文件目录中
cd /etc/yum.repos.d/
创建一个配置文件
vim rhel7.repo
[rhel7]
name=rhel7
baseurl=file://meida/cdrom
enabled=1
gpgcheck=0
-----------------
创建挂在光盘的目录
mkdir -p /media/cdrom
挂在一下
mount /dev/cdrom /media/cdrom
查看一下磁盘
df -Ph
---------------
让重启后的挂在文件也生效
vim /etc/fstab
在文件的最后一行写入
/dev/cdrom /media/cdrom iso9660 defaults 0 0
测试用Yum安装一个服务
yum install httpd
----------------------

关于shell脚本:
查看一下系统中,所有可用的shell解释器
cat /etc/shells
查看当前用户使用的是什么shell解释器
echo $SHELL
---------------
打开Linux中的一个脚本
cd /etc/
cd init.d/
ls
less network
-------------------
第一行脚本解释器的声明
#! /bin/bash
脚本中的注释
# 注释内容,脚本中的一些说明,方便后期维护
--------------
写一个简单的脚本
cd /tmp
vim example.sh
写入一下内容
#! /bin/bash
# 我是注释信息
pwd
ls -al
----------------
执行一下我们刚写的脚本
chmod u+x example.sh
./example.sh
----------
第二种方法执行脚本
sh example.sh
第三种方法执行脚本
source example.sh
------------
写一个简单的shell脚本接受用户输入的参数
#! /bin/bash
# 我是注释
echo "当前脚本文件的名称为$0"
echo "脚本中接收到用户输入了$#个参数,分别是$"
echo "用户输入的第一个参数是$1,第五个参数是$5"
-----------
执行一下脚本
sh example.sh one two three four five six
-------------
查看一下当前登录的用户是谁
echo $USER
查看一下系统中的内存
free -m
截取第三列的信息
free -m|grep cache:|awk 'print $3'
---------
条件判断语句
写一个简单的脚本,判断一个目录是否存在,不存在的话就创建这个目录
#! /bin/bash
# 我是注释
DIR="/tmp/test"
if [! -e $DIR ]
mkdir -p $DIR
fi
----------
执行一下脚本
sh example.sh
查看一下脚本中的命令是否执行ok
ls -ld /tmp/test
------------
写一个双分支的条件判断
#! /bin/bash
# 我是注释
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? eq 0 ]
then
echo "host $1 is up"
else
echo "host $1 is down"
fi
-----------
执行一下脚本
sh example.sh 192.168.10.10
--------------
写一个多分支的测试脚本
#! /bin/bash
# 我是注释
read -p " You can enter a number (0-100) :" Num
if [$Num -ge 85 ]&&[$Num -le 100];them
echo "$Num is to small"
elif [$Num -ge 70]&&[#Num -le 84];them
echo "$Num is pass"
else echo "$Num is fail"
-----------
执行一下这个脚本
sh example.sh
-----------------
写一个for 循环的测试脚本
#! /bin/bash
# 我是注释
read -p "Enter the users password:" PASSWD
for UNAME in 'cat users.txt'
do
id $UNAME &> /dev/null
if [$? -eq 0]
then
echo "Already exists"
else
useradd $NUME | passwd --stdin $UNAME &> /dev/null
if [$? -eq 0]
then
echo "Create success"
else
echo "Create failure"
fi
fi
done
----------------
创建一个计划任务,让系统在某个时间执行
at 23:30
systemctl start httpd
保存退出
Ctrl +d
------------
查看一下当前系统中有哪些任务计划
atp
-------------
或者是简写上面的命令
echo "systemctl start httpd"| at 23:30
查看一下计划任务是否创建成功
atp
-------------
创建一个打包备份的计划
crontab -e
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tart.gz /home/wwwroot
查看一下计划是否创建成功
crontab -l
-----------------
退出当前登录
logout
创建用户和用户组
useradd merry
useradd jhon
groupadd workstation
id merry
id jhon
usernod -a -G workstation merry
usernod -a -G workstation jhon

cd /tmp
mkdir testdir
ls -ld testdir
chown :workstation testdir/
chmod 777 /tmp/testdir/

--------

p6

Linux中的文件目录

Linux中文件的权限,目录的权限:这也是为什么Linux中病毒很少的原因<很多病毒文件在系统中没有权限运行>


用户身份与文件权限
所有者的权限
所属户组的权限
其余人的权限

4r:可以查看文件的内容
2w:可以新建,删除,重命名,移动文件或目录
1x:可执行

7所有权限
6读写权限
5读和执行权限
4读权限
3写和执行权限
2写权限
1执行权限

文件的权限与目录的权限

Linux中root用户的权限


--------------
ls -ld /etc/

ls -l /bin/passwd

=========
P7
inode 索引或者是目录
block块

挂载硬件设备mount
撤销挂载 umount
存储结构与磁盘划分
===========
P8
Linux系统中的防火墙,保证系统中的信息安全,
查看当前区域中的权限
fiewall -cmd --get-default-zone
查看网卡的区域
firewall-cmd --get-zone-of-interface=eno177736
查询参数
firewall-cmd --zone=public --query-
查看一下服务的状态
firewall-cmd --zone=public --query-service=ssh
查看一下http服务
firewall-cmd --zone=public --query-service=http
修改默认区域的权限
firewall-cmd --zone=public --get-default-zone=dmz
查看当前区域中的权限
fiewall -cmd --get-default-zone
---------------
设置永久生效的设置

fiewall -cmd --permanent --zone=public --add-service=https
让永久设置生效
firewall-cmd --reload
查询一下设置是否生效了
firewall-cmd --zone=public --query-service=https
firewall-cmd --permanent --zone=public --add-port=8080-8081
查看一下端口是否存在
firewall-cmd --zone=public --list-ports
让永久设置生效
firewall-cmd --reload
======================
P9
配置网卡连接参数
nmtui
手动配置
Manual
重启一下网卡
systemctl restart network
====>>插入图片编辑网卡的配置信息


查看系统中双网卡的信息
ifconfig|grep flags
---------------
P10
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom

创建一个Yum仓库的配置文件
vim /etc/yum.repos.d/httpd.repo
写入一下内容
[httpd]
name=httpd
baseurl=file://media/cdrom
enabled=1
gpgcheck=0
------------------
安装一下
yum install httpd

安装好之后,我们启动一下
systemctl start httpd

---------
打开浏览器测试一下:
127.0.0.1
========>>插入截图


查看一下配置参数
rpm ql httpd
查看一下apach服务的配置文件
vim /etc/httpd/conf/httpd.conf
----------
echo "Welcome to Linux world" > /war/www/html/index.html
----------
打开firefox
firefox
127.0.0.1
-------------------
启动一下网卡:
systemctl restart network
============

在Linux系统中安装虚拟机,安装一个Win7系统,或是安装一个Xp系统

使用vsftpd服务传输文件

FTP文件的传输原理:


文件传输协议:FTP:File Transfer Protocol,能够让用户在互联网中上传,下载文件的文件协议,FTP服务器是支持FTP传输协议的主机,需要完成文件的传输需要FTP客户端和FTP服务端
-----
vsftpd;very secure FTP daemon
----
保存退出
:x
-----------------
ftp服务中的状态码
1xx:服务器信息
2xx:正确响应的信息
3xx:正常响应,某操作过程尚未完成,需要进一步补充完成的
4xx:客户端错误
5xx:服务器端错误

 ------------------------------------

P12
使用Samba或NFS实现文件共享
Samba为了解决linux与windows之间文件共享问题
--------
FTP只能下载和上传文件,不能直接连上主机后就对主机上的文件进行修改
SMB:Server Messages Block协议:实现局域网内文件或打印机资源共享的服务协议

$* 中每一个变量参数之间以空格隔开
$@ 中每一个变量参数是独立的

uname -op
x86_64 GUN/Linux
用awk将aa bb 变成 bb aa
echo "aa bb" | sed -nr 's/aa bb/bb aa/p'
----------------

P13
使用Bind提供域名解析服务
----------
计算机主机在互联网中只能通过IP来识别对方的主机
DNS:域名解析服务Domain Name System,用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析和反向解析
正向解析:根据主机名(域名)来查找对应的IP地址
反向解析:根据IP地址来查找对应的主机名(域名)

DNS结构模型


----------
Bind服务;伯克利物联网域名服务Bind(Berkeley Internet Name Daemon )
----------
学习Linux本身就是需要一步一步的慢慢去理解,慢慢的去接触,去尝试去感受,然后再慢慢的去变成技术大牛的嘛

P14使用DHCP动态管理主机地址
DHCP协议,能自动化的管理局域网内的主机IP地址,有效的提升IP地址的使用率,减少管理与维护的成本,
DHCP:Dynamic Host Configuration Protocol是一种基于UDP协议的局域网协议,作用是为局域网内的设备或网络供应商自动分配IP地址

DHCP的工作原理

P15使用Postfix和Dovecot收发电子邮件
----
常用的一次邮件协议:SMTP,POP3,IMAP4
SMTP:用来发出或是转发电子邮件,占用TCP 25端口
POP3:用于把服务器上的电子邮件存储到本地主机,占用TCP 110端口
IMAP4:用于在本地主机上访问电子邮件,占用TCP 143端口
--------------

P16

Squid部署代理缓存服务
正向代理
反向代理

-------------

P17
使用iSCSI服务部署网络存储
SCSI:斯嘎SA :Small Computer System Interface存储设备协议
存储局域网技术:SAN:Storage Area Network
ISCSI小型计算机系统接口:Internet Small Computer System Interface是IBM公司研发的存储技术

找资料:主动找机会认识接触,先慢慢了解,走进它,感受它,认识它,理解它,
日积月累的去积累的,
-------------
P18
使用OpenLDAP部署目录服务
OpenLDAP:哦盆L代普

轻量级目录访问协议:LDAP:Liahtweight Directory Access Protocol

关闭一下防火墙:
iptables -F

service iptables save

-------------------
P19:数据库的话,认真看
使用MariaDB数据库管理系统
MariaDB:玛瑞啊DB数据库系统
-
因为mysql被Oracle收购了,所以从开源变成了闭源的了

----------------
P20---这章节很重要吧安装系统的实验模仿一下
使用PXE和Kickstart部署无人值守安装
Kickstart:KA克四大车
PXE:Preboot execute environment:能能够让计算机通过网络启动引导的方式
TFTP:Trivial File Transfer Protocol:基于UDP协议的文件传输协议

Vim中跳到第几行操作
在编辑模式下输入
25gg或者25G 跳转到第25行

在命令模式下输入行号n
: 10 跳转到第10行

打开文件即跳转
vim +n FileName

查看当前光标所在的行
Ctrl+g

学习的很多东西你是否能很熟练的运用,这个要看自己的领悟和理解了


-----------------
P21
使用LNMP架构部署动态网站环境
LNMP:Linux+Nginx+Mysql+PHP

------------------------------------------------

很酷酷的小实验、、、

Mark杯上看到的一段小代码

 我用代码实现了一下

---------------

原文地址:https://www.cnblogs.com/GaoNa/p/9559433.html