linux下的常用命令

2017-04-15  本文已影响0人  snowy_sunny

查询目录中的内容: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/

crontab.png
一些常用的指令这里就不在描述了,可以参考: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间接实现(当然可以使用其他方法实现)

思路:

  1. 每天定时执行running.sh脚本,再在脚本running.sh里面判断,当间隔时间满足条件时
  2. 执行test.py脚本,同时修改上次执行时间,以便于下次执行
具体实现

下面这句是用修改上次执行时间的(注意引号):


修改执行时间

可以使用

  • sed -i '4 s/[0-9][0-9]*/'"curr_run_time"'/'HOME/running.sh
    或者:
  • sed -i "4 s/[0-9][0-9]*/curr_run_time/"HOME/running.sh
上一篇 下一篇

猜你喜欢

热点阅读