此文档记录一些本人平常工作用到的一些命令操作。有些是比较常用的,有些是修改一次就不会再做改动的配置。此文档后期会不定期更新

清理缓存

  • 仅清理页面缓存(PageCache)
1
2
3
sync
#sync命令可用来强制将内存缓冲区中的数据立即写入磁盘中
echo 1 > /proc/sys/vm/drop_caches
  • 清除目录项和inode
1
2
sync
echo 2 > /proc/sys/vm/drop_caches
  • 清除页面缓存,目录项和inode
1
2
sync
echo 3 > /proc/sys/vm/drop_caches
  • 非root用户操作
1
2
sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

查看CPU的个数,核数

  • 查看CPU物理个数

    1
    
    grep 'physical id' /proc/cpuinfo | sort -u |wc -l
  • 查看每个物理CPU的核数

1
grep 'core id' /proc/cpuinfo | sort -u | wc -l
  • 查看总的逻辑CPU个数
1
grep 'processor' /proc/cpuinfo | sort -u | wc -l

查看文件内容的几种方法

  • cat
1
2
3
#cat 查看文件的所有内容
cat install.sh
cat install.sh -n #加上行号查看内容
  • tac

    1
    2
    
    #tac 反向查看文件所有内容
    tac install.sh
  • more

    1
    2
    
    #more 一页一页的显示内容
    more install.sh # 空格向下滚动一屏。 Enter 向下n行,需要定义。默认为1行
  • less

1
2
#less 与more类似 不过支持向前翻页
less install.sh #ctrl + F - 向前移动一屏。ctrl + B - 向后移动一屏。ctrl + D - 向前移动半屏。ctrl + U - 向后移动半屏。
  • head
1
2
3
#head 查看头几行
head install.sh #默认查看前10行
head -20 install.sh #查看前20行
  • tail
1
2
3
4
#tail 查看文件的最后N行
tail install.sh #默认查看后10行
tail -20 install.sh #查看后20行
tail -f filename #循环读取
  • nl
1
2
#nl打印出来行号来查看内容
nl install.sh

查看磁盘空间的操作

  • df
1
2
#df 查看文件系统占用的磁盘空间
df -h #以易读的方式显示出来
  • du
1
2
3
4
5
6
#du 查看文件和目录占用的磁盘空间
du -s #显示总和大小
du -h test #以易读的方式显示出来
du -c test1 test2 #显示几个文件或目录各自占用的磁盘空间----并在最后一行统计它们的总和
du|sort -nr|more #按照空间大小排序
du -h  --max-depth=1 #输出当前目录下的各个子目录所使用的磁盘空间

压缩和解压缩的操作

  • baip2
1
2
3
bzip2 filename #压缩指定文件filename
bzip2 -k filename #bzip2在压缩和解压缩后 会删除原始文件 ,若想要保留原始文件 请使用此参数
bzip2 -d filename #解压缩指定文件filename

同步服务器时间

  • rdate

上海交大ntp服务器:ntp.sjtu.edu.cn

美国授时中心:time.nist.gov

1
2
3
rdate -p time.nist.gov #打印出远程服务器time.nist.gov的时间
sudo rdate -s time.nist.gov #同步远程服务器的时间
timedatectl set-ntp no  #关闭时间同步

设置定时任务

1
2
3
4
crontab -e #输入一下内容
00 01 * * * sudo rdate –s time.nist.gov #然后保存
# 00 01 * * * sudo rdate –s time.nist.gov每天凌晨1点钟同步一次。
crontab -l #查看定时任务

crontab定时任务

  • 服务状态相关
1
2
3
4
5
sudo service crond start #启动服务
sudo service crond stop #关闭服务
sudo service crond restart #重启服务
sudo service crond reload #重新载入配置
sudo service crond status #查看服务状态
  • crontab命令
1
2
crontab -l #查看crontab定时任务
crontab -e #编辑定时任务

删除文件不释放磁盘问题

有些大文件使用rm -rf删除后,磁盘空间并没有释放,可能是有进程还在占用

1
2
lsof |grep delete #找到删除却没有释放的文件  记下pid
kill -9 pid #根据lsof列出的进程号 kill掉相关的进程,空间就释放出来了

linux清空删除大文件的方法

  • 重定向
1
2
#通过重定向到null来清空文件
> access.log
  • true命令
1
2
3
#使用true命令重定向清理
: > access.log
true > access.log
  • 使用/dev/null
1
2
3
4
5
6
#使用cat命令重定向到/dev/null
cat /dev/null > access.log
#使用cp命令重定向到/dev/null
cp /dev/null access.log
#使用dd命令,在下面的命令中,** if ** 是输入文件,** of ** 是输出文件。
dd if=/dev/null of=access.log

centos修改ip

查看DNS

1
cat /etc/resolv.conf  #修改的话直接vi这个文件

修改ip

1
cd /etc/sysconfig/network-scripts/  #选择对应的网卡文件编辑

命令自动补全问题

  • 问题:自动补全时按tab键提示bash: _get_comp_words_by_ref: command not found

解决办法:

1
2
 yum -y install bash-completion #下载bash-completion
source /usr/share/bash-completion/bash_completion
  • 执行配置补全

以kubectl为例

1
2
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc