linux 命令: shell、crontab

tail vs less

> tail  -n    1000:显示最后1000> tail  -n    +1000:从1000行开始显示,显示1000行以后的
> head   -n  1000:显示前面1000> tail  -f  log.out      实时查看运行日志
> 从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n  +3000 | head -n 1000
> 显示1000行到3000行
cat filename | head -n 3000 | tail -n +1000

# less
按空格:向下翻一页
b:向上翻一页
d:向下翻半页
u:向上翻半页
ctrl + F :向前移动一屏
ctrl + B :向后移动一屏
ctrl + D :向前移动半屏
ctrl + U :向后移动半屏
查找文件
  • grep -n 'g.d' log.txt 找出 g?d 的字串,指定行号
  • grep -i "2019-12-25 19:00:00,.*avatar_http_call_time: cost" headline.log -rnI
^  锚定行的开始 如:'^grep'匹配所有以grep开头的行。     
$  锚定行的结束, 如:'grep$'匹配所有以grep结尾的行。     
.   匹配一个非换行符的字符, 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*  匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。     
.*  代表任意多的字符。
\<   锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>   锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。

-i: 不区别大小写
-A<n>:   除了显示匹配的行外,还显示之后的n行
-B<n>:   除了显示符合条件的行外,还显示之前的n行
-C<n>:除了显示符合条件的行外,显示该行之前和之后各n行
查看文件
  • gg : 跳转到文件头
  • Shift+g : 跳转到文件末尾
  • 行数+gg : 跳转到指定行,例跳转到123行:123gg
  • 「ctrl」+「b」:屏幕往"后"移动一页。
  • 「ctrl」+「f」:屏幕往"前"移动一页。
  • 「ctrl」+「g」: 列出光标所在行的行号。
  • 「/关键字」:从文件头开始查找,一直按「n」会往后寻找到关键字。
  • 「?关键字: 从文件尾开始查找, 「N」向前查找前一个匹配的文本

文件传输

nc命令
  • 单个文件从A到B:
    接受机: nc -l -p 1234 > D:/test.csv 打开一个端口1234 接受文件并写到1.txt
    发送机: nc -w 1000ms IP Port < test.csv 使用管道把文件内容传送到B机1234端口,超时1秒

  • 多个文件从A传到B
    接受机: nc -l 1234 | tar zxvf -
    发送机: tar zcf - * | nc 10.0.1.2 1234

  • rz: 上传文件至远程服务器

    1. 在终端下:
      复制命令:Ctrl + Shift + C
      粘贴命令:Ctrl + Shift + V
    2. 在控制台下:
      复制命令:Ctrl + Insert  或  用鼠标选中即是复制。
      粘贴命令:Shift + Insert  或 单击鼠标滚轮即为粘贴
python + wget
  • python -m http.server [port] 默认8000端口,可指定
scp

scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令.
用法:scp file user@host:port / tmp/

crontab -l查看定时任务

命令 vi /etc/crontab : 编辑定时脚本。
命令 crontab -e : 然后直接编辑用户定时脚本

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

* * * * *    每1分钟执行一次command
* 30 21 * * *     每晚的21:30
3,15 * * * *       每小时的第3和第15分钟执行
0-59/10 * * * * 从0到59分这个时间段每10分钟都执行
3,15 8-11 */2 * *  每两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1    每个星期一的上午8点到11点的第3和第15分钟执行
0,30 18-23 * * *   每天18 : 00至23 : 00之间每隔30分钟
45 4 1,10,22 * *  每月1、10、22日的4 : 45
  • *代表所有可能的值,例如:如果month字段是星号,则表示在满足其它字段的约束条件后每月都执行该命令
  • , 用逗号隔开的值表示一个范围列表,例如:如果minute字段的值是“1,3,15”,则表示每小时的第1分钟、第3分钟和第15分钟都执行该命令
  • – 可以用整数之间的 – 表示一个整数范围,例如:如果day字段的值是“2-6”,则表示每月的第2天到底6天都执行该命令
  • / 可以用斜线表示命令的执行频率,例如:如果minute字段的值是“*/10”,则表示每十分钟执行一次命令。
  1. 系统任务调度:系统需要定期执行的任务,比如重启、日志清理等,其配置文件是:/etc/crontab
  2. 用户任务调度:用户定期执行的任务。用 crontab 命令来配置定时任务。存放在 /var/spool/cron/ 目录下,其文件名与用户名一致。如:root用户的所有定时任务就保存在 /var/spool/cron/root 文件中.

常用命令

ssh-keygen
  • ssh-keygen -f “.ssh/known_hosts” -R git.n.XX.com
  • ssh-keygen -t rsa -C “**@.com”
  • ssh-keygen -t rsa -b 4096 -C “**@.com”
  • ssh -T git.n.XXcom
netstat

lsof -i:8080:查看8080端口占用 # kill -9 PID 杀进程
netstat -tunlp | grep 端口号 # netstat -an
netstat -ano|findstr 8080

-a 选项列出所有当前的连接。 # 用 -t 列出 TCP协议连接,用 -u 列出 UDP协议连接;-n 选项禁用域名解析功能
用 -l 选项列出正在监听的套接字。
用 -p 选项查看进程信息 # 用 -ep 选项可同时查看进程名和用户名
ps -ef
# 基本参数:
-A :所有的进程均显示出来,与 -e 具有同样的效用;
-a : 显示现行终端机下的所有进程,包括其他用户的进程;
-u :以用户为主的进程状态 ;
x :通常与 a 这个参数一起使用,可列出较完整信息。

# 输出格式规划:
l :较长、较详细的将该PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一个更为完整的输出。
mkdir

mkdir -p build/etc

  • -p:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
cp

cp - R deploy/* build/etc/

  • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
find

find . -name "file1*" -a -name "file2*" # -a与、-o或、-not非

删除命令
  • 删除一行:dd
  • 删除5行:5dd
  • 删除行范围::3,18d
查看端口: netstat -ano|findstr 9999 或  lsof -i:9999
强制关闭进程:taskkill /pid 12540 /f
获取登录信息: w
清除屏幕上显示的内容: clear
通过shell命令杀死某个正在运行的程序: ps -ef | grep 程序名 | grep -v grep |awk '{print $2}' | xargs kill -9

linux使用flock文件锁解决脚本重复执行问题

*/15 * * * *  source ~/.bashrc && flock -xn /home/work/export/book_delta.lock -c 'cd /home/work/XXX; ../bin/python manage.py publish book_delta > /dev/null'

其他问题

cmd命令行乱码:

chcp命令查看代码页,chcp 65001改为UTF-8代码页; chcp 936为GBK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值