写这篇文章的目的:1、记录或回顾已经学习过的linux知识点;2.同时想分享给大家作为学习的参考。如果你觉得还不错,可以点赞关注哦!
文章目录
- 1. linux入门
- 1.1 多虚拟终端
- 1.2 目录结构
- 1.3 文件系统(面试题)
- 1.4 命令的组成格式
- 1.5 目录的创建
- 1.6 文件的创建
- 1.7 查看文件的详细信息
- 1.8 vim编辑器
- 1.9 查看文件内容
- 1.10 常用快捷键
- 1.11 输出内容到终端
- 1.12 特殊符号
- 1.13 文件的复制
- 1.14 文件的移动
- 1.15 文件的删除
- 1.16 查找命令
- 1.17 管道命令
- 1.18 grep命令
- 1.19 head和tail命令
- 1.20 sed命令
- 1.21 alias命令
- 1.22 which命令
- 1.23 scp命令
- 1.24 du命令(面试题)
- 1.25 top命令(面试题)
- 1.26 chattr命令
- 1.27 lsattr命令
- 1.28 时间同步
- 1.29 wget命令
- 1.30 开关机命令
- 1.31 apt命令
- 1.32 补充
- 1.33 基础部分相关练习题
- 2. linux进阶
- 2.1 vim
- 2.2 网络相关的命令
- 2.3 查看系统信息的命令
- 2.4 用户管理
- 2.5 文件与目录权限
- 2.6 PS1变量
- 2.7 tar解压命令
- 2.8 gzip解压命令
- 2.9 查看进程的状态
- 2.10 kill命令
- 2.11 killall命令
- 2.12 selinux防火墙
- 2.13 iptables防火墙
- 2.14 linux中文显示设置
- 2.15 df命令
- 2.16 tree命令
- 2.17 DNS相关
- 2.18 本地强制dns解析
- 2.19 计划任务crond服务
- 2.20 软件包管理
- 2.21 系统服务管理命令
可以使用ctrl + alt + f[1~7]命令切换终端。
/root:超级用户的家目
/etc:存放软件的配置文件。一般来说,通过yum(pip)自动安装的软件,配置文件一般都在/etc下。
mysql的配置文件在/etc/my.conf,redis的配置文件在/etc/redis.conf。
/sbin:存放可执行命令 文件
/bin:存放可执行命令 文件
/usr/local/bin:存放可执行命令 文件
/opt:存放额外安装的软件目录。比如我们要安装nginx和python3软件,正规的存放目录是/opt。
/tmp:存放临时文件,不重要的文件、文件夹
/var:存放系统日志文件居多,比如存放nginx,python,django等等日志
另外注意了,linux下绿色文件代表可执行文件,蓝色文件代表文件夹,白色文件代表普通文件。
用户在硬件存储设备中执行的文件建立,写入,读取,修改,转存与控制等操作都是依赖文件系统完成的。文件系统的作用是:合理规划硬盘,保证用户正常使用。
Linux系统支持数十种文件系统,常见文件系统如下:
cat /etc/fstab:检查linux的文件系统。fstab是用来存放文件系统的静态信息的文件。
面试的时候很可能让你写下来
[root@instance-mtfsf05r ~]#
普通的目录创建:mkdir a,创建一个a文件夹。
递归的创建:mkdir -p a/b c/d,在当前目录创建一个a文件夹和c文件夹,并且a文件中和c文件夹中分别有b和d文件夹。
递归创建几个文件夹:mkdir -p ./test/{a,b,c,d},创建test文件夹,里面有 a,b,c,d四个文件夹。直接创建 a,b,c,d 四个文件夹,可以使用mkdir {a,b,c,d},当然这不是递归创建了,记得有这样的语法格式。
thanlon@plus-book:~$ stat -c %a 1.txt
644
thanlon@plus-book:~$ stat -c %A 1.txt
-rw-r--r--
先看一下vi编辑器的用法,
所有的类 Unix 的系统都会内建 vi 文本编辑器,其它的文本编辑器则不一定存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的功能,可以主动地以数字颜色辨别语法的正确性,方便程序设计。相对于vi,vim可以自定义快捷键,也提供语法检测。
① cat命令
thanlon@plus-book:~$ cat >> love.txt << EOF
> THANLON
> LOVE
> KIKU
> EOF
thanlon@plus-book:~$ cat -En love.txt
1 THANLON$
2 LOVE$
3 KIKU$
cat 只适合查看比较短的文本,cat命令执行后会在内从中读取内容,展示在终端上。如果是一个超大的文件,可能会占用很大内存。如果我们cat一下二进制命令,如cat /usr/bin/ls,就会占用很多内存(可执行命令是已经被编译成机器码的那种命令)。看长文本使用more命令。
② more命令
查看文本会以百分比形式告知已经看了多少内容,命令是more /etc/passwd,使用回车键向下读取内容。按空格是翻页,按b是上一页。
tab:自动补全命令、文件夹和目录名
logout:退出当前会话
ctrl + l/clear/cls:清楚终端显示
ctrl + c:中止当前操作
linux提供的管道符号"|"将两条命令隔开,管道符左边命令的输出会作为管道复右边命令的输入:
常见的使用方法:
grep是global search regular expression(RE) and print out the line(全面搜索正则表达式并把行打印出来)的英文简写。它是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
head:显示文件前n行,默认前10行
tail: 显示文件后n行,默认后10行
sed命令和grep命令一样用于对文本进行过滤,还可以用于修改文本。sed命令的参数有,s表示替换指令,d表示删除指令,g表示全局替换。
使用alias可以给命令添加别名,
which命令用于查找命令的绝对路径,环境变量$ PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的孩子令。相似还有whereis和whoami。
scp命令用于linux之间复制文件和目录的命令,scp是secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。参数-r:递归复制整个目录;-v:详细方式输出,比如传输过程中输出debug信息;-q:不显示传输进度条;-C:允许压缩。
# 将本地Nginx目录上传到远程主机的/root/目录下,修改目录名为ssl (ssl目录没有会被创建)
scp -r Nginx/ root@106.12.115.136:/root/ssl
# 将本地Nginx目录上传到远程主机的/root/ssl/目录下,注意与上面的区别
scp -r Nginx/ root@106.12.115.136:/root/ssl/
du命令是用来显示目录或文件的大小,会显示指定目录或文件所占用的 磁盘空间。参数有-s:显示统计,-h是以K,M,G为单位显示,可读性强。
给文件加锁,只能写入数据,无法删除文件。
查看文件隐藏属性:lsattr tmp.txt
linux的date可以显示当前系统时间或者设置系统时间。-d参数(–date=string)显示指定时间而不是当前时间。在linux下系统时间和硬件时间不会自动同步,在linux运行过程中,系统时间和硬件时间以异步方式运行,互不干扰。硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持。在系统开机的时候,会从Bios中获取硬件时间,设置为系统时间。
apt是Advanced Packaging Tool, 是Ubuntu下的安装包理工具,ubuntu下大部分的软件安装/更新/卸载都是利用apt命令来 实现的。
sudo apt install 软件名
sudo apt remove 软件名
sudo apt update
sudo apt upgrade
cat /etc/os-release
free -m
/tmp/
目录下的所有目录/文件以及子目录/文件打包成filename.zip文件zip -qr filename.zip /tmp/
;从压缩文件中删除目录文件zip -dv filename.zip a.b
。unzip filename.zip
;解压到指定目录unzip filename.zip /tmp/
;压缩到指定目录,不覆盖原先的文件unzip -n filename.zip -d /tmp/
;覆盖原先的文件使用unzip -o filename.zip -d /tmp/
;查看压缩文件的目录但是不解压:unzip -v filename.zip
https://blog.csdn.net/Thanlon/article/details/101710508
vim是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方,vim 则做到了。vim 可以说是程序开发者的一项很好用的工具。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。vim 具有程序编辑功能,可以主动以字体颜色辨别语法的正确性,方便程序设计。
w或者e:移动光标到下一个单词
b:移动光标到上一个单词
数字0:移动到本行的开头
$:移动到光标到本行结尾
H:移动光标到屏幕首行
M:移动光标到屏幕的中间行
L:移动光标到屏幕的尾行
gg:移动光标到文档的首行
G:移动光标到文档的尾行
ctrl+f:上一页
ctrl+b:下一页
/root:在整篇文章中搜索root字符串,向下查找,按n查找下一个
?root:在整篇文章中搜索root字符串,向上查找,安n查找下一个
%:找到括号的另一半
yy:拷贝光标所在行
dd:删除光标的所在行
D:删除当前光标到行尾的内容
dG:删除当前行到文档尾部的内容
p:粘贴yy操作所复制的内容
x:删除光标所在的字符
u:撤销上一步操作
3yy:拷贝光标所在的3行
5dd:删除光标所在的5行
③ 输入模式
在命令模式下按i o a即可进入输入模式。
④ 底线命令模式
:q:退出
:q!:强制退出
:w:生效写入的内容
:wq!:强制写入退出
:set num或set number:显示行号
:set nonu或set nonumbeer:取消行号
:数字:调到数字那行
:!command:暂时离开vim指令模式,执行command的结果,如:!ip a表示临时看一下ip信息,然后回到vim
随时按下ESC可以退出底线命令模式,进入命令模式。
如果你的电脑上没有ifconfig,只有ip addr,则需要通过yum -y install net-tools 来安装。
who1:网卡的代号
lo:回环地址loopback
inet:IPv4的ip地址
netmask:子网掩码
broadcast:广播地址
RX/TX:流量发/收情况,RX是发送(transport),TX(receive)
packets:数据包数
errors:数据包错误数
dropped:数据包有问题被丢弃的数量
collisions:数据包碰撞情况,数值大表示网络状况差
- t或--tcp:显示TCP传输协议的连接状态
- u或--udp:显示UDP传输协议的连接状态
- n或--numeric:直接使用ip地址,而不通过域名服务器
- l或--listening:显示监控中的服务器Socket
- p或--programs:显示正在使用Socket的程序识别码和程序名称
- a或--all:显示所有连线中的Socket
speedtest-cli
,centos中需要安装speedtest-cli,可以执行pip install git+https://github.com/sivel/speedtest-cli.git
,使用git从git仓库中下载speedtest-cli,要保证系统已经安装git和python的pip模块。thanlon@thanlon-master:~$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from China Telecom Shanghai (101.92.63.73)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Chinamobile-5G (Shanghai) [19.64 km]: 12.642 ms
Testing download speed................................................................................
Download: 4.60 Mbit/s
Testing upload speed......................................................................................................
Upload: 2.01 Mbit/s
/etc/passwd存放用户组信息,/etc/shadow存放用户密码,/etc/group存放用户组。注意:超级用户 root 切换到普通用户不需要密码;普通用户切换到 root 需要输入密码;普通用户较小,只能查看信息;$ 符号是普通用户的命令提示符,# 是超级用户的命令提示符。
sudo 【选项】【参数】
-b:在后台执行指令
-h:显示帮助
-H:将HOME环境变量设置为新身份的HEMO环境变量
-K:结束密码的有效期限,也就是下次执行sudo时便需要输入密码
-l:列出目前用户可执行与无法执行的指令
-p:改变询问密码的提示符
-s:执行指定的shell
-u<用户>:以指定的用户作为新的身份,若不加此参数,则预设以root作为新的身份
-v:延长密码有效期5分钟
-V:显示版本信息
sudo命令应用在什么时候应用?当用户权限小而想要执行更多权限的时候,可以以root身份去运行。这里由于配置sudo必须编辑/etc/sudoers文件,并且只有root才能修改。我们可以通过《
$ visudo命令直接编辑sudoers文件,使用这个命令还可以检查语法,比直接使用vim编辑更加安全。找到root ALL=(ALL:ALL) ALL,可以在其下面为普通用户thanlon添加在任何地方执行任何命令。
# User privilege specification
root ALL=(ALL:ALL) ALL
thalon ALL=(ALL:ALL) ALL # 允许thanlon在任何地方执行任何命令
在linux中,每个文件都有所有者和所属组,并且规定了文件的所有者,所属组以及其他人对文件的可读、可写、可执行权限。对于目录的权限来说,可读是读取目录的列表,可写是在目录内新增、修改和删除文件,可执行表示可以进入目录。
① 查看文件的权限
thanlon@plus-book:~$ ls -l tmp.txt
-rwxrwxrwx 1 thanlon thanlon 30 9月 19 19:38 tmp.txt
② 文件类型
- :一般文件
d:文件夹
l:软链接(快捷方式)
b:块设备,存储媒体文件为主
c:代表键盘、鼠标等设备
③ 文件权限
r:read是可读,可以用cat等命令查看
w:write是可写,可以编辑或者删除这个文件
x:executable可执行
④ 目录权限
r:可以对此目录执行ls列出所有文件
w:可以在这个目录创建文件
x:可以cd进入这个目录或者查看详细信息
⑦ 修改文件权限
⑧ 软链接
软链接也叫做符号链接,类似于windows的快捷方式,常用于安装软件的快捷方式配置python、nginx等。
PS1用于控制命令提示符,可修改:
PS1='[\u@\h \W \t]\$' # 可以添加一个时间
PS1='[\u@\h \w]\$' # 可以展示绝对路径
这个操作后,重启后变量配置会丢失,所以写入到系统的配置文件中,每次登录都加载。将“PS1=’[\u@\h \W \t]$’”写入到/etc/profile这个用户配置文件最下面一行中。systemctl stop firewalld这条命令可以停止防火墙。
tar命令是用来压缩和解压文件,tar本身不具有压缩功能,它是调用压缩功能实现的。
常用的参数:
-c或--create:建立新的备份文件,压缩文件使用这个参数
-x或--extract或--get:从备份文件中还原文件,解压缩使用这个参数
-z或--gzip或--ungzip:通过gzip指令处理备份文件
-f<备份文件>或--file=<备份文件>:指定备份文件
-v:显示操作过程
-j:支持bzip2解压文件
gzip用来压缩文件,是一个使用广泛的压缩程序,被压缩的以“.gz”扩展名。gzip可以压缩较大的文件,以60%~70%压缩率来节省空间,更多的使用的是tar。
-d或--decompress或----uncompress:加开压缩文件
-f或--force:强行压缩文件
-h或help:在线帮助
-l或--list:列出压缩文件的相关信息
-L或--license:显示版本与权限信息
-r或--recursive:递归处理,将指定目录下的所有文件以及子文件目录一并处理
-v或--verbose:显示指令执行过程
查看8000端口有没有正常启动,使用netstat -tunlp|grep 8000,那么查看进程有没有运行,可以使用ps相关命令。
格式:ps 参数
-a:显示所有进程
-u:用户以及其他详细信息
-x:显示没有控制终端的进程
kill命令用来删除执行中的程序,kill可以将指定的信息送至程序。
kill命令相关的参数:
-a:当处理当前进程时,不限制命令和进程号的对应关系
-l <信号编号>:若不加<信号编号>选项,则-l参数会列出全部的信息名称
-p:指kill命令只打印相关进程的进程号,而不发送任何信号
-s <信号名称或编号>:指定要送出的信息
-u:指定用户
只有9中信号可以无条件终止进程,其它信号进程都有权力忽略,下面是常用的信号:
HUP 1:终端断线
INT 2:中断(同Ctrl + C)
QUIT 3:退出(同Ctrl + \)
TERM 15:终止
KILL 9:强制终止
CONT 18:继续(与STOP相反,fg/bg命令)
STOP 19:暂停(同Ctrl + Z)
kill进程前可以通过ps -ef查看进程id等信息:
用户名 pid 进程执行命令
root 1041 1 0 21:44 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
比如上面的进程id是1041,可以执行kill 1041,如果遇到杀不死的进程,可以执行kill -9 1041,-9是发给kill命令的一个信号,强制杀死信号。
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务下横徐带来的全部进程。简单来讲,killall命令一次性可以杀死多个有依赖的进程。
例如,nginx启动后有两个进程,可以直接执行killall nginx
防火墙可以防止服务器被恶意攻击,保护系统资源。比如,恶意攻击你的端口进程等。简而言之,防火墙就是定义一些规则,控制那些ip可以访问哪些ip不可以访问。定义一些当前服务器允许那些端口可以被访问呢,哪些端口不可以被访问。selinux是linux内置防火墙、iptables和firewalld是linux的软件防火墙,可能还会有一些硬件防火墙。
大多数ssh连接不上服务器,都是因为服务器防火墙阻挡了,这里介绍linux内置的防火墙selinux。其配置文件在/etc/selinux/config
centos7默认使用firwalld作为防火墙,关闭firwalld的过程如下:
systemctl status firewalld # 查看防火墙状体
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 关闭防火墙开机启动
systemctl is-enabled firewalld.service # 检查防火墙是否启动
设置linux中文显示,可以防止linux中中文乱码。linux下常用的字符集有GBK和UTF-8,GBK实际上企业使用得比较少,广泛使用UTF-8。
# 查看系统当前字符集
echo $LANG
# 修改字符集
export LANG=en_US.utf8
# 或者这样修改字符集
1、修改配置文件vim /etc/locale.conf
LANG="zh_CN.UTF-8"
2、使生效
source /etc/locale.conf
3、更改后查看系统语言变量
locale
如果出现乱码,则:
1、系统字符集utf8
2、xshell字符集utf8
3、文件字符集一致zh_CN.UTF-8
df命令用于显示磁盘分区上可使用的磁盘空间,默认显示单位为KB。可以使用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
常见的参数:
-h或--human-readable:以可读向较高的方式来显示信息
-k或--kilobytes:指定区块大小为1024字节
-T或--print-type:显示文件系统的类型
--help:显示帮助
--version:显示版本信息
以树状图显示文档目录结构,tree命令的参数:
-a:显示所有文件和目录;
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各种类型;
-d:先是目录名称而非内容;
-D:列出文件或目录的更改时间;
-f:在每个文件或目录之前,显示完整的相对路径名称;
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
-i:不以阶梯状列出文件和目录名称;
-l:<范本样式> 不显示符号范本样式的文件或目录名称;
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
-n:不在文件和目录清单加上色彩;
-N:直接列出文件和目录名称,包括控制字符;
-p:列出权限标示;
-P:<范本样式> 只显示符合范本样式的文件和目录名称;
-q:用“?”号取代控制字符,列出文件和目录名称;
-s:列出文件和目录大小;
-t:用文件和目录的更改时间排序;
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
DNS(Domain Name System)是域名解析系统,万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。linux系统上dns配置文件是/etc/resolv.conf
[root@instance-mtfsf05r ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.16.0.3
nameserver 172.16.0.2
options rotate timeout:1
可以通过nslookup解析域名:nslookup www.blueflags.cn,nslookup是一个常用的域名查询工具。
本地解析配置文件在/etc/hosts,windows系统在C:\Windows\System32\drivers\etc\host,可通过修改该配置文件来配置主机对应的域名。强制dns解析常用于开发测试,自定义域名。
[root@instance-mtfsf05r ~]# cat /etc/hosts
ip 主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.4 instance-mtfsf05r instance-mtfsf05r.novalocal
106.12.115.131 www.thanlon.cn
① 计划任务
后台运行,到了预定的时间就会自动执行的任务,前提是:事先手动将计划任务设定好,这就用到了crond服务。
② crond服务相关的软件包
[root@instance-mtfsf05r ~]# rpm -qa | grep cron
cronie-1.4.11-23.el7.x86_64
cronie-anacron-1.4.11-23.el7.x86_64
crontabs-1.11-6.20121102git.el7.noarch
这些包在最小化安装系统时就已经安装了,并且会开机自启动crond服务,并为我们提供好编写计划任务的crontab命令。
③ crontab命令
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似。
crontab命令的语法:
crontab (选项)(参数)
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
注意:写计划任务时,命令必须加上绝对路径,否则会出现这种情况:从日志中看,确实触发了计划任务的执行,但是命令却没有执行成功,比如* * * * * reboot就会出现这种情况,需要将reboot写成/usr/sbin/reboot
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
crontab任务配置基本格式:
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
30 08 * * * 每天8.30去上班
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
*/3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com 每隔三分钟执行下时间同步
注意:command部分一定要用绝对路径来写
下面是一些示例:
# 每分钟执行一次命令
* * * * * command
# 每小时的3,15分组执行命令
3,15 * * * * command
# 在上午8-11点的第3和第15分钟执行
3,15 8-11 * * * command
# 每晚21:30执行命令
30 21 * * * command
# 每周六、日的1:30执行命令
30 1 * * 6,0 command
# 每周一到周五的凌晨1点,清空/tmp目录的所有文件(通过which命令查看rm的绝对路径)
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
# 每晚的21:30重启nginx
30 21 * * * /opt/nginx/sbin/nginx -s reload
# 每月的1,10,22日的4:45重启nginx
45 4 1,10,22 * * /opt/nginx/sbin/nginx -s reload
# 每个星期一的上午8点到11点的第3和15分钟执行命令
3,15 8-11 * * 1 command
将crontab规则写入到crontab文件中:
通过命令$ crontab -e打开文件,实际使用的是vi打开,然后写入:
* * * * * /usr/bin/echo 'thanlon' >> /tmp/thanlon.txt
查看计划任务:$ crontab -l
thanlon@plus-book:~$ tail -f /tmp/thanlon.txt
thanlon
thanlon
thanlon
通过$ tail -f /tmp/thanlon.txt 可以看到每分钟向thanlon.txt文件追加“thanlon”
① 使用rpm命令管理,需要手动处理关系依赖。rpm相关的命令:
较小软件的安装可以选择使用rpm安装,比如安装lrzsz:
# 下载lrzsz的rpm包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
# 安装rpm包
rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
② yum命令
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
通过yum自动安装软件,自动处理依赖关系。yum安装软件,其实就是在线搜索一个rpm包,然后自动rpm -ivh 包.rpm,比如安装redis:yum install redis。yum提供了查找、安装、删除某一个或者一组甚至全部软件包的命令,而且命令简洁而又好记。
yum(选项)(参数)
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
部分常用的命令包括:
③ yum源的配置
使用cd /etc/yum.repos.d/进入yum.repos.d目录,目录下的*.repo结尾的文件是yum源文件。如果我们需要修改yum源为aliyun的yum源仓库,可以到阿里巴巴开源镜像站找到centos标签点击"帮助":
在linux上执行上面的命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
下载阿里巴巴的yum源文件。接下来要清空yum的缓存:$ yum clean all。一般还需要安装linux的额外仓库源,也就是epel源,继续在阿里云源上找,找到epel标签。在帮助里面找到:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
将这一条命令放在linux中执行,安装epel源。最后,为了便于加速下载,需要生成yum缓存:yum makecache
系统服务管理命令 systemctl,只有在 centos7 下才有,centos6 中的是 service 命令。centos6 中的service的使用:$ service network start,$ service network stop,$ service network restart。
下面是使用systemctl命令来管理redis服务,,注意使用只有通过yum安装的软件,才可以使用systemctl命令去管理:
PS:我的站点:https://www.blueflags.cn