我有一个经常用来手动清除 RAM 中的 dentry、inodes 和页面缓存的 shell 脚本:ramflush.sh
#!/bin/bash
echo " ██▀███ ▄▄▄ ███▄ ▄███▓ "
echo "▓██ ▒ ██▒▒████▄ ▓██▒▀█▀ ██▒ _____ "
echo "▓██ ░▄█ ▒▒██ ▀█▄ ▓██ ▓██░ | | F"
echo "▒██▀▀█▄ ░██▄▄▄▄██ ▒██ ▒██ | | L "
echo "░██▓ ▒██▒ ▓█ ▓██▒▒██▒ ░██▒ | | U"
echo "░ ▒▓ ░▒▓░ ▒▒ ▓▒█░░ ▒░ ░ ░ \___| S _"
echo " ░▒ ░ ▒░ ▒ ▒▒ ░░ ░ ░ || ____H__ -( (-"
echo " ░░ ░ ░ ▒ ░ ░ |_'(-------) '-'"
echo " ░ ░ ░ ░ | /"
echo "___________VERSION 1.0______________,-\__..__|_____"
echo " "
read -p "[*] Do you have a need to flush?: " yn
case $yn in
[Yy]* ) ;;
[Nn]* ) echo "[X] Understood."; exit;;
* ) echo "[X] No input detected. Exiting."; exit;;
esac
echo " "
echo " <=== OPTIONS ===>"
echo " "
echo "1. Clear RAM Page Cache."
echo "2. Clear Dentries and Inodes."
echo "3. Clear Page Cache, Dentries and Inodes."
echo " "
read -p "[*] Choose what to flush: " ans
case $ans in
[1]* ) echo 1 > /proc/sys/vm/drop_caches; echo "[*] Cache Cleared.";;
[2]* ) echo 2 > /proc/sys/vm/drop_caches; printf "[*]Dentries Cleared.\n[*]Inodes Cleared.\n";;
[3]* ) echo 3 > /proc/sys/vm/drop_caches; printf "[*]Page Cache Cleared\n[*]Dentries Cleared.\n[*]Inodes Cleared.\n";;
* ) echo "[X] No input detected. Exiting."; exit;;
esac
但是,不断切换回我的主目录,然后进入文件夹并调用脚本,这很令人厌烦。我也拒绝手动执行命令,因为这违背了我编写脚本的目的。
有没有办法可以将其添加到我的 bash shell 中,以便能够从任何目录运行该脚本,只需键入ramflush
即可调用并运行该脚本,类似于nmap
或ping
?
我是否必须将其添加到包管理器中以及我该如何操作?
答案1
最快的方法是使用别名。
将其添加到您的.bashrc
:
alias ramflush='/path/to/your/script/ramflush.sh'
然后打开一个新终端或运行source ~/.bashrc
以重新加载您的 bash 配置。
您现在可以ramflush
在终端上拨打任何电话。
答案2
您可以在两个地方删除该脚本而不ramflush
使用扩展名:sh
~/bin
或者/usr/local/bin
,
对于第一种情况,请用该行添加该路径.bashrc
,export PATH=$PATH:$HOME/bin
另一种情况已在您的路径中。现在您只需键入 即可ramflush
。