固态硬盘SSD
IP地址IPADDR
子网掩码NETMASK
默认网关GATEWAY
域名服务器DNS
DNS用来解析域名
C:\Windows\System32\drivers\etc\hosts
去掉“只读”属性,在hosts文件中输入IP地址和对应的域名,电脑就会自动将域名解析到设置的IP地址
将百度域名解析到知乎的IP地址:(域名劫持)
180.153.100.156 www.baidu.com
这时候ping www.baidu.com,就会解析到知乎的IP地址,但是现在的浏览器一般会进行判断
应用软件
系统软件
系统软件的分类
世界上所有的软件(包括应用和系统软件)都应该开源免费
ReaHat
Debian
查看自己虚拟网卡地址
修改网络配置信息
重启网卡重新加载配置文件
·
指向当前目录..
指向当前目录的上级目录/home/用户名
--
-
一级目录:/
二级目录:/etc,/boot,/sbin,/usr,/opt
三级目录:一般在三级目录才开始创建自己的目录
...
如果磁盘空间不够用,可以挂载文件mount
Windows文件系统中,盘符的缺点是:在不同计算机中运行相同程序,可能出现路径错误。
文件系统:
所以在Linux中所有的东西都是以文件的方式进行操作的
在Linux中,文件的访问与Windows不同,Windows通过盘符进行访问
Linux维护着一个树状结构的文件模型
查找文件的方式
相对路径
绝对路径
日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
可以随意的挂载磁盘
mount /dev/disk1 /usr/download
disk1 1T
mount /dev/disk2 /usr/upload
disk2 2T
mount /dev/disk3 /usr/upload/photo
disk3 4T
二级目录查看命令:ll /
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
如果你的系统上有 /var/run 目录,应该让它指向 run。
ls -l --color=auto
,ls-
:文件d
:目录,即文件夹l
:软链接,即快捷方式copy
拷贝文件或者文件目录
cp 源==文件== 目标目录
拷贝==目录/文件夹==
move
剪切/移动文件或者目录
改文件名
remove
删除文件
rm a.log
:会跳出是否删除确认rm -f a.log
:强制删除不需要确认删除目录
rm -r aaa
:删除目录必须加-r,会跳出确认提示rm -rf aaa
:强制删除目录,不需要确认link链接=快捷方式
创建文件的链接
软链接/符号链接
硬链接
硬链接和原始文件使用文件系统中的同一个文件,可以通过Inode来判断
如果你害怕一个文件被别人误删除,你可以使用硬链接保护这个文件
原理:
stat一个文件,其link=1,链接数为1,即指向Inode的只有一个文件,当删除文件时,链接数变为0,Inode对应的文件也会删除。
当为一个文件创建一个硬链接时,链接数变为2,即指向Inode的有两个文件,当删除原始文件时,链接数变为1,Inode对应的文件不会被删除,通过硬链接还可以访问之前的文件
而为文件创建软链接时,其并不是直接指向源文件指向的Inode,而是指向另一个Inode,通过这个Inode指向源文件,再通过源文件去指向其Inode。所以如果删除源文件,通过软链接就无法找到源文件的Inode,也就无法查看其内容了。
将整个文档加载到内存中,并进行一次性正序显示
除非后面使用管道,传递数据
从文章开始读取N行
默认如果超过10行读取10行,否则读取现在行数
head -10 profile:查看profile的前十行
从文章末尾读取N行
tail -10 profile:查看profile的后十行
head -10 profile | tail -1:查看第十行
读取新增数据
ping www.baidu.com >>baidu
tail -F baidu
tail -f baidu
记事本vi
notpad就是vim
ctrl+z
.
:回退u执行的操作,相当于ctrl+y
上下左右
键域名解析服务
可以将域名转换为IP地址
DNS域名劫持
修改主机域名
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
在CentOS7+中,使用firewalld代替以前的 iptables;
#查看防火墙状态
systemctl status firewalld.service
#临时停止firewall
systemctl stop firewalld.service #开启换成start
#禁止firewall开机启动
systemctl disable firewalld.service
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd -add-port=80/tcp --permanent ##永久添加80端口
开启一个端口的正确操作
#添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --zone=public --query-port=80/tcp
#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
U2FsdGVkX1/NEBU6Z0HjlGL+BhCAabZD0ApyQU1MHAwXJIYPq4xkNDkV9by++ikr
如果是第一次建立连接,需要输入yes
不需要输入yes的解决方法:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
自动同步时间
本地搭建NTP服务
开启本地NTP服务
o
其他用户+
加上w
写入权限ug
所属用户和所属组+
加上rw
读取和写入权限ugo
所属用户、所属组和其他用户+
减去rw
读取和写入权限>
:替换;>>
:追加
ps -ef 查看进程信息
查找某一进程
eg:
ping www.baidu.com >> baidu
ps -ef | grep baidu
ps -aux 查看进程的所有信息
ps -aux --sort-pcpu 排序
top
Linux中所有进程都被实际化成文件
cd /proc
RedHat Package Manager,它属于红帽的一种包管理方式
通过RPM命令安装软件
可以查询软件
卸载
需要手动配置 Java 的环境变量
find / -name java
'''
/etc/alternatives/java
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/var/lib/alternatives/java
/usr/bin/java
/usr/java
/usr/java/jdk-17.0.2/bin/java
'''
cd /usr/java
ll
'''
total 0
lrwxrwxrwx 1 root root 16 Feb 8 11:14 default -> /usr/java/latest
drwxr-xr-x 10 root root 149 Feb 8 11:14 jdk-17.0.2
lrwxrwxrwx 1 root root 20 Feb 8 11:14 latest -> /usr/java/jdk-17.0.2
'''
cd jdk-17.0.2 #ll后发现有bin、conf等目录,说明jdk就是安装在这里了
vim /etc/profile
export JAVA_HOME=/usr/java/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH
#最后重新加载配置文件即可:
source /etc/profile
解压文件
tar -zxvf apache-tomcat-8.5.75.tar.gz
cd /opt/apache-tomcat-8.5.75/
cd ./bin/
./startup.sh #开启tomcat
ps -ef | grep tomcat #查看tomcat进程信息
'''
root 13607 1 14 13:23 pts/0 00:00:03 /usr/java/jdk-17.0.2/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.5.75/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/apache-tomcat-8.5.75/bin/bootstrap.jar:/opt/apache-tomcat-8.5.75/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-8.5.75 -Dcatalina.home=/opt/apache-tomcat-8.5.75 -Djava.io.tmpdir=/opt/apache-tomcat-8.5.75/temp org.apache.catalina.startup.Bootstrap start
root 13662 7051 0 13:24 pts/0 00:00:00 grep --color=auto tomcat
'''
./shutdown.sh ##关闭tomcat
修改网页显示的页面内容:vim /opt/apache-tomcat-8.5.75/webapps/ROOT/index.jsp
search 查询命令或者软件
yum search ifconfig
'''
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.dgut.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
========= Matched: ifconfig ==========
net-tools.x86_64 : Basic networking tools
'''
yum install net-tools -y
ifconfig
info
yum info net-tools
list / list jdk
Linux的yum进行软件安装时,默认从本机IP地址就近寻找服务器进行下载,缺点是有的服务器不够稳定,因此以下将yum源直接长期更换为阿里云,以后下载资源就统一从阿里云进行下载。
①首先安装 wget
②将系统原始配置文件失效
[root@CentOS7201810 etc]# cd /etc/yum.repos.d/
[root@CentOS7201810 yum.repos.d]# ll
total 32
-rw-r–r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo
-rw-r–r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r–r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r–r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r–r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r–r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r–r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
③使用 wget 获取阿里 yum 源配置文件
④清空以前 yum 源的缓存
⑤获取阿里云的缓存
MySQL的下载地址
MySQL安装
#---------安装MySQL依赖【perl net-tools】
yum install perl net-tools -y
#---------卸载mariadb
rpm -qa | grep mariadb
'''根据上一条语句查找到的文件进行卸载'''
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
#---------安装MySQL
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
#---------启动MySQL
systemctl start mysqld
'''systemctl status mysqld 查看MySQL的运行状态'''
#---------查找密码并登录MySQL
cat /var/log/mysqld.log | grep password
mysql -u root -p
#---------修改MySQL密码(8.0版本输入命令)
set global validate_password.policy=low;
set global validate_password.length=6;
#更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
#更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#刷新权限
FLUSH PRIVILEGES;
'''
#---------修改MySQL密码(5.7版本输入命令)
set global validate_password_policy=low;
set global validate_password_length=6;
alter user root@localhost identified by '123456';
'''
#---------修改MySQL链接地址(因为这里MySQL只能默认本地登录,修改为其他主机也能登录)
use mysql;
update user set host='%' where user = 'root'; #'%'待变任意一个路径
commit;
exit;
systemctl restart mysqld
#---------使用Nacicat链接MySQL
systemctl stop mysqld
cut
用指定的规则来切分文本
cut -d ‘:’ -f1,2,3 passwd | grep school
-d ':'
按照冒号切分
-f1,2,3
按冒号切分后,取1、2、3列的内容
passwd
要切分文本的文件名
| grep school
查找passwd文件中’school’文本
sort
sort lucky
sort -t ‘:’ -k2 lucky
:
切分,-k2
按照第二列进行排序bin:x:1
有些奇怪)sort -t ’ ’ -k2 -r lucky
-r
逆序sort -t ’ ’ -k2 -n lucky
-n
按照数值大小进行排序,如果有字母,字母在前wc
-n
显示匹配的行号
-nvi
显示不匹配的忽略大小写
-E
使用正则表达式匹配
sed 'XXX
sed '2a
在passwd文件第二行的后面(append)追加luckyisgood
-i
会直接将追加的信息保存到文件中,且不会打印出来~2
每隔两行,将整行替换为hehehe它不是一个剑客,它是一门语言
了解即可
模式与动作
- awk -F ":" 'NR>=2&&NR<=6' /etc/passwd
- awk -F ":" '{print NR,$1}' /etc/passwd
- awk -F ":" 'NR>=2&&NR<=6 {print NR,$1}' /etc/passwd
- awk -F ":" 'NR==1{print NR,$1}NR==2{print NR,$NF}' /etc/passwd