使用自定义 CLI 命令运行 ShellScript

使用自定义 CLI 命令运行 ShellScript

我有一个经常用来手动清除 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即可调用并运行该脚本,类似于nmapping

我是否必须将其添加到包管理器中以及我该如何操作?

答案1

最快的方法是使用别名。

将其添加到您的.bashrc

alias ramflush='/path/to/your/script/ramflush.sh'

然后打开一个新终端或运行source ~/.bashrc以重新加载您的 bash 配置。

您现在可以ramflush在终端上拨打任何电话。

答案2

您可以在两个地方删除该脚本而不ramflush使用扩展名:sh

  1. ~/bin或者
  2. /usr/local/bin

对于第一种情况,请用该行添加该路径.bashrcexport PATH=$PATH:$HOME/bin另一种情况已在您的路径中。现在您只需键入 即可ramflush

相关内容