目录
此系列博客为大三下期末小学期课程大数据疫情分析平台项目学习学习笔记,内容参考中共教育讲义文件
- Linux目录结构
- Linux快捷键
- Linux命令
- 命令分类
- 快捷键
- 基本命令
- 常用命令
- 用户管理命令
- 文件权限命令
- 磁盘大小查看命令
- 搜索查找命令
- 解压缩命令
- 后台服务管理类命令
- 上传下载类
- 软件安装卸载命令
- crontab系统定时任务
一、Linux目录结构
以一般的Linux系统CentOS为例,系统目录有
Linux每个目录都有自己约定俗成的用处,或者说Linux的不同文件分门别类地放到了专门的文件夹,虽然Linux没有强制性的要求我们必须按照这些规定放置文件,但是为了方便起见,还是遵守约定的好。
- /bin:是Binary的缩写,这个目录存放着系统必备执行命令,比如ls、cat
- /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
- /dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的,比如光驱就被映射为/dev/cdrom文件。
- /etc:所有的系统管理所需要的配置文件和子目录,例如网络配置
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,例如我们在创建完普通用户hadoop后,就会在/home下创建一个子目录/home/hadoop,作为hadoop用户的家目录,但是注意root的家不在这里,在其家是/root。
- /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 本科 计算机专业
- /lib64:开机时常用的动态链接库64位,bin及sbin指令也会调用对应的lib库。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认该目录是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /run: 系统运行时所产生的信息,以前放置在/var/run中,后来拆分成独立的/run目录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv:service缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp:这个目录是应用程序存放一些临时文件的,类似于Windows的回收站,里面的内容会定期删除。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,例如各种日志文件。
二、Linux命令
1、命令分类
可以分为两种命令,可以使用type xxx
查看是哪种命令
- 内部命令:也称作内置命令,随着Linux系统启动而加载到内存中,是常驻内存的,调用速度快,执行效率高。
- 外部命令:在Linux系统启动时并不随系统一起被加载到内存中,而是在需要时才将其从磁盘加载到内存中,调用速度相对较慢。
2、快捷键
语法 功能描述
-
ctrl + c
停止进程 -
ctrl + l
清屏 -
tab键
自动补全命令 -
上下键
查找执行过的命令
3、基本命令
(1)who
-
whoami
显示自身用户名称 -
who am i
显示登录用户的用户名 -
who
看当前有哪些用户登录到了本台机器上
(2)pwd
-
pwd
显示当前工作目录的绝对路径
(3)cd
-
cd 绝对路径
切换到所给的绝对路径下 -
cd 相对路径
切换到所给的相对路径下 -
cd ~
或者cd
回到自己的家目录 -
cd -
回到上一次所在目录 -
cd ..
回到当前目录的上一级目录
(4)ifconfig
-
ifconfig
查看网络配置信息
(5)history
-
history
查看历史命令(1000条)
4、常用命令
1、帮助类命令,作用:查看命令的含义以及使用方法。
-
whatis + 命令
描述一个命令执行什么功能 man + 命令
Man即manual手册的简写。指的是命令的使用手册-
help + 内部命令
查看内部命令的使用帮助
2、文本编辑命令vi/vim
在Windows中,我们可以使用记事本、word等等应用程序来编辑文件,那么在Linux里面我们需要使用vi或者vim编辑器来编辑文件。vi或者vim编辑器也是作为Linux中的命令存在的。
-
vi/vim + 文件
进入某文件的编辑界面对文件内容进行编辑,vi 是老式的文字处理器,来源于Unix操作系统,所有的类Unix系统也都会内建vi文本编辑器。vim可以理解为是vi的增强版,现在可称为“Vi Improved”(Vi改进版),原来也被称为“Vi Imitation”(Vi模拟版),vim比vi拥有更强大的编辑能力,增加了以字体颜色辨别语法的正确性,跨平台使用等功能,更加方便了程序的设计。
我们在使用vi/vim时。主要有三种模式:一般模式、编辑模式、指令模式,不同模式有不同的功能,根据自己的需要使用不同的模式。
2.1一般模式
用vi/vim 打开一个文件就直接进入一般模式了。在该模式中,可以使用上下左右按键来移动光标, 也可以使用复制、粘贴、删除等功能来处理文件内容,但是这里的复制、粘贴、删除与Windows的操作是不同的。
-
y + 数字N + y
从光标闪烁处开始往后复制N行 -
p
即paste,将复制的内容粘贴到光标所在行的下一行 -
u
即undo,撤销上一步的操作 -
dd
即delete,删除光标所在的当前行 -
shift + ^
移动到光标所在行的行头 -
shift + $
移动到光标所在行的行尾 -
gg
移动到文件的第一行 -
shift + g
移动到文件的末尾行 -
数字N + shift + g
移动到文件的第N行处
2.2 编辑模式
在一般模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容。我们需要进入编辑模式才可以编辑具体内容,我们可以在一般模式下键入『i, I, o, O, a, A, r, R
』等任一字母就可进入编辑模式。
进入编辑模式,会在左下方出现『INSERT 或 REPLACE 或 插入
』的字样。编辑完成后,按下『Esc
』这个按键可退出编辑模式,回到一般模式,在一般模式下,可以进入指令模式,选择保存或者不保存文件。
- 键入
“i”
在光标所在位置处进入编辑模式 - 键入
“I”
将光标定位到所在行的行头进入编辑模式 - 键入
“a”
将光标定位到当前位置的下一字节进入编辑模式 - 键入
“A”
将光标定位到所在行的行尾进入编辑模式 - 键入
“o”
在光标所在行的下一行新建一行进入编辑模式 - 键入
“O”
在光标所在行的上一行新建一行进入编辑模式
2.3 指令模式
该模式也被称之为底行模式,在一般模式下,输入『 : / ?
』3个中的任何一个按键,就可以将光标移动到页面最底一行进入到指令模式,在该模式下可以进行保存、不保存、显示行号、搜索关键字等操作。按下『Esc』这个按键可退出编辑模式。
- 键入
“:或 / 或 ?”
在一般模式下进入指令模式 - 键入
“:”后输入“w”
并回车 保存 - 键入
“:”后输入“q”
并回车 退出文本编辑器 - 键入
“:”后输入“wq”
并回车 保存文本内容并退出文本编辑器 - 键入
“:”后输入“!”
并回车 强制执行 - 键入
“:”后输入“q!”
并回车 不保存文件,强制退出文本编辑器 - 键入
“:”后输入“wq!”
并回车 强制保存并退出文本编辑器,注意:一般模式下按下Shift + z + z
对非只读文件实现快速保存 - 键入
“/”后输入“关键词”
并回车 查询文件中的关键词,按n
向下查找下一个关键词 - 键入
“?”后输入“关键词”
并回车 查询文件中的关键词,按n
向上查找下一个关键词
3、文件目录命令
(1) ls
ls + [选项] + 目录
显示指定目录下的所有子目录和文件,选项:
- -a :all,全部的文件,连同隐藏的文档( 开头为 . 的文件) 一起列出来(常用)
- -l :以详情列表列出,包含文件的属性与权限等等数据;(常用)
- -i :查看文件的inode号(inode存储文件的详细信息)
(2)touch
-
touch + 文件名称
用来创建新的空文件
(3)mkdir
mkdir + [选项] +要创建的目录
创建一个新的目录,选项:
- -p :递归创建多级目录,
mkdir -p d1/d2/d3
(4)echo 和 重定向
echo:输出内容
。重定向:将数据写入到指定文件,分为覆盖写“>”
和追加写“>>”
-
echo + 输出内容(文本/命令结果/变量)
将内容进行输出显示,如echo `date`
输出当前日期,echo $PWD
输出当前目录 -
echo + 输出内容 >> 文件
将输出内容追加存储在指定文件中 -
echo + 输出内容 > 文件
将输出内容覆盖存储在指定文件中
(5)printf
-
printf + 格式 + 参数
将数据指定格式进行输出,如printf "%s \t %d \t %s \n" "zhangsan" 16 "man"
(6)mv
-
mv + 原文件名 + 新文件名
对文件进行重命名 -
mv + 文件/目录 + 路径
将文件/目录移动到指定路径下
(7)cp
-
cp + 原文件 + 目标路径
将一个或多个文件复制到指定的路径下
(8)cat
-
cat + [选项] + 文件
查看文件内容,从第一行开始输出显示,选项:-n
:列出行号,连同空白行也会有行号
(9)tac
-
tac + 文件
将文件内容倒序输出
(10)head
-
head + [选项] + 文件
从头开始显示文件内容,默认显示前10行。案例:[root@hadoop1 test]# head vi测试数据.txt
(11)tail
-
tail + [选项] + 文件
倒序按行显示文件内容,默认显示后10行。案例:[root@hadoop1 test]# tail vi测试数据.txt
(12)more
more + 文件
查看文件内容,一页一页的显示文件内容,并且显示当前查看文件的进度。功能使用说明:
- 空白键 (space)或按Ctrl+F:向下翻一页
- 按Enter键:向下翻一行
- 按f键:向下翻两页
- 按b键:向上翻一页
- 按=:输出当前行的行号
- 按v键:调用vi编辑器
-
输入/ +
搜索的字符串,按回车进行搜索,按n匹配下一个字符串 - 按q键:离开more ,不再显示该文件内容
(13)less
less + 文件
使用与more比较类似,可查看文件内容,功能使用说明:
- 按Enter键或向下键:代表向下翻一行
- 按y键或向上键:代表向上翻一行
- 按pagedown键或f键或空格键:向下翻动一页
- 按pageup键或b键:向上翻动一页
- 输入
/ + 需要搜索的字符串
,按回车进行搜索,按n匹配下一个字符串按N匹配上一个字符串 - 输入
? + 需要搜索的字符串
,按回车进行搜索,按n匹配上一个字符串按N匹配下一个字符串 - 按v键:调用vi编辑器
- 按q键:离开less,不再显示该文件内容
(14)egrep
egrep + 字符串规则 + 文件或目录
在文件或目录中查找指定的字符串。案例:
[root@hadoop1 test]# egrep 99 测试数据.txt
this is line 99
this is line 199
this is line 299
this is line 399
this is line 499
(15)rm
rm + [选项] + 文件或目录
删除文件或目录选项:
- -r :删除目录以及其下的所有文件
- -f :省略“是否删除”的确认询问
(16)rmdir
-
rmdir + 要删除的空目录
删除一个空目录
5、用户管理命令
(1)useradd + 用户名
添加新用户(前提是有权限)。案例:[root@hadoop1 ~]# useradd hadoop
(2)passwd + 用户名
设置用户密码
(3)id + 用户名
判断用户是否存在
(4)su + 用户名 切换用户,只能获得用户执行权限,不能获得环境变量
(5)visudo 等价于vi /etc/sudoers,修改用户权限
(6)sudo + 命令 设置普通用户以root用户权限执行命令
6、文件权限命令
(1)文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组。
[root@hadoop1 test]# ll
总用量 20
drwxr-xr-x. 3 root root 16 1月 31 16:30 d1
-rw-r--r--. 1 root root 76 1月 31 16:02 test1.txt
-rw-r--r--. 1 root root 66 1月 31 15:44 test2.txt
从左到右的10个字符表示:
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
1、 第0位表示类型
- 代表文件
d 代表目录
c 字符流,串行端口设备,例如键盘、鼠标(一次性读取装置)
s socket
p 管道
l 链接文档(link file)
b 设备文件,可供储存的接口设备(可随机存取装置)
2、 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
3、 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
4、 第7-9位确定其他用户拥有该文件的权限 ---Other
(2)文件权限
作用到文件
权限 解读
r 代表可读(read): 可以读取,查看
w 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
x 代表可执行(execute):可以被系统执行
作用到目录
权限 解读
r 代表可读,可以查看目录中的文件列表
w 代表可修改,可对目录内的文件进行创建、删除、移动等操作
x 代表可以进入该目录
(3)chmod修改权限变更文件或目录的权限
使用字母方式改变权限,chmod + {ugoa} {+-=} {rwx} + 文件或目录
第一个参数
- u:所属主
- g:所属组
- o:其它用户
- a:(all)代表ugo
第二个参数
- +:增加权限
- -:去掉权限
- =:仅有某些权限
第三个参数
- r
- w
- x
[root@hadoop1 test]# ll
-rw-r--r--. 1 root root 76 1月 31 16:02 test1.txt
# 为当前用户加上执行的权限
[root@hadoop1 test]# chmod u+x test1.txt
[root@hadoop1 test]# ll
-rwxr--r--. 1 root root 76 1月 31 16:02 test1.txt
# 为当前用户删除执行的权限
[root@hadoop1 test]# chmod u-x test1.txt
[root@hadoop1 test]# ll
-rw-r--r--. 1 root root 76 1月 31 16:02 test1.txt
# 为当前组用户赋予 仅有某些权限
[root@hadoop1 test]# chmod g=wx test1.txt
[root@hadoop1 test]# ll
-rw--wxr--. 1 root root 76 1月 31 16:02 test1.txt
# 为所有用户,但是不包含root用户取出w权限
[root@hadoop1 test]# chmod a-w test1.txt
[root@hadoop1 test]# ll
-r----xr--. 1 root root 76 1月 31 16:02 test1.txt
使用数字方式改变权限,chmod + 十进制数字 + 文件或目录
变更文件或目录的权限
举栗
[root@bd-offcn-01 test]# ll
-rwxrw-r--. 1 root root 76 1月 31 16:02 test1.txt
[root@bd-offcn-01 test]# chmod 644 test1.txt
[root@bd-offcn-01 test]# ll
-rw-r--r--. 1 root root 76 1月 31 16:02 test1.txt
(4)chown变更文件或目录的所有者(只有root用户可操作)
chown + 用户名 + 文件或目录
变更文件或目录的所有者
-
chown + 用户名:用户组 + 文件或目录
变更文件或目录的所有者及所属组 -
chown -R + 用户名 + 目录
递归变更目录的所有者 -
chown -R + 用户名:用户组 + 目录
递归变更目录的所有者及所属组
案例:
7、磁盘大小查看命令
(1)df + [选项]
列出文件系统的整体磁盘使用情况
选项:
- -k :以 KBytes 的容量显示各文件系统(默认);
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -T :显示文件系统类型
(2)du + [选项] + [文件或目录]
用于显示目录或文件的大小
选项:
- -k :以1KB为单位;
- -m :以1MB为单位;
- -h :以K,M,G为单位,提高信息的可读性;
(3)iostat + [选项]
用于监控磁盘IO及CPU的负载情况
iostat命令是I/O statistics(输入/输出统计)的缩写,主要用于监控并统计系统设备的IO负载情况及CPU负载情况,仅对系统的整体情况进行分析,不能对某个进程进行深入分析。主要用它来检查哪个设备有问题,哪个设备io有问题,用户可以通过指定统计的次数和时间来获得所需的统计信息。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。选项:
- -d :只显示磁盘使用情况;
- -c :只显示CPU使用情况;
- -k :以 KB 为单位显示
- -m :以 MB 为单位显示
- -t :显示统计的时间
- -x :显示详细信息;
- -N :显示磁盘名称;
- -p :显示每个磁盘的详细信息,比如sda这个磁盘分了两个区,都要让它显示出来数字n1 + 数字n2 :每隔n1秒统计一次,共统计n2次
查出来的每列代表意义,结果分为两部分:cpu统计信息、设备统计信息。
- %user:用户模式下所花费CPU时间的百分比,合理值为<60%
- %nice:用户进程改变过优先级的进程占用CPU时间的百分比
- %system:内核进程所花费的CPU时间的百分比,合理值为%user+%system <80%
- %iowait:IO等待所占用的CPU时间的百分比(重要),合理值为<30%(不同功能的服务器不同,比如邮件服务器会比该值要大)
- %steal:丢失时间占用CPU时间的百分比,一般来说%idle持续游走在20%以下,说明CPU繁忙,空闲太少,瓶颈出现在CPU的性能层面。%iowait高而%idle 在70%以上,说明cpu不忙,但是数据还在等待读写,瓶颈出现在IO设备层面,也就是磁盘有问题。
- Device:设备名称,这里还有个dm,它是disk mapper的缩写,可以在/dev/mapper下查对应关系,或者使用iostat -N 直接显示出磁盘分区对应关系。
- tps:设备每秒接受的I/O传输请求tps = transfers per second
- kB_read/s设备每秒读取的数据量(KB),参数-m可以换成MB
- kB_wrtnls设备每秒写入的数据量(KB),参数-m可以换成MB
- kB_read设备读取的总数据量
- kB_wrtn设备写入的总数据量
8、搜索查找命令
(1)find + 选项 + 参数
在指定目录下查找文件
- 选项:
-name + filename
:查找名为filename的文件 - 举栗:按名称查找:查找/root目录以及子目录下包含cf的文件
[root@hadoop1 ~]# find /root/ -name '*cf*'
(2)grep + [选项] + [参数]
在文本中根据条件按行匹配查找内容。grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,它通常配合管道符一块使用。管道符,“|”
,表示将前一个命令的处理结果输出传递给后面的命令处理。选项:
- -c :显示有多少行被匹配到
- -n :显示行号
- -i :忽略大小写
- -v :反向搜索,即不显示要搜索的东西
[root@hadoop1 ~]# ll | grep txt
-rw-r--r--. 1 offcn root 0 1月 28 20:19 aa.txt
-rw-r--r--. 1 root root 0 1月 28 20:39 bb.txt
[root@hadoop1 ~]# ll | grep -n txt
2:-rw-r--r--. 1 offcn root 0 1月 28 20:19 aa.txt
4:-rw-r--r--. 1 root root 0 1月 28 20:39 bb.txt
(3)which + 命令
查找并显示某个系统命令是否存在,以及显示给定命令的绝对路径
(4)ps + [选项]
查看当前系统的进程状态。选项:
- -a :显示现行终端机下的所有程序,包括其他用户的程序。
- -u :以用户为主的格式来显示程序状况。
- -x :显示所有程序,不以终端机来区分。
查出来的每列代表的含义
- USER:该进程是由哪个用户产生的
- PID:进程的ID号
- %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
- VSZ:该进程占用虚拟内存的大小,单位KB
- RSS:该进程占用实际物理内存的大小,单位KB
- TTY:该进程是在哪个终端中运行的。其中
tty1-tty7
代表本地控制台终端,tty1-tty6
是本地的字符界面终端,tty7
是图形终端。pts/0-255
代表虚拟终端。 - STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
- START:该进程的启动时间
- TIME:该进程占用CPU的运算时间,注意不是系统时间
- COMMAND:产生此进程的命令名
另外,也可以使用ps -ef,那么ps -ef 和ps -aux 有什么区别呢?
其实区别不是很大,这就要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。目前大部分Linux系统都是支持使用这两种方式。
(5)pstree + [选项]
以树状图的方式比较直观的展现进程之间的派生关系。选项:
- -p :显示进程的PID
- -u :显示进程的所属用户
(6)top + [选项]
实时动态地查看系统的整体运行情况选项:
- -d + 秒数 :指定top命令每隔几秒更新。默认是3秒。
- -i :使top不显示任何闲置或者僵死进程。
- -p :通过指定监控进程ID来仅仅监控某个进程的状态。
9、解压缩命令
tar + 选项 + 参数
为linux的文件或目录创建压缩包。选项:
- -c :产生.tar打包文件 create
- -v :显示详细信息 verbose
- -f :指定压缩后的文件名 filename
- -z :打包同时压缩
- -x :解包.tar文件
举栗
# 将1.txt 2.txt my.zip test压缩到my.tar.gz
[root@hadoop1 opt]# tar -zcvf my.tar.gz 1.txt 2.txt my.zip test
# 将my.tar.gz解压到当前目录
[root@hadoop1 opt]# tar -zxvf my.tar.gz
10、后台服务管理类命令
(1)service + 服务名 + 指令
用来临时启动、停止、重新启动和关闭系统服务,以及显示系统服务的当前状态。它是centos6旧命令
- service 服务名 start :开启服务
- service 服务名 stop :关闭服务
- service 服务名 restart :重新启动服务
- service 服务名 status :查看服务状态
举栗
查看防火墙服务状态
[root@hadoop1 ~]# service firewalld status
关闭防火墙服务
[root@hadoop1 ~]# service firewalld stop
启动防火墙服务
[root@hadoop1 ~]# service firewalld start
重启防火墙服务
[root@hadoop1 ~]# service firewalld restart
(2)systemctl + 指令 + 服务名
系统服务管理器指令,将service和chkconfig这两个命令组合到一起。既能临时启停服务,也能设置开机自启。它是centos7 新命令。
- systemctl start 服务名 :开启服务
- systemctle stop 服务名 :关闭服务
- systemctl restart 服务名 :重新启动服务
- systemctl status 服务名 :查看服务状态
- systemctl --type service :查看正在运行的服务
- systemctl list-unit-files :查看所有服务器自启配置
- systemctl disable 服务名 :关掉指定服务的自动启动
- systemctl enable 服务名 :开启指定服务的自动启动
- systemctl is-enabled 服务名 :查看服务开机启动状态
举栗
1. 临时启停服务
查看防火墙服务状态
[root@hadoop1 ~]# systemctl status firewalld
关闭防火墙
[root@hadoop1 ~]# systemctl stop firewalld
开启防火墙
[root@hadoop1 ~]# systemctl start firewalld
重启防火墙
[root@hadoop1 ~]# systemctl restart firewalld
查看所有正在运行的服务
[root@hadoop1 ~]# systemctl --type service
2. 开机自启服务管理
查看防火墙服务的开机自启状态
[root@hadoop1 ~]# systemctl is-enabled firewalld
设置防火墙服务开机自启
[root@hadoop1 ~]# systemctl enable firewalld
设置防火墙服务开机不自启
[root@hadoop1 ~]#systemctl disable firewalld
11、上传下载类
(1)wget:用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕,所以支持断点续传。
- 格式:
wget+选项+参数
- centos7默认已经安装了wget命令,如果没有该命令的话,可以通过一下方式安装。
[root@hadoop1 ~]# yum install -y wget
举栗
1. 查看帮助手册
[root@hadoop1 ~]# wget --help
2. 下载文件到当前目录
[root@hadoop1 ~]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
3. 下载支持断点续传,并将下载的文件重命名
[root@hadoop1 ~]# wget -c -O 163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
12、软件安装卸载类命令
(1)软件离线安装rpm
RPM(RedHat Package Manager),即Rethat软件包管理工具,类似windows里面的exe可执行文件,因Centos系统来自于Redhat,故Centos系统也可以使用这种软件包管理方式,它是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。 缺点:需要自己解决软件包的依赖问题,要手动将某个软件依赖的软件安装。
RPM包的名称格式:
Apache-1.3.23-11.i386.rpm
-“apache” 软件名称
-“1.3.23-11”软件的版本号,主版本和此版本
-“i386”是软件所运行的硬件平台
-“rpm”文件扩展名,代表RPM包
格式:rpm+选项+参数
。举栗
1. 查询所有已安装rpm包
[root@hadoop1 ~]# rpm -qa
2. 查询是否已经安装火狐
[root@hadoop1 ~]# rpm -qa|grep firefox
firefox-52.7.0-1.el7.centos.x86_64
3. 卸载rpm包
- 格式:rpm -e rpm软件包
- 格式:rpm -e --nodeps rpm软件包,如果要卸载的某个rpm包被其它rpm包依赖,可以通过加--nodeps参数强制卸载。
4. 卸载火狐安装包:
[root@hadoop1 ~]# rpm -e firefox-52.7.0-1.el7.centos.x86_64
(2)软件在线安装yum
YUM(全称为 Yellow dog Updater, Modified),是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
格式:yum+选项+参数
- 选项-y:对所有提问都回答“yes”
- 参数:install:安装rpm软件包;update:更新rpm软件包;check-update:检查是否有可用的更新rpm软件包;remove:删除指定的rpm软件包;list:显示yum仓库的软件包信息;clean:清理yum过期的缓存;deplist:显示yum软件包的所有依赖关系
举栗
1. 清理所有缓冲数据
[root@hadoop1 ~]# yum clean all
2. 安装火狐浏览器
[root@hadoop1 ~]# yum install firefox
3. 删除火狐浏览器
[root@hadoop1 ~]# yum remove firefox
13、crontab系统定时任务
(1)crontab
用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab + [选项]
用来提交和管理用户的需要周期性执行的任务。选项:
- -e :编辑crontab定时任务
- -l :查询crontab任务
- -r :删除当前用户所有的crontab任务
举栗:[root@bd-offcn-01 ~]# crontab -l
(2)crontab表达式
当要周期性的执行某个任务的时候,需要指定时间,这个指定时间的表达式就是crontab表达式,用5个*
来表示,即*****
,每个*
的具体含义如下:
- 第一个“*” 一小时当中的第几分钟 0-59
- 第二个“*” 一天当中的第几小时 0-23
- 第三个“*” 一个月当中的第几天 1-31
- 第四个“*” 一年当中的第几月 1-12
- 第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)
特殊符号:
-
*
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 -
,
代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 -
-
代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 -
*/n
代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令
(3)案例分析
时间 含义
15 20 * * * 命令 在20点15分执行命令
1 17 * * 2 命令 每周2 的17点1分执行命令
0 19 1,15 * * 命令 每月1号和15号的19点0分执行命令
0 9 * * 1-5 命令 每周一到周五的凌晨9点0分执行命令
*/10 5 * * * 命令 每天的凌晨5点开始,到6点结束,每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为定义的都是天。非常容易让管理员混乱。
举栗
# 执行crontab -e,向里面添加周期性任务。添加时,使用方式跟vi编辑器相同。
# 添加如下:
*/1 * * * * /bin/echo `date` >> /tmp/test.txt
# 然后执行
[root@bd-offcn-01 ~]# crontab -e