开机会启动许多程序。
- Windows叫做"服务"(service)。
- 在Linux就叫做"守护进程"(daemon)。
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令
shutdown -r#重启
shutdown -h#延时关机
目录结构
[root@iZ2zebcqegh8n2n17381wpZ ~]# ls /
bin #bin是Binary的缩写, 这个目录存放着最经常使用的命令
dev #dev是Device(设备)的缩写, 存放的是Linux的外部设备
home #用户的主目录,在Linux中,每个用户都有一个自己的目录
media #linux系统会自动识别一些设备,例如U盘、光驱等等
opt #这是给主机额外安装软件所摆放的目录
root #该目录为系统管理员,也称作超级权限者的用户主目录
sbin #系统管理员使用的系统管理程序
sys #这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
usr #用户的很多应用程序和文件都放在这个目录下
boot #这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
etc #这个目录用来存放所有的系统管理所需要的配置文件和子目录
lib #这个目录里存放着系统最基本的动态连接共享库
lost+found #这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
mnt #系统提供该目录是为了让用户临时挂载别的文件系统的
proc #这个目录是一个虚拟的目录,它是系统内存的映射
run #是一个临时文件系统,存储系统启动以来的信息。
srv #该目录存放一些服务启动之后需要提取的数据
tmp #这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包
var #这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志 文件。
常用的基本命令
1.目录管理
-
绝对路径:从根目录开始到指定路径
-
相对路径:从当前目录开始到指定路径
- ls 命令
ls #列出当前路径的文件
ls -a #所有文件,包括隐藏文件
ls -l #显示文件属性,不包括隐藏文件
ls -al #参数可组合使用
- cd 命令
cd /usr/bin/ #绝对路径跳转
cd bin/ #相对路径跳转
cd .. #返回上一层路径
- pwd 命令
pwd #显示当前路径
- mkdir 创建目录
- rmdir 删除目录:只能删除空的目录,-p 参数递归删除
- cp 复制命令:cp 【文件】【目录路径】 —如果文件重复,就选则覆盖(y)或者放弃(n)
- rm 移除命令
rm -f #强制删除
rm -r #递归删除目录
rm -i #互动删除,询问是否删除
=================================
rm -rf /* #删库跑路
=================================
- mv 移动命令或重命名文件
mv 文件 目录
mv 文件名 文件新名字
mv -f #强制移动
mv -u #替换更新
2. 基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
ls -l 或 ll
- rwx r-x r-x 1 root root 964600 Aug 8 2019 bash
-
第一个字符表示文件类型
- 【d】为目录
- 【-】为文件
- 【l】连接文档
- 【b】装置文件里面的可供储存的接口设备
- 【c】装置文件里面的串行端口设备
-
第二三四个字符为属主权限【文件所有者】
- 【r】可读
- 【w】可写
- 【x】可执行
- 【-】不可操作
-
第五六七个字符为属组权限【所有者的同组用户】
-
第八九十个字符为【其他用户】
chgrp [-R] 属组名 文件名 #更改文件的属组属性,-R为递归操作
=============================================================
chown [–R] 属主名 文件名 #更改文件属主属性
chown [-R] 属主名:属组名 文件名 #同时更改
=============================================================
chmod #更改文件9个属性
r:4 w:2 x:1
rwx 7
rw- 6
-------------------------------
chmod 777 文件
3. 文件内容查看
- cat:第一行开始显示文件内容
- tac:最后一行开始显示
- nl:显示的时候,顺道输出行号
- more:一页一页的显示文件内容,带余下内容的【空格代表翻页,enter 代表向下看一行】
- less:一页一页的显示文件内容【空格下翻页,pageDown,pageUp键代表翻动页面!】【退出 q 命令】【查找字符串 /要查询的字符向下查询,向上查询使用?要查询的字符串,n 继续搜寻下一个,N 上寻找!】
- head:head 只看头几行 通过 -n 参数来控制显示几行
- tail:只看尾巴几行 -n 参数 要查看几行
- touch:创建文件
- echo:输入字符串,也可以输入到文件中
- ln:创建一个硬链接【文件修改,硬链接没有修改,相当于备份】
- ln -s:创建一个软链接【与文件一致,相当于快捷方式】
vim
-
命令模式:
- 【i】切换到输入模式,以输入字符
- 【x】删除当前光标所在处的字符
- 【:】切换到底线命令模式
-
输入模式:
- 【字符与SHIFT】输入字符
- 【Enter】换行
- 【Backsace】删除光标前一个字符
- 【Delete】删除光标后一个字符
- 【方向键】在文本中移动光标
- 【Home/End】移动光标到行首/行尾
- 【PageDown/Up】上/下翻页
- 【Insert】切换光标为输入/替换模式,光标将变成竖线/下划线
- 【Esc】退出输入模式,切换到命令模式
-
底线命令:
- 【w】保存文件
- 【q】退出程序
-
其他按键
- 【+/-】光标移动到非空格符的下一行/上一行
- 【数字 < space>】横向移动光标
- 【数字< Enter>】向下移动光标
- 【0/Home】移动到这一行的最前面字符处
- 【$/End】移动到这一行的最后面字符处
- 【G】移动到这个档案的最后一行
- 【nG】n 为数字。移动到这个档案的第 n 行
- 【gg】移动到这个档案的第一行,相当于 1G 啊
- 【/word】向光标之下寻找一个名称为 word 的字符串
- 【?word】向光标之上寻找一个字符串名称为 word 的字符串
- 【n】这个 n 是英文按键。代表重复前一个搜寻的动作
- 【N】这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作
- 【u】复原前一个动作
- 【set nu】显示行号,设定之后,会在每一行的前缀显示该行的行号
- 【set nonu】与 set nu 相反,为取消行号
4. 账户管理
- 用户管理
1.useradd 参数 用户名
-m # 自动创建这个用户的主目录 /home/wdd
-G # 给用户分配组
2. userdel -r wdd # 删除用户的时候将他的目录页一并删掉!
3. usermod -d #修改用户
4. 【root----username】su sername #切换用户
【username--- root】sudo su
5.【root】 passwd username:#修改密码
new password:
re password:
【username】passwd
(current) UNIX password:
new password: # 密码不能太过于简单!
re password:
6. passwd -l wdd # 锁定之后这个用户就不能登录了!
passwd -d wdd # 没有密码也不能登录!
- 用户组管理
1. groupadd wdd -g 345 #创建组wdd,id为345,没指定自加一
2. groupdel wdd #删除组
3. groupmod -g 666 -n wer wdd#修改wdd组的名字和id
4. # 登录当前用户
$ newgrp root #切换用户组
5. /etc/passwd
#用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell=
#这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在那里,可以看到属于哪一个组!
6. /etc/shadow #真正的加密后的用户口令字
7. /etc/group # 用户组的所有信息
5. 磁盘管理
1. df -h #列出文件系统整体的磁盘使用量
2. du -a
du -sm /* #检查磁盘空间使用量
3. mount /dev/wdd /mnt/wdd #外部设备/dev的wdd挂载到/mnt的wdd
4. umount -f [挂载位置] #强制卸载
6. 进程管理
Linux中一切皆文件
- 文件:读写执行------------查看,创建,删除,移动,复制,编辑
- 权限---------------用户、用户组
- 系统--------------磁盘,进程
- 每一个程序都是有自己的一个进程,每一个进程都有一个id号
- 每一个进程都有一个父进程
- 进程有两种存在方式:前台运行和后台运行
- 服务都是后台运行的,基本的程序都是前台运行的
1. ps -aux|grep mysql #查看所有的进程
#【-a】 显示当前终端运行的所有的进程信息(当前的进程一个)
#【-u】 以用户的信息显示进程
#【-x】 显示后台运行进程的参数!
#【|】 管道符
#【grep】查找文件中符合条件的字符串
2. ps -ef|grep mysql #查看父进程
3. pstree -pu #显示进程树
#【-p】父id
#【-u】用户组
4. kill -9 进程的id #结束进程
5. nohup #后台执行程序
安装环境
- rpm
- 解压缩
- yum在线安装
1. JDK
#检测当前系统是否存在java环境
java -version
-------------------------------
#检测JDK版本信息
rpm -qa|grep jdk
-------------------------------
#卸载JDK
rpm -e --nodeps jdk_
-------------------------------
#安装jdk
rpm -ivh rpm包
-------------------------------
#配置环境变量
vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME
export PATH CLASSPATH JAVA_HOME
-------------------------------
#让这个配置文件生效
source /etc/profile
# 开启防火墙端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
#查看端口开启
firewall-cmd --list-ports
2. Tomcat
#解压文件
tar -zxvf apache-tomcat-9.0.22.tar.gz
#运行测试
./startup.sh
./shotdown.sh
# 查看firewall服务状态
systemctl status firewalld
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#【--zone】作用域
#【--add-port=80/tcp】添加端口,格式为:端口/通讯协议
#【--permanent】永久生效,没有此参数重启后失效
# 重启
systemctl restart firewalld.service
3. Docker
#检测ContOS版本
cat /etc/redhat-release
#安装环境
yum -y install gcc
yum -y install gcc-c++
#【-y】所有的提示都为 y
#安装Docker
yum -y docker
4. Rides
1. sudo yum install redis#安装Redis
2. cp /etc/redis.conf /usr/bin/myconf #将配置文件复制到自己配置文件地方
3. vim redis.conf #编辑配置文件
bind 0.0.0.0 #允许远程连接
daemonize yes #默认后台运行
4. redis-server myconf/redis.conf#以自己的配置文件启动
5. redis-cli #redis 客户端
shutdown #关闭redis进程
exit #退出cli
6. ps -ef|grep redis #查看关于redis的进程