useradd -d指定目录
删除用户milan,但是要保留家目录,userdelmilan
删除用户以及用户主目录,比如tom,userdel-r tom
修改用户密码 passwd 用户名
创建一个组mojiao
把zwj放入mojiao
指令:usermod-g mojiao zwj
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
每行含义:组名:口令:组标识号:组内用户列表
cd ~或者cd回到自己的家目录
cd..回到当前目录的上一级目录
mkdir创建目录
-p创建多级目录
rmdir删除目录
rmdir[选项]要删除的空目录
rmdir删除的是空目录,如果目录下有内容时无法删除的
如果删除非空目录使用rm-rf
touch创建空文件
touch 文件名
-r递归复制整个文件夹
mv源目录与新目录相同(重命名)
mv/temp/movefile/targetFolder(移动文件)
cat指令 查看文件内容但不能修改
cat[选项]要查看的文件
-n:显示行号
cat只能浏览文件,而不能修复文件,为了浏览方便,一般会带上管道命令|more
cat -n/etc/profile |more [进行]
more要查看的文件
空格键代表向下翻一页
enter代表向下翻一行
q代表立即离开more,不再显示该文件内容
ctrl+f向下滚动一屏
ctrl+b返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号
less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各位显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
操作说明
空白键 向下翻动一页
pagedown 向下反动一页
pageup 向上翻动一页
/字串 向下搜寻【字串】的功能;n:向下查找;N:向上查找
?字串 向上搜寻【字串】的功能;n:向上查找;N向下查找
q 离开less这个程序
echo指令
echo输出内容到控制台
echo [选项][输出内容]
head指令
head用于显示文件的开头部分内容,默认情况下显示文件的前十行内容
head文件名 查看文件头10行内容
head -n 5 文件名 查看文件头5行内容 5可以是任意行数
tail指令
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容
tail 文件名 查看文件尾10行内容
tail -n 5 文件名 查看文件尾5行内容,5可以是任意行数
tail -f 文件名 实时追踪该文档的所有更新
指令
追加
ls -l >文件 列表的内容写入a.txt中(覆盖写)
ls -al»文件列表的内容追加到文件aa.txt的末尾
cat文件1>文件2 将文件1的内容覆盖到文件2
echo “内容”»文件
ls -l /home>/home/info.txt如果info.txt没有,则会创建
ln 指令 软连接也称符号链接类似于windows的快捷方式
ln -s[源文件或目录][软链接名] 给源文件创建一个软连接
history指令
查看已执行过历史命令,也可以执行历史指令
date指令-显示当前日期
date 显示当前时间
date+%Y 显示当前年份
date+%m 显示当前月份
date+%d 显示当前是哪一天
date “+%Y-%m-%d%H:%M:%S” 显示年月日时分秒
设置日期 date -s字符串时间
cal指令
cal [选项]
ls用法
ls [选项] [文件]
【 -f 】不排序目录内容;按它们在磁盘上存储的顺序列出。同时启 动“ -a ”选项
【 -1 】每行显示一条记录,即单列展示数据
【 -l 】长列表显示文件和目录,包括文件类型、大小、修改日期和时间、权限等信息
【 -lh 】人性化显示文件大小
【 -F 】 使用不同特殊字符归类不同的文件类型
【 -ld 】长列表格式列出某个目录的信息
【 -R 】递归地列出子目录的内容
【 -ltr 】将长列表格式按文件或目录的修改时间 倒序地 列出文件和目录
【 -ls 】将长列表格式按文件大小顺序列出文件和目录
【 -a 】显示包括隐藏文件或目录在内的所有文件和目录,包括 “.“(当前目录),“…“(父目录
【 -A 】显示包括隐藏文件或目录在内的所有文件和目录,但不列出 “.” (目前目录)及 “…” (父目录)
【 -i 】显示文件或目录的 inode 编号,可能会用在系统维护操作时
【 -n 】显示uid 和 gid ,代替显示所有者和用户组
find[搜索范围] [选项]
-name按照指定的文件名查找模式查找文件
-user查找属于指定用户名所有文件
-size按照指定的文件大小查找文件+n大于 -n小于 n等于不加n也是等于 单位有k,M,G
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
grep[选项]查找内容 源文件
-n显示匹配行及行号。
-i忽略字母大小写
gzip文件压缩文件 只能将文件压缩为*.gz
gunzip文件.gz解压缩文件命令
zip [选项]XXX.zip 压缩内容
unzip[选项]XXX.zip 解压缩文件
zip常用选项
-r:递归压缩,即压缩目录
gunzip常用选项
-d指定解压后文件的存放目录
tar[选项]XXX.tar.gz 打包内容
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解压.tar文件
-C解压到的目录
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
查看文件的所有者
ls -ahl
修改文件所有者
chown 用户名文件名
-R递归修改
基本指令
groupadd 组名
文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
查看文件或目录所在组
ls -ahl 文件/目录名
修改文件所在组
chgrp 新组名 文件名
-R 递归修改
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组
在添加用户时,可以指定将该用户添加到那个组中,同样的用root的管理权限可以改变某个用户所在的组
1.usermod -g 新组名 用户名
2.usermod -d 目录名 用户名 改变该用户登录的初始目录 用户需要有到新目录的权限
ls-l中显示的内容如下:
-rw-r–r–.1 root root 0 6月 1 17:39 pig.txt
0-9位说明
1.第0位确定文件类型(d,-,l,c,b)
l是链接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限–User
3.第4-6位确定所属组(同用户组的)拥有该文件的权限,–Group
4.第7-9位确定其他用户拥有该文件的权限–Other
第一种方式:+、-、=变更权限
u:所有者g:所有组 o:其他人 a:所有人(u、g、o的总和)
1)chmodu=rwx,g=rx,o=x 文件/目录名
2)chmodo+w 文件/目录名(给当前文件的其他用户单独添加写权限)
3)chmoda-x 文件/目录名(给当前文件的所有用户删除执行权限)
第二种方式:通过数字变更权限
r=4,w=2,x=1rwx=4+2+1=7
chmodu=rwx,g=rx,o=x 文件/目录名(相当于chmod 751 文件目录名)
chown新所有者:新组 文件/目录 改变所有者和所在组
-R如果是目录,则使其下所有子文件或目录递归生效
crontab[选项]
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab
参数细节说明

如*/1****ls-l /etc/ > /tmp/to.txt 意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt
ps -ef查看当前运行的所有进程
ps -ef |grep atd 检查atd是否在运行
at命令选项

Ctrl+D结束at命令的输入,输入两次才能退出
虚拟机添加硬盘步骤2
分区命令 fdisk/dev/sdb
开始对/sdb分区
m 显示命令列表
p 显示磁盘分区同fdisk -l
n 新增分区
d 删除分区
w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q
虚拟机添加硬盘步骤3
其中ext4是分区类型
虚拟机添加硬盘步骤4
挂载:将一个分区与一个目录联系起来
mount 设备名称挂载目录
例如:mount/dev/sdb1 /newdisk
卸载 umount设备名称或者挂载目录
例如:umount/dev/sdb1或者umount /newdisk
虚拟机添加硬盘步骤5
永久挂载:通过修改/etc/fstab实现挂载
添加完成后执行mount -a 即刻生效
磁盘整体使用情况查询
df -h
查询指定目录的磁盘使用情况
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1子目录深度
-c列出明细的同时,增加汇总值


- 查看linux的网络配置(ifconfig指令)

- 使用ping指令来判断网络连通性

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE="Ethernet" #网卡类型(通常是Ethemet以太网)
PROXY_METHOD="none" #代理方式:为关闭状态
BROWSER_ONLY="no" #只是浏览器:否
BOOTPROTO="static" #网卡的引导协议【static:静态IP dhcp:动态IP none:不指定,不指定容易出现各种各样的网络受限】
DEFROUTE="yes" #默认路由
IPV4_FAILURE_FATAL="no" #是否开启IPV4致命错误检测
IPV6INIT="yes" #IPV6是否自动初始化:是(现在还未用到IPV6,不会有任何影响)
IPV6_AUTOCONF="yes" #IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)
IPV6_DEFROUTE="yes" #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
IPV6_FAILURE_FATAL="no" #是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE="stable-privacy" #IPV6地址生成模型
NAME="ens33" #网卡物理设备名称
UUID="ab60d501-535b-49f5-a76b-3336a4120f64"#通用唯一识别码,每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网
DEVICE="ens33" #网卡设备名称,必须和‘NAME’值一样
ONBOOT="yes" #是否开机启动,要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
IPADDR=192.168.137.129 # 本机IP
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.137.2 #默认网关
DNS1=8.8.8.8#
DNS2=8.8.8.5#
ZONE=public#
[root@localhost network-scripts]# service network restart #重启网卡
Restarting network (via systemctl): [ 确定 ]
[root@localhost network-scripts]#
设置主机名和hosts映射
设置主机名
- 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
- 指令hostname 查看主机名
- 修改文件在 /etc/hostname指定
- 修改后重启生效
设置hosts映射
作用:通过主机名找到(比如ping)某个linux系统
- Windows
在C:\Windows\System32\driver\etc\hosts文件指定即可
案例:192.168.200.130 admin-pc - Linux
在/etc/hosts文件指定
案例:192.168.200.1 admin-pc
主机名解析过程分析(Hosts、DNS)
- hosts是什么
一个文本文件,用来记录IP和HOSTNAME(主机名)的映射关系 - DNS
- DNS,就是Domain Name System的缩写,翻译过来就是域名系统
- 是互联网上作为域名和IP地址相互映射的一个分布式数据库
PS命令 显示系统执行的进程
基本介绍
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况,可以不加任何参数
ps-a 显示当前终端的所有进程信息
ps-u 以用户的格式显示进程信息
ps-x 显示后台进程运行的参数
ps详解
- 指令:ps -aux|grep sshd,比如我看看有没有sshd服务
- 指令说明
- System V展示风格
- USER 用户名称
- PID 进程号
- %CPU进程占用CPU的百分比
- %MEM 进程占用物理内存的百分比
- VSZ 进程占用的虚拟内存大小(单位:KB)
- RSS 进程占用的物理内存大小(单位:KB)
- TT 终端名称,缩写
- STAT 进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止
- STARTED 进程的启动时间
- TIME CPU时间,即进程使用CPU的总时间
- COMMAND 启动进程所用的命令和参数,如果过长会被截断显示

- kill [选项]进程号
- killall 进程名称
-9:表示强迫进程立即停止
终止多个gedit,演示 killall gedit
查看进程树pstree
pstree[选项],可以更加直观的来看进程信息
常用选项
-p:显示进程的pid
-u:显示进程的所属用户
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,防火墙等),因此我们又称为守护进程,是linux中非常重要的知识点
- server管理指令
- service 服务名[start|stop|restart|reload|status]
- 在Centos7.0后很多服务不再使用service,而是systemctl
- service指令管理的服务在/etc/init.d查看

- 服务的运行级别(runlevel)
- Linux系统有7种运行级别(runlevel):常用的是3跟5
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
- 开机的流程说明:

l 设置运行级别
systemctl get-default #获取当前的运行级别
systemctl set-default xxx #设置默认的运行级别为xxx
目前一般使用级别3跟5
multi-user.target:analogous to runlevel 3
systemctl set-default multi-user.target
graphical.target:analogous to runlevel 5
init 0
l systemctl管理指令
○ systemctl设置服务的自启动状态
1.systemctl list-unit-files [|grep服务名] 查看服务开机启动状态,grep可以进行过滤
2.systemctl enable 服务名 (设置服务开机启动)
3.systemctl disable 服务名 (关闭服务开机启动)
4.systemctl is-enabled 服务名 (查询某个服务是否是自启动的)
l firewall指令
○ 打开端口:firewall-cmd –permanent –add-port=端口号/协议
关闭端口:firewall-cmd –permanent –remove-port=端口号/协议
重新载入:firewall-cmd –reload
查询端口是否开放:firewall-cmd –query-port=端口/协议
top与ps命令很相似,它们都用来显示正在执行的惊醒。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
- 基本语法
top[选项]
- 选项说明


- 交互操作说明:


- 查看系统网络情况netstat
- 基本语法
netstat[选项]
- 选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
- 应用案例
请查看服务名为sshd服务的信息
- 检测主机链接命令ping
ping是一种网络监测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障
查询已安装的rpm列表 rpm -qa|grep xx
- rpm包名基本格式
一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64
表示centos7.x的64位系统
如果是i686、i386表示32位系统、noarch表示通用
- rpm包的其他查询指令
rpm -qa:查询所安装的所有rpm软件包
rpm -qa|more
rpm -qa| grep X[rpm -qa |grep firefox]
rpm -q 软件包名:查询软件包是否安装
案例:rpm -q |firefox
rpm -qi软件包名:查询软件包信息
案例:rpm -qi firefox
rpm -ql 软件包名:查询软件包中的文件
比如:rpm -ql firefox
rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
- 参数说明
i=install 安装
v=verbose提示
h=hash 进度条
- 卸载rpm包
rpm -e RPM包的名称
如果其他软件包依赖于你要卸载的软件包,卸载时则会产生错误信息
如 rpm-e foo
removing these packages would breakdependencies:foo is needed by bar-1.0-1
如果我们就是要删除foo这个软件包,可以增加参数–nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如 rpm-e –nodeps foo
yum list|grep xx软件列表
安装指定的yum包
yum install xxx下载安装
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-6.repo](https://mirrors.aliyun.com/repo/Centos-6.repo)
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-6.repo](https://mirrors.aliyun.com/repo/Centos-6.repo)
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-7.repo](https://mirrors.aliyun.com/repo/Centos-7.repo)
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-7.repo](https://mirrors.aliyun.com/repo/Centos-7.repo)
CentOS 8
wget -O /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-8.repo](https://mirrors.aliyun.com/repo/Centos-8.repo)
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-8.repo](https://mirrors.aliyun.com/repo/Centos-8.repo)
- 运行 yum makecache 生成缓存
- 其他
非阿里云ECS用户会出现 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’ 信息,不影响使用。用户也可自行修改相关配置: eg:
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
获取对应版本的CentOS-Base.repo 到/etc/yum.repos.d/目录
各版本源配置列表
CentOS5
wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.cloud.tencent.com/repo/centos5_base.repo](http://mirrors.cloud.tencent.com/repo/centos5_base.repo)
CentOS6
wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.cloud.tencent.com/repo/centos6_base.repo](http://mirrors.cloud.tencent.com/repo/centos6_base.repo)
CentOS7
wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.cloud.tencent.com/repo/centos7_base.repo](http://mirrors.cloud.tencent.com/repo/centos7_base.repo)
CentOS8
wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.cloud.tencent.com/repo/centos8_base.repo](http://mirrors.cloud.tencent.com/repo/centos8_base.repo)
更新缓存
yum clean all
yum makecache
命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效
<h2 id="tEfI5">注册系统服务</h2>
<font style="color:rgb(86, 86, 86);">到</font>_<font style="color:rgb(86, 86, 86);">/usr/lib/systemd/system</font>_<font style="color:rgb(86, 86, 86);">目录下。</font>
<font style="color:rgb(86, 86, 86);">单击新建,选择新建空白文件,文件名填 </font>_<font style="color:rgb(86, 86, 86);">cloudreve.service</font>_<font style="color:rgb(86, 86, 86);"> 。</font>
<font style="color:rgb(86, 86, 86);">将下文 </font>_<font style="color:rgb(86, 86, 86);">PATH_TO_CLOUDREVE</font>_<font style="color:rgb(86, 86, 86);"> 更换为程序所在目录,复制到新建的文件中并</font>**<font style="color:rgb(86, 86, 86);">保存</font>**<font style="color:rgb(86, 86, 86);">。</font>
```basic
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target
[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target
然后在服务器中先后执行下面的命令
# 更新配置
systemctl daemon-reload
# 启动服务
systemctl start cloudreve
# 设置开机启动
systemctl enable cloudreve