目录
为什么用linux
linux软件分类
应用软件
系统软件
Linux分支
RedHat(收费)
Debain(免费)
linux环境变量
环境变量的配置形式
Linux里的特殊字符
linux开关机
Linux日期和时间
时间同步
同步本地服务器时间
linux的基本命令
目录管理
linux的目录结构
基本命令
列出目录
文件夹的操作命令
创建和删除目录
复制目录
案例
移除文件或者目录
移动文件或目录
linux文件属性
前言
分析(drwxr-xr-x)
分析第一个字母
解析字母的意思
解析ll后文件排列格式
更改文件属组
更改文件属主与属组
chmod更改9个属性
重定向
文件的基本操作
文件的查看
基本命令
tail命令
more命令
less命令
翻页与查看
搜索
cat命令
向文件写入内容
硬链接与软链接
前言
硬链接和软链接的区别
实践操作
vim编辑器
vim的功能以及三种模式
三种模式的切换
vim的使用
命令模式
输入模式
底线命令模式
linux账号管理
前言
基础命令
添加用户
查看所有用户及密码
删除用户
修改用户
切换用户
用户密码设置
锁定用户命令
用户组管理
创建用户组
查看删除切换用户组
修改用户组
磁盘管理
查看分区情况
检查文件夹的使用量
文件挂载
内存管理
进程管理
前言
查看当前系统正在运行的进程信息
管道符与过滤
查看进程树
将进程变成后台进程
结束进程
主机与虚拟机的信息传输
虚拟机与虚拟机之间的信息传输
解压缩命令
tar命令
常用命令
zip与unzip
安装卸载命令
rpm安装命令
常用命令
yum安装
更换yum源
yum基本命令
Linux普通剑客
cut
sort
wc
主机相关信息
查看主机内核信息
options
主机间的相互免密钥
具体方法
生成密钥对
发送公钥
免密钥流程
linux网络相关
网络连接模式
host-only(主机模式)
bridged(桥接模式)
NAT(网络地址转换模式)
配置网络
基础命令
查看端口状态
常用命令
防火墙
防火墙基础命令
防火墙使用命令
常用命令
原因:很多大型项目都是部署在linux服务器中,在服务器端,开发领域上linux越来越受欢迎
linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix(可移植操作系统接口)和unix的多用户,多任务支持多线程,和多cpu的操作系统
linux能运行主要的unix工具软件,应用程序和网络协议,它支持32位和64位硬件,linux继承了unix为核心的设计思想,是一个性能稳定的多用户网络操作系统
注意:linux内一切皆文件,权限最高为root(若想要以root权限执行指令,那么就在指令之前加sudo)
环境变量:其是操作系统给程序运行提供支持的文件夹路径设置
环境变量理解:变量在任何程序中的作用都是被赋值和被取值,这个变量全局操作系统可以使用,其内部的小软件也可以使用
理解:在dos窗口输入命令执行文件时,其会先从当前文件夹下寻找该执行文件,若没有该文件则会从环境变量下配置的path路径下寻找该文件,若有则执行,若没有则不执行,如果从运行窗口直接输入该命令则电脑会直接去环境变量的path路径下寻找该文件
环境变量配置文件所在位置:/etc/profile
用户变量配置文件所在位置:/root/.bash_profile(家目录的.bash_profile文件)
.点
- 若文件的开始是点,则说明当前文件是一个隐藏文件
- .指向当前目录
- ..指向当前目录的上级目录
$:说明这是一个变量
*:通配符
~:当前用户的家的目录
空格:Linux的命令与参数用空格隔开
/:整个Linux文件的根目录
命令参数-
- 若是单词,一般加两个杠
- 若是字母则一般加一个杠
前言:开机时会启动许多程序,他们在windows内叫做服务(service),在linux内叫做守护进程(daemon)
关机命令:shutdown
shutdown -h 10:计算机将会在10分钟后关机
shutdown -h now:立马关机
shutdown -c:撤销关机
shutdown -h 11:00:计算机将会在今天11:00关机
shutdown -r now:系统立马重启
shutdown -r +10:系统10分钟后重启
reboot:系统现在重启
halt:关闭系统
注意:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
查看时间:date
修改时间:date -s '时间'
注意:这里的时间举例——2019-11-11 11:11:11
安装ntp:yum install ntp -y
语法:ntpdate 时间同步服务器域名(如cn.ntp.org.cn)
将数据内存同步到硬盘:sync(一般关机前使用)
查看当前服务器的内存使用率:top
登出:exit
伪清屏:clear或者reset
查看命令历史:history
清空命令历史:history -c
打印当前环境变量:echo $PATH
注意:linux的目录结构为一个树状目录结构,根节点为/,用户想要扩容,那么他会把磁盘挂载到根节点之后的具体文件夹,那么该文件夹就只会使用新挂载磁盘的空间了,从而间接地使根节点的磁盘空间容量增大。
切换目录:cd 路径
返回根目录:cd /
返回usr目录:cd ~
返回上一级目录:cd ..
查看当前文件目录:pwd
命令:ls [options]
options
注意:linux内的所有属性可以组合使用(eg:ls -al/ls -la)
详细列出文件及属性:ll
创建文件夹:mkdir 文件夹名
创建多层目录:mkdir -p dir1/dir2
删除一级目录:rmdir dir1
递归删除多个目录:rmdir -p dir1/dir2(dir1也被删除了)
并列创建ab、ac文件夹:mkdir -p a{b,c}
注意:
语法:cp [options] 原来地方的文件 新的地方(也可以顺便重命名)
options
注意:cp拷贝问件夹要加-r,拷贝文件不需要加-r
cp a.txt ../a(将当前文件下的a.txt文件复制到上级目录的a目录内)
cp a.txt ../a/b.txt(将当前文件下的a.txt文件复制到上级目录的a目录内,并将其重命名为b.txt)
命令:rm [options] 文件或目录
options
注意:若删除的是目录,则必须加-r参数,不管里面有没有文件
语法:mv [options] 移动的文件或目录 移动文件或目录的地址(也可以重命名文件/目录)
options
简单举例
linux是一种典型的多用户系统,不同的用户拥有不同的地位,拥有不同的权限。为了保护系统的安全性,linux系统对于不同的用户访问同一文件(或目录)的权限做了不同的规定
接下来的几个字母以三个为一组,均为(rwx)组合,这三组分别为:属主权限、属组权限、其他权限
注意:若都没有权限,则用“-”替代
drwxr-xr-x. 2 root root 6 10月 4 22:57 公共
drwxr-xr-x:文件类型与权限
2:文件个数
root:属主
root:数组
6:文件大小
10月 4 22:57:时间
公共:文件名
命令:chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个文件的属组时,若加上此参数,那么该目录下的所有东西都会属组更改
更改文件属主:chown [-R] 属主名 文件名
更改文件属主属组:chown [-R] 属主名:属组名 文件名
-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改
命令:chmod [-R] 三个数字 文件/目录
rwx中r占4、w占2、x占1
eg:chmod 777 文件/目录(三个权限都有读写与可执行权限)
-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改
理解:改变数据输出的位置,方向
将ll的输出结果存放到test文件中:ll n> test(正确输入)
将ll的输出结果存放到test文件中:ll >> test 2>&1(不管对错)
注意:
创建文件:touch 文件名
向文件中输入内容:echo "文件内容" >> 文件名
在控制行输出hello:echo hello
注意:源文件若有内容,则新内容会追加到文件的后面
在整个硬盘中查找文件:find / -name 文件名
查看文件属性:file 文件的路径以及名称
查看文件/文件夹状态:stat 具体路径的文件/文件夹
查询文件/目录位置:whereis 文件或目录
nl 文件名:从第一行开始显示文件内容(显示行号信息)
tac 文件名:从最后一行开始显示文件信息(倒着显示)
tail -n 20 文件名:显示文件结尾的20行内容
head -n 20 文件名:从第一行开始显示文件的20行内容
语法:tail [options] 文件名
options
举例:tail -n 20 文件名(显示文件结尾的20行内容)
语法:more 文件名
功能:页面内容若太多的话,则可以实现翻页(只是可以向下翻页)
注意:“空格键”实现翻页,“enter”代表向下看一行,“:f”可以看当前的行号信息
语法:less 文件名
功能:页面太多的话可以实现翻页功能其可以实现向上翻页和向下翻页
退出命令:q按键
#向文件里写入特定的文件内容,遇到eof则停止写入
cat < 文件名
写入文件的内容
eof
#向文件中写入内容,ctrl+c退出
cat > 文件名
cat 文件名:从第一行开始显示文件内容
cat -A 文件名:从第一行开始显示文件内容(包括隐藏内容)
linux内的链接分为两种:硬链接、软链接
每个文件内部都有个Inode属性来确定唯一性(地址),这个属性通过stat关键字来查看。硬链接后文件的Inode属性和源文件相同,软连接后文件的Inode属性和源文件不同,当删除源文件后,若没有硬链接则会将文件内容删除,若有硬链接则不会将文件内容删除。
注意:粉色文件为硬链接,黄色文件为软链接,当且仅当links为0时,才会将文件内容删除。
注意:只要将源文件f1改变,那么通过f2访问到的内容也改变(不管是硬链接于软链接)
理解:vim是从vi发展出来的文本编辑器,具有代码补全,编译及错误跳转等功能,在程序员中被广泛应用
主要功能:查看内容,编辑内容,保存内容
vim的三种模式:命令模式、输入模式、底线命令模式
命令:vim 文件
注意:若该文件存在则是修改该文件,若不存在则是新建该文件
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录、和的登陆shell等资源(linux中一切皆文件,添加用户说白了就是往某一个文件中写入用户信息)
查看当前在线的用户:who
查看自己现在登录用户名:whoami
语法:useradd [options] 用户名
options
查看所有用户:cat /etc/password
查看所有用户密码:cat /etc/shadow
注意:在这里面看到的用户密码是加密后的
语法:userdel [options] 用户名
options
语法:usermod [options] 用户名
options
[root@localhost home]#
root:当前用户名
@localhost:当前主机名
home:当前所在的目录
#:表示当前为root用户($表示当前为普通用户)
语法:su 用户名
注意:切换后使用新用户的工作环境
退出用户到root:exit
命令:passwd 用户名
锁定用户:passwd -l 用户名(锁定后该用户便不能登录)
清空用户密码:passwd -d 用户名(没有密码也不能登录)
前言:每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同的linux系统对用户组的规定有所不同,如linux下的用户组属于与他同名的用户组,这个用户组在创建用户时创建
命令:groupadd [options] 用户组名
options
注意:创建用户组可以得到一个组id,这个id是可以指定的
查看用户组:cat /etc/group
删除用户组:groupdel 用户组名
用户切换用户组:newgrp 组名(将当前用户的当前组切换为新组)
命令:groupmod [options] 用户组名
options
命令:df [options]
options
命令:du [options] 文件夹名
options
将外部设备挂载到mnt目录下以实现访问
挂载:mount dev/外部设备 mnt/目录名
卸载:umount -f /mnt/目录名
注意:-f表示强制卸载该设备
命令:free [options]
options
命令:ps [options]
options
常用:ps -aux(查看所有进程)
常用:ps -ef(相对于上面可以查询到父进程信息)
理解:管道符|就像管道一样,以上一个输出的结果来操作下一个命令
grep:查找文件中符合条件的字符串
findstr:查找文件中符合条件的字符串,只不过相对grep来说后面的字符串要加“”
eg:ps -aux | grep mysql(查找和mysql相关的进程)
eg:ps -aux | findstr "mysql"(查找和mysql相关的进程)
命令:pstree [options]
options
方法:在新建的进程任务后加&号
将打印进程变为后台进程:ping www.baidu.com >> baidu &
查看当前的后台进程:jobs
防止后台进程被挂起就可以在前面加nohup:nohup ping www.baidu.com >>baidu 2&1 &
一般类型杀死进程:kill pid号
较为强硬的杀进程:kill -15 pid号
强制杀进程:kill -9 pid号
注意:可以一次杀死多个进程,也就是pid号可以写多个
安装lrzsz 工具包:yum install lrzsz -y
电脑文件上传到虚拟机当前目录:rz
虚拟机文件上传到电脑:sz 文件名
将具体路径的文件拷贝到具体用户名,具体IP地址的主机内的具体目录中(送文件)
scp 具体路径的文件 用户名@IP地址:/需要拷贝到的具体目录/
将具体用户名,具体IP地址的主机内具体路径的文件拉到本机的要拷贝的文件目录中(拿文件)
scp 用户名@IP地址:/具体路径的文件 /需要拷贝到的文件目录
注意:拷贝文件夹需要在用户名前加-r
命令:tar [options] 压缩包名 -C 目标目录
options
解压这个压缩包到当前目录:tar -zxvf 压缩包名
解压这个压缩包到指定目录:tar -zxvf 压缩报名 -C 目标目录
将具体路径文件压缩并命名:tar -zcf 压缩后的文件名 具体路径下的文件名
注意:这里的c表示压缩
使用前:yum install zip unzip -y
压缩文件:zip -r 压缩后的文件名 具体路径下的文件名
解压文件:unzip 具体路径文件名
命令:rpm [options] 包名
options
安装:rpm -vih 包名
查看已安装的rpm包:rpm -qa
查看特定的rpm包:rpm -qa | grep 包名
卸载:rpm -e --nodeps 包名
首先下载wget软件:yum install wget -y
//进入源所在目录
cd /etc/yum.repos.d/
//将之前的源进行备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
//下载自己想要的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
//清楚旧的缓存数据
yum clean all
//建立新缓存
yum makecache
清空yum缓存:yum clean all
建立新缓存:yum makecache
查看ifconfig命令属于哪个包:yum search ifconfig
查看包的信息(是否安装):yum info net-tool
查询所有的rpm包:yum list
安装软件:yum -y install 软件名称(-y为所有的提示都为y)
卸载软件:yum remove 软件名称
重装软件:yum reinstall 软件名称
注意:
作用:用于切分文件
语法:cut -d '分隔符' -f1,2,3 文件名
options
理解:将文件名对应的文件按照分隔符的分割方式分割1,2,3列
对于test文件
[root@CentOS7-1 ~]# cat test
i am a dog : i am a boy : i am a paper : i am a pat
i am a cat : i am a gril : i am a pig : i am a cow
使用命令:cut -d ':' -f1,2,3 test
[root@CentOS7-1 ~]# cut -d ':' -f1,2,3 test
i am a dog : i am a boy : i am a paper
i am a cat : i am a gril : i am a pig
作用:对文本进行排序
语法:sort [options] 文件名
options
注意:若不加options,那么行就会按照第一列26字母顺序排列(若第一个字母一样则找第二个字母)
对于test文件
[root@CentOS7-1 ~]# cat test
hello : orange : bird : cat
apple : cow : cup : desk
deep : dog : app : country
computer : phone : bag : paper
使用命令:sort -t ':' -k3 -r test
[root@CentOS7-1 ~]# sort -t ':' -k3 -r test
apple : cow : cup : desk
hello : orange : bird : cat
computer : phone : bag : paper
deep : dog : app : country
作用:统计单词的数量
语法:wc [options] 文件名
options
对于test文件
[root@CentOS7-1 ~]# cat test
hello : orange : bird : cat : 21
apple : cow : cup : desk : 12
deep : dog : app : country : 11
computer : phone : bag : paper : 8
使用命令:wc -l -w -c test
[root@CentOS7-1 ~]# wc -l -w -c test
4 36 130 test
临时修改主机名:hostname 新主机名
长久修改主机名:vi /etc/hostname
修改主机域名:vi /etc/host
查看当前用户名:hostname
语法:uname [options]
注意:修改完主机名后应重启方可生效,但这个修改是临时的,重启电脑后就失效了
前言:可以通过ssh命令免密钥链接到其他主机
语法:ssh-keygen -t rsa -P '密码内容' -f ~/.ssh/id_rsa
注意:这里面的‘’表示默认密码生成密钥对,id_rsa决定了密钥对的命名(私钥:id_rsa,公钥:id_rsa.pub)
语法:ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP地址
主机1生成了密钥对后将公钥发给主机2,此时当主机1向主机2发起请求时,主机2会先检查/root/.ssh/authorized_keys有没有公钥,若有主机1公钥,那么会随机生成一个uuid通过公钥对uuid进行加密发给主机1,主机1收到加密的uuid,会用自己的私钥解密发给主机2,主机2对比,若相同则主机1可以免密登录主机2
修改网卡:vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
//设置IP地址为静态IP
BOOTPROTO=static
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
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
//是否开启网络配置
ONBOOT=yes
IPADDR=192.168.188.100
NETMASK=255.255.255.0
GATEWAY=192.168.188.2
DNS1=114.114.114.114
重启网卡:systemctl restart network.service
查看ip地址:ip addr
查看网络配置:ifconfig
查看IP地址是否可连通:ping 域名或IP地址
查看与目标IP指定的端口是否可连通:telent 目标IP地址 目标端口
获取对应网站信息:curl -X GET http://www.baidu.com
注意:使用前安装yum install telnet -y
命令:netstat [options]
options
查看所有3306端口的使用情况:
- netstat -ano | grep 3306
- netstat -ano | findstr “3306”
前言:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
手动开启防火墙:systemctl start firewalld.service
手动关闭防火墙:systemctl stop firewalld.service
关闭开机自启防火墙:systemctl disable firewalld.service
设置开机自启防火墙:systemctl enable firewalld.service
检查防火墙状态:systemctl status firewalld
命令:firewall-cmd [options]
options
重启防火墙:firewall-cmd --reload
查看防火墙运行状态:firewall-cmd --state
查看防火墙全部信息:firewall-cmd --list-all
检查防火墙开放的全部端口:firewall-cmd --list-ports(不是永久的)
检查80端口是否开放:firewall-cmd --query-port 80/tcp(不是永久的)
手动开放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
手动关闭80端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent
列出支持的zone:firewall-cmd --get-zone
列出支持的服务:firewall-cmd --get-services
查询ftp服务是否支持:firewall-cmd --query--service ftp
永久开放ftp服务:firewall-cmd -add-service=ftp --permanent
永久移除ftp服务:firewall-cmd --remove-service=ftp --permanent
注意:带有--permanent参数的命令只能操作带有--permanent参数的端口