二、大数据—Linux基础
2.1 初认识Linux
Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE
2.2 Windows和Linux的区别
比较 | Window | Linux |
---|---|---|
界面 | 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同 | 圆形界面风格依发布版本不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。 |
驱动程序 | 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时候很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。 | 由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版本考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程序支持开源驱动,问题正在得到缓解。 |
使用 | 使用比较简单,容易入门。圆形化界面对没有计算机背景知识的用户使用十分有利。 | 圆形界面使用简单,容易入门。文字界面,需要学习才能掌握。 |
学习 | 系统构造复杂、变化频繁、且知识、技能淘汰快,深入学习困难 | 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易 |
软件 | 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权 | 大部分软件都可以自由获取,同样功能的软件选择较少。 |
2.3 Linux的安装
本小节主要介绍linux概述以及常用命令,Linux的具体安装过程会在离线开发->软件安装章节介绍。
2.4 Linux常用的命令
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
1 2 3 | 4 5 6 | 7 8 9 | |
d | R-4 w-2 x-1 | R-4 -0 x-1 | R-4 - x-1 |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
一般模式
yy 复制
yNy 复制N行
p 粘贴
u 撤销
dd 删除一行
dNd 删除N行
shift + ^ 光标移动到行头
shift + $ 移动到行尾
N + shift + g 跳到第N行
set nu 开启行标
set nonu 关闭行标
编辑模式
i 进入编辑模式
o 进入下一行的编辑模式
指令模式
w 保存
q 退出
! 感叹号强制执行
文件目录类
pwd 显示当前工作目录
ls 列出目录内容
Ctrl+l 清屏
mkdir 创建新目录
mkdir -p 递归创建
touch 创建空文件
cd 切换目录
绝对路径和相对路径
cp 复制文件或目录
cp -r 递归复制
rm 删除文件
Rm -fr 删除,无提示(核弹命令)
mv 移动目录
cat 查看目录
more 分页查看文件
空格 向下翻页
ctrl + B 返回上一屏
tail -F 监控文件
echo 追加文件
ln -s [原文件][目标文件] 软连接
history 历史服务器
时间日期类
date 显示当前时间
date -s 设置系统时间
date -s ‘2019-03-09 23:23:23’
cal 查看日历
tab 自动补充键
用户管理命令
useradd [用户] 添加新用户
userdel [用户] 删除新用户
passwd [用户] 设置用户密码
id [用户] 判断用户是否存在
su [用户] 切换用户
/etc/sudoers 设置普通用户具有root权限
usermod 修改用户
usermod -g dev itstar 把用户itstar加入到dev用户组
groupadd itstar 新增用户组
groupdel 删除组
groupmod 修改组
cat /etc/group 查看创建了哪些组
文件权限类
chmod改变权限 chmod -R 777 用户名
chown [最终用户][文件或目录]
chown -R itstar:itstar [文件名]
磁盘分区类
- fdisk 在root用户下查看分区
- df 查看硬盘
- mount /unmount 挂载/卸载
搜索查找类
find [搜索范围][匹配条件]
按文件名
find /opt -name *.jar
按拥有者
find /opt -user itstar
按文件大小(在某目录下查找大于1M的文件)
find /opt -size +1024
grep 管道符
grep + 参数 + 查找内容 + 源文件
rpm -qa|grep mysql 查找系统中是否有mysql的rpm包
grep "C\|A" A 注:区分大小写
grep -i "C\|A" A 是不区分大小写
进程线程类
ps -aux 查看系统中的进程
top 查看系统的健康状态
kill 进程 kill -9 进程号、直接杀死进程
缩和解压缩
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip + 文件名 + 要压缩的内容
unzip + *.zip 解压文件
zip a.zip a 把a压缩成zip格式的文件
Linux定时任务Crontab
基本语法
crontab -e 编辑定时任务
crontab -l 查询定时任务
crontable -r 删除定时任务
crontab -e进入编辑状态,执行的任务
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟(分) | 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分钟就执行一遍命令 | |
特定时间执行命令 | ||
时间 | 含义 | |
— | — | |
45 22 * * * 命令 | 在22点45分执行命令 | |
0 17 * * 1 命令 | 每周1 的17点0分执行命令 | |
0 5 1,15 * * 命令 | 每月1号和15号的凌晨5点0分执行命令 | |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 | |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 | |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
案例:
**/1 * * * * echo “1” >> /opt/Andy
翻译:每分钟把1追加到该目录中
2.5 安装linux版本JDK
本小节主要介绍linux概述以及常用命令,Linux虚拟机JDK的具体安装过程会在离线开发->软件安装章节介绍。