linux 踩过的坑,一个个来填

本文探讨了Linux进程的interruptible和uninterruptible睡眠状态,解释了为何无法用kill命令结束uninterruptible睡眠的进程,并提出了重启系统的解决办法。此外,还介绍了获取进程性能消耗的方法、shell脚本执行方式的区别以及统计文本相同行的命令。针对crontab任务不生效的问题,提供了排查和解决方案。最后,讲解了.tar与.tar.gz的区别,强调了md5计算的变化因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • linux进程的睡眠状态:
    • Linux 进程有两种睡眠状态: interruptible sleep和uninterruptible sleep;
      •  interruptible sleep:处在这种睡眠状态的进程是可以通过给它发信号来唤醒的
      •  uninterruptible sleep:处在这种状态的进程不接受外来的任何信号,这也是为什么之前我无法用 kill 杀掉这些处于 D 状态的进程,无论是 kill, kill -9 还是 kill -15,因为它们压根儿就不受这些信号的支配。
        • 怎么办:重启linux系统(reboot);
  • 获取对应进程的性能消耗:
    • ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep rac |  sort -nrk5
  • source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
    • 当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。 
    • sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。 
    • source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
  • 统计文本中相同行的个数:【一定要排序,还不懂为什么】
    • cat slot_info|sort -rn|uniq -c
  • linux下crontab任务添加后脚本不生效,怎么办?
    • 写一个测试命令,比如touch一个文件,验证crontab功能生效;
    • 如果使用了Jumbo等第三方的工具,最好使用绝对路径调用,否则容易不生效;
  • 建立两个机器的信任关系:
    • 相互拷贝id_rsa.pub到对方的authorized_keys文件(如不存在,touch出来即可)中;
    • ssh 对方机器,如果成功即可,如果不成功,确认id_rsa.pub、authorized_keys两个文件的权限是不是600;
  • .tar与.tar.gz的区别:
    • tar本质上只做了归档,类似于新建个文件夹,然后把文件塞进去,而tar.gz除了归档外还会通过gzip压缩内容
    • tar因为归档处理,所以他的md5计算可以表示该文件内容的签名,而tar.gz因为在压缩的时候默认是签名了时间戳的,所以即使内容不变,你每次打包后计算的md5都是变化的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值