此系列博客为大三下期末小学期课程大数据疫情分析平台项目学习学习笔记,内容参考中共教育讲义文件
以一般的Linux系统CentOS为例,系统目录有
Linux每个目录都有自己约定俗成的用处,或者说Linux的不同文件分门别类地放到了专门的文件夹,虽然Linux没有强制性的要求我们必须按照这些规定放置文件,但是为了方便起见,还是遵守约定的好。
可以分为两种命令,可以使用type xxx
查看是哪种命令
语法 功能描述
ctrl + c
停止进程ctrl + l
清屏tab键
自动补全命令上下键
查找执行过的命令whoami
显示自身用户名称who am i
显示登录用户的用户名who
看当前有哪些用户登录到了本台机器上pwd
显示当前工作目录的绝对路径cd 绝对路径
切换到所给的绝对路径下cd 相对路径
切换到所给的相对路径下cd ~
或者cd
回到自己的家目录cd -
回到上一次所在目录cd ..
回到当前目录的上一级目录 ifconfig
查看网络配置信息history
查看历史命令(1000条)whatis + 命令
描述一个命令执行什么功能man + 命令
Man即manual手册的简写。指的是命令的使用手册help + 内部命令
查看内部命令的使用帮助在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
向上查找下一个关键词ls + [选项] + 目录
显示指定目录下的所有子目录和文件,选项:
touch + 文件名称
用来创建新的空文件mkdir + [选项] +要创建的目录
创建一个新的目录,选项:
mkdir -p d1/d2/d3
echo:输出内容
。重定向:将数据写入到指定文件,分为覆盖写“>”
和追加写“>>”
echo + 输出内容(文本/命令结果/变量)
将内容进行输出显示,如echo `date`
输出当前日期,echo $PWD
输出当前目录echo + 输出内容 >> 文件
将输出内容追加存储在指定文件中echo + 输出内容 > 文件
将输出内容覆盖存储在指定文件中printf + 格式 + 参数
将数据指定格式进行输出,如 printf "%s \t %d \t %s \n" "zhangsan" 16 "man"
mv + 原文件名 + 新文件名
对文件进行重命名mv + 文件/目录 + 路径
将文件/目录移动到指定路径下cp + 原文件 + 目标路径
将一个或多个文件复制到指定的路径下cat + [选项] + 文件
查看文件内容,从第一行开始输出显示,选项:-n
:列出行号,连同空白行也会有行号tac + 文件
将文件内容倒序输出head + [选项] + 文件
从头开始显示文件内容,默认显示前10行。案例:[root@hadoop1 test]# head vi测试数据.txttail + [选项] + 文件
倒序按行显示文件内容,默认显示后10行。案例:[root@hadoop1 test]# tail vi测试数据.txtmore + 文件
查看文件内容,一页一页的显示文件内容,并且显示当前查看文件的进度。功能使用说明:
输入/ +
搜索的字符串,按回车进行搜索,按n匹配下一个字符串less + 文件
使用与more比较类似,可查看文件内容,功能使用说明:
/ + 需要搜索的字符串
,按回车进行搜索,按n匹配下一个字符串按N匹配上一个字符串? + 需要搜索的字符串
,按回车进行搜索,按n匹配上一个字符串按N匹配下一个字符串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
rm + [选项] + 文件或目录
删除文件或目录选项:
rmdir + 要删除的空目录
删除一个空目录(1)useradd + 用户名
添加新用户(前提是有权限)。案例:[root@hadoop1 ~]# useradd hadoop
(2)passwd + 用户名
设置用户密码
(3)id + 用户名
判断用户是否存在
(4)su + 用户名 切换用户,只能获得用户执行权限,不能获得环境变量
(5)visudo 等价于vi /etc/sudoers,修改用户权限
(6)sudo + 命令 设置普通用户以root用户权限执行命令
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 socketp 管道l 链接文档(link file)b 设备文件,可供储存的接口设备(可随机存取装置)2、 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User3、 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group4、 第7-9位确定其他用户拥有该文件的权限 ---Other
作用到文件
权限 解读
r 代表可读(read): 可以读取,查看
w 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
x 代表可执行(execute):可以被系统执行
作用到目录
权限 解读
r 代表可读,可以查看目录中的文件列表
w 代表可修改,可对目录内的文件进行创建、删除、移动等操作
x 代表可以进入该目录
使用字母方式改变权限,chmod + {ugoa} {+-=} {rwx} + 文件或目录
第一个参数
第二个参数
第三个参数
[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
chown + 用户名 + 文件或目录
变更文件或目录的所有者
chown + 用户名:用户组 + 文件或目录
变更文件或目录的所有者及所属组chown -R + 用户名 + 目录
递归变更目录的所有者chown -R + 用户名:用户组 + 目录
递归变更目录的所有者及所属组(1)df + [选项]
列出文件系统的整体磁盘使用情况
选项:
(2)du + [选项] + [文件或目录]
用于显示目录或文件的大小
选项:
(3)iostat + [选项]
用于监控磁盘IO及CPU的负载情况
iostat命令是I/O statistics(输入/输出统计)的缩写,主要用于监控并统计系统设备的IO负载情况及CPU负载情况,仅对系统的整体情况进行分析,不能对某个进程进行深入分析。主要用它来检查哪个设备有问题,哪个设备io有问题,用户可以通过指定统计的次数和时间来获得所需的统计信息。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。选项:
查出来的每列代表意义,结果分为两部分:cpu统计信息、设备统计信息。
(1)find + 选项 + 参数
在指定目录下查找文件
选项:-name + filename
:查找名为filename的文件
举栗:按名称查找:查找/root目录以及子目录下包含cf的文件[root@hadoop1 ~]# find /root/ -name '*cf*'
(2)grep + [选项] + [参数]
在文本中根据条件按行匹配查找内容。grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,它通常配合管道符一块使用。管道符,“|”
,表示将前一个命令的处理结果输出传递给后面的命令处理。选项:
[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 + [选项]
查看当前系统的进程状态。选项:
查出来的每列代表的含义
tty1-tty7
代表本地控制台终端,tty1-tty6
是本地的字符界面终端,tty7
是图形终端。pts/0-255
代表虚拟终端。另外,也可以使用ps -ef,那么ps -ef 和ps -aux 有什么区别呢?
其实区别不是很大,这就要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。目前大部分Linux系统都是支持使用这两种方式。
(5)pstree + [选项]
以树状图的方式比较直观的展现进程之间的派生关系。选项:
(6)top + [选项]
实时动态地查看系统的整体运行情况选项:
tar + 选项 + 参数
为linux的文件或目录创建压缩包。选项:
举栗
# 将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
(1)service + 服务名 + 指令
用来临时启动、停止、重新启动和关闭系统服务,以及显示系统服务的当前状态。它是centos6旧命令
举栗
查看防火墙服务状态
[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 新命令。
举栗
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 service2. 开机自启服务管理查看防火墙服务的开机自启状态
[root@hadoop1 ~]# systemctl is-enabled firewalld
设置防火墙服务开机自启
[root@hadoop1 ~]# systemctl enable firewalld
设置防火墙服务开机不自启
[root@hadoop1 ~]#systemctl disable firewalld
(1)wget:用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕,所以支持断点续传。
wget+选项+参数
[root@hadoop1 ~]# yum install -y wget
举栗
1. 查看帮助手册
[root@hadoop1 ~]# wget --help2. 下载文件到当前目录
[root@hadoop1 ~]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo3. 下载支持断点续传,并将下载的文件重命名
[root@hadoop1 ~]# wget -c -O 163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
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 -qa2. 查询是否已经安装火狐
[root@hadoop1 ~]# rpm -qa|grep firefox
firefox-52.7.0-1.el7.centos.x86_643. 卸载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
YUM(全称为 Yellow dog Updater, Modified),是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
格式:yum+选项+参数
举栗
1. 清理所有缓冲数据
[root@hadoop1 ~]# yum clean all2. 安装火狐浏览器
[root@hadoop1 ~]# yum install firefox3. 删除火狐浏览器
[root@hadoop1 ~]# yum remove firefox
用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab + [选项]
用来提交和管理用户的需要周期性执行的任务。选项:
举栗:[root@bd-offcn-01 ~]# crontab -l
当要周期性的执行某个任务的时候,需要指定时间,这个指定时间的表达式就是crontab表达式,用5个*
来表示,即*****
,每个*
的具体含义如下:
特殊符号:
*
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。,
代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令-
代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令*/n
代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令时间 含义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