目录
1. 帮助命令
man 获得帮助信息 | 例:man ls(获取ls的帮助信息) |
help 获得shell内置命令的帮助信息 | 例:help cd(获取cd的帮助信息) |
常用快捷键 | ctrl + c:停止进程 |
ctrl+l:清屏(彻底清屏是:reset) | |
ctrl + q:退出 | |
tab:提示信息 | |
上下键:查找执行过的命令 |
2. 文件目录类
pwd | 显示当前工作目录的绝对路径 |
ls | -a :全部的文件,连同隐藏的(开头为 . 的文件一起列出来(常用) |
-l :长数据串列出,包含文件的属性与权限等等数据;(常用) | |
cd | cd路径:切换到绝对路径或者切换到相对路径 |
cd ~或者cd :回到自己的家目录 | |
cd -:回到上一次所在目录 | |
cd ..:回到当前目录的上一级目录 | |
cd -P:跳转到实际物理路径,而非快捷方式路径 | |
mkdir | mkdir:创建一个目录(例:mkdir abc) |
mkdir -p:创建一个多级目录(例:mkdir -p abc/def) | |
rmdir | 删除一个空的文件夹 |
touch | 创建空文件(例:touch a.txt) |
cp | cp:复制文件(例:cp /home/a/b.txt /home/x/) |
cp -r:递归复制整个文件夹(例:cp -r /home/a/b /home/x/) | |
rm | rm -r:递归删除目录中所有内容 |
rm -f:强制执行删除操作,而不提示用于进行确认。 | |
rm -v:显示指令的详细执行过程 | |
mv | mv oldNameFile newNameFile (功能描述:重命名) |
mv /temp/movefile /targetFolder (功能描述:递归移动文件) | |
cat | 查看文件内容,从第一行开始显示。 |
cat -n:显示所有行的行号,包括空行。 | |
more | 空白键 (space):代表向下翻一页; |
Enter: 代表向下翻『一行』; | |
q:代表立刻离开 more ,不再显示该文件内容。 | |
Ctrl+F:向下滚动一屏 | |
Ctrl+B:返回上一屏 | |
=:输出当前行的行号 | |
:f:输出文件名和当前行的行号 | |
echo | echo输出内容到控制台 |
head | head用于显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容。 |
head -n 10 文件(查看文件头10行内容,10可以是任意行数) | |
tail | tail -n 5 文件(查看文件头5行内容,5可以是任意行数) |
tail -f 文件 (功能描述:实时追踪该档的所有更新) | |
> | cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2) |
>> | echo “内容” >> 文件 |
ln软链接 | ln -s [原文件] [目标文件]:(功能描述:给原文件创建一个软链接,软链接存放在目标文件目录,例:ln -s xiyou/dssz/houge.txt ./houzi) |
删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ (例:rm -rf houzi) | |
进入软连接实际物理路径(例:cd -P dssz/) | |
history | 查看已经执行过历史命令 |
3. 时间日期类
date显示当前时间:
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date +%m | 显示当前月份 |
date +%d | 显示当前是哪一天 |
date "+%Y-%m-%d %H:%M:%S" | 显示年月日时分秒 |
date显示非当前时间:
date -d '1 days ago' | 显示前一天日期 |
date -d '-1 days ago' | 显示明天时间 |
设置系统时间:
date -s "2017-06-19 20:52:18" | 设置系统当前时间 |
cat查看日历:
cal | 查看当前月的日历 |
cal -3 | 查看当前月、前一个月和后一个月的日历 |
cal 2017 | 查看2017年的日历 |
4. 用户管理命令
useradd | useradd 用户名 (功能描述:添加新用户) |
useradd -g 组名 用户名 (功能描述:添加新用户到某个组) | |
passwd | passwd 用户名 (功能描述:设置用户密码) |
id | id 用户名 (功能描述:查看用户是否存在) |
su | su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量) |
su - 用户名称(切换到用户并获得该用户的环境变量及执行权限) | |
userdel | userdel 用户名 (功能描述:删除用户但保存用户主目录) |
userdel -r 用户名 (功能描述:用户和用户主目录,都删除) | |
who | whoami (功能描述:显示自身用户名称) |
who am i (功能描述:显示登录用户的用户名) | |
cat | cat /etc/passwd (功能描述:查看创建了哪些用户) |
usermod | usermod -g 用户组 用户名 (功能描述:将用户加入到用户组) |
5. 用户管理组命令
groupadd | groupadd 组名 (功能描述:新增组) |
groupdel | groupdel 组名 (功能描述:删除组) |
groupmod | groupmod -n 新组名 老组名 (功能描述:修改组) |
cat | cat /etc/group (功能描述:查看创建了哪些组) |
6. 文件权限类
1. 文件属性:
a) 一个文件或者文件夹的属性具体含义如下图所示:
如果查看到是文件:链接数指的是硬链接个数,创建硬链接方法:ln [原文件] [目标文件](例:ln sunhouzi/shz.txt ./shz.txt)
如果查看的是文件夹:链接数指的是子文件夹个数。
b) 从左到右的10个字符的具体含义如下图所示:
c) 0首位表示类型:
- 代表文件
d 代表目录
l 链接文档(link file)
d) 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
e) 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
f) 第7-9位确定其他用户拥有该文件的权限 ---Other
2. chmod改变权限
a) 基本语法:
chmod [{ugoa}{+-=}{rwx}] 文件或目录
chmod [mode=421 ] [文件或目录]
b) 经验技巧:
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
c) 示例:
chmod u+x test1.java
chmod g+x test1.java
chmod -R 777 testdir
3. chown改变所有者
a) 基本语法:
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者,-R:表示递归修改文件夹中的所有文件)
b) 示例:
修改文件所有者:chown atguigu test1.java
递归改变文件所有者和所有组:chown -R atguigu:atguigu sunhouzi/
4. chgrp改变所属组:
a) 基本语法:
chgrp [最终用户组] [文件或目录]
b) 示例:
修改文件的所属组:chgrp atguigu test1.java
7. 磁盘分区类
1. df查看硬盘:
基本语法:df 选项 (功能描述:列出文件系统的整体磁盘使用量)
选项说明:-h 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示
扩展功能:df -h 目录名 (查看该目录是属于哪个磁盘分区下,并显示该磁盘分区的具体信息)
2. fdisk查看分区:
基本语法:fdisk -l (功能描述:查看磁盘分区详情)
选项说明:-l 显示所有硬盘的分区列表
经验技巧:该命令必须在root用户下才能使用
功能说明:(Device:分区序列) (Blocks:容量)
8. 搜索查找类
1. find 查找文件或者目录(find [搜索范围] [选项]):
a) -name<查询方式>:按照指定的文件名查找模式查找文件
例:find /opt/ -name *.txt
b) -user<用户名>:查找属于指定用户名所有文件
例:find /opt/ -user atguigu
c) -size<文件大小>:按照指定的文件大小查找文件
按文件大小:在目录下查找大于n兆的文件(+n 大于 -n小于 n等于)
例:find /home -size +204800
2. grep 过滤查找及“|”管道符:
a) 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
b) 基本语法:grep 选项 查找内容 源文件
c) 选项说明:-n显示匹配行及行号
d) 示例操作:查找某文件在第几行 ls | grep -n test
9. 进程线程类
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
1. ps查看系统中所有进程:
基本语法 | ps -aux | grep xxx | 查看系统中所有进程 |
ps -ef | grep xxx | 可以查看子父进程之间的关系 | |
选项说明 | -a | 选择所有进程 |
-u | 显示所有用户的所有进程 | |
-x | 显示没有终端的进程 | |
ps -aux显示信息说明 | %CPU | 该进程占用CPU资源的百分比,占用越高,进程越耗费资源 |
%MEM | 该进程占用物理内存的百分比,占用越高,进程越耗费资源 | |
VSZ | 该进程占用虚拟内存的大小,单位KB | |
RSS | 该进程占用实际物理内存的大小,单位KB | |
STAT | 进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 | |
ps -ef显示信息说明 | UID | 用户ID |
PID | 进程ID | |
PPID | 父进程ID |
2. kill终止进程
基本语法 | kill [选项] 进程号 | 通过进程号杀死进程 |
killall 进程名称 | 通过进程名称杀死进程 | |
选项说明 | -9 | 表示强迫进程立即停止 |
实例操作 | 杀死指定进程号 | kill -9 5102 |
通过进程名称杀死进程 | killall firefox |
3. pstree查看进程树:
基本语法 | pstree [选项] | |
选项说明 | -p | 显示进程的PID |
-u | 显示进程的所属用户 | |
实例操作 | 显示进程pid | pstree -p |
显示进程所属用户 | pstree -u |
4. top 查看系统健康状态:
基本命令 | top [选项] | |
选项说明 | -d 秒数 | 指定top命令每隔几秒更新。默认是3秒 |
操作说明 | P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 | |
N | 以PID排序 | |
q | 退出top |
在第2行中zombie为僵尸进程,如果不是0,需要手工检查僵尸进程。
5. netstat显示网络统计信息:
基本语法 | netstat -anp | 用来显示整个系统目前的网络情况 |
选项说明 | -an | 按一定顺序排列输出 |
-p | 表示显示哪个进程在调用 | |
实例操作 | 查看端口50070的使用情况 | netstat -anp | grep 50070 |
10. 压缩和解压类
在Linux中压缩和解压有gzip/gunzip压缩,zip/unzip压缩和tar打包等方法,但在大数据中一般不会使用这些,有自己的压缩和解压方法,但在网络上下载的Linux的文件一般使用tar解压,所以只要对tar有所了解就够了。
基本语法 | tar [选项] XXX.tar.gz 将要打包进去的内容 | |
选项说明 | -c | 产生.tar打包文件 |
-v | 显示详细信息 | |
-f | 指定压缩后的文件名 | |
-z | 打包同时压缩 | |
-x | 解包.tar文件 | |
实例操作 | 压缩多个文件 | tar -zcvf test.tar.gz test1.java test.java |
压缩目录 | tar -zcvf test.java.tar.gz test1 | |
解压到当前目录 | tar -zxvf test.tar.gz | |
解压到指定目录 | tar -zxvf test.tar.gz -C /opt |
11. crond系统定时任务
1. 选项说明:
选项 | 功能 |
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
2. 参数说明:
3. 具体操作:
时间 | 含义 |
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分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
4. 重启crontab,启动定时任务:
/bin/systemctl restart crond.service 或 service crond restart