查询目录中的内容:ls
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包含隐藏文件(一些系统行文件,最好不要修改)
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
目录处理命令
建立目录
mkdir -p [目录名]```
-p递归创建,一次创建多级目录
切换目录
cd [目录]
简化操作
cd ~ 进入当前用户的家目录
cd 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
查询所在位置:pwd
pwd命令用于显示当前用户所在的目录
删除文件或目录: rm
rm -rf [文件或目录]
rmdir temp/
rm -rf test
rm -rf /:千万不能执行这条指令,这是让linux自杀
复制命令:cp
cp [选项] [原文件或目录] [目标目录]
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
一般多使用cp -r复制目录
使用cp -a来复制文件/目录及其相关属性
剪切或修改命令:mv
mv [源文件或目录] [目标目录]
改名: mv 原文件名 目标文件名
源文件和目标文件在同一个目录下就是改名,不在同一个目录下就是剪切
链接命令:ln
ln -s [源文件] [目标文件]
-s:创建软连接
不加-s是创建硬链接
硬链接特征
1.拥有相同的i节点和存储block块,可以看作是同一个文件
2.可以通过i节点识别
3.不能跨分区
4.不能对目录使用
软链接特征
1.类似Windows快捷方式
2.软链接拥有自己的 I节点和block块,但是数据块至保存源文件的文件名和I节点号,并没有实际的文件数据
3.lrwxrwxrwx |软链接
4.修改任意文件,另一个都改变
5.删除源文件,软链接不能使用
拷贝指令
cp [源文件] [目标文件目录]
解压文件
tar -zxvf [待解压的文件]
读取文件内容
cat [FileName] : 读取文件的全部内容
head -n [nums] [FileName]: 读取文件的前nums行的内容
tail -n [nums] [FileName]: 读取文件的最后nums行的内容
wc -l [FileName]: 统计文件的行数
sed -n '$=' [FileName]: 统计文件的行数
sed -n '2p;4,10p' [FileName]: 读取第二行,第4-10行的内容
连接到服务器
ssh [serverusername]@[server_ip] [-p 端口号]
//例如: ssh root@202.121.178.205 -p 5022
上传文件到服务器和下载服务器上的文件到本地
scp [-r] [-PserverPort] filename1 filename2
-r:传输的是文件夹则添加上
-PserverPort:指定服务器端的地址,默认为22
scp [-P端口号] [本地文件的绝对地址] [serverusername]@[server_ip]:[服务器上的目标地址]
//比如将本地文件/home/hadoop/localfile.txt文件传输到202.121.178.205的端口号为5022的/opt目录中
//scp [-P5022] /home/hadoop/localfile.txt root@202.121.178.205:/opt
//上传
//下载
scp [-P端口号] [serverusername]@[server_ip]:[服务器上的目标地址] [本地文件的绝对地址]
//比如将202.121.178.205的端口号为5022的/opt目录中的server.txt下载到本地文件/home/hadoop
//scp [-P5022] root@202.121.178.205:/opt/server.txt /home/hadoop
服务器上的后台运行
nohup 运行指令 &
服务器ip与机器名查询
// 知道ip查看hostname
nslookup ip
//知道hostname查看ip
nslookup hostname
查看远程服务器端口是否开放
nmap -v ip -p 【端口号】
进程号查看运行文件目录
// 查看进程号
ps -ef|grep java
// 查看该进程运行文件的目录
ll /proc/pid/cwd
服务器定时任务--Crontab
这里推荐一个crontab运行时间验证的网站:https://tool.lu/crontab/
一些常用的指令这里就不在描述了,可以参考:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html,这个文档里面还是很齐全的,下面就简单的介绍定制化的(积累中,持续更新...)
// 每个月最后一天执行脚本(linux环境)
0 0 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && do-something
或者:
0 0 28-31 * * [ ["$(date --date=tomorrow +\%d)"=="01"] ] && do-something
// [Tip]: 一定要注意判断语句中的空格,外面的中括号和指令之间是有空格隔开的,不能省呀,省了就呵呵了
每隔n个自然天执行一次(这里不采用星期的方法),不能使用
* * */n * * do-something
因为上面这条指令是按照一个月进行计算循环的,需要通过crontab间接实现(当然可以使用其他方法实现)
思路:
- 每天定时执行running.sh脚本,再在脚本running.sh里面判断,当间隔时间满足条件时
- 执行test.py脚本,同时修改上次执行时间,以便于下次执行
下面这句是用修改上次执行时间的(注意引号):
可以使用
- sed -i '4 s/[0-9][0-9]*/'"HOME/running.sh
或者:- sed -i "4 s/[0-9][0-9]*/HOME/running.sh