4deb2f2b8f
modified: usr/home/.bash_aliases src well implemented
654 lines
13 KiB
Bash
Executable File
654 lines
13 KiB
Bash
Executable File
# enable color support of ls and also add handy aliases
|
|
if [ -x /usr/bin/dircolors ]; then
|
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
|
alias ls='ls --color=auto'
|
|
alias dir='dir --color=auto'
|
|
alias vdir='vdir --color=auto'
|
|
|
|
alias grep='grep --color=auto'
|
|
alias fgrep='fgrep --color=auto'
|
|
alias egrep='egrep --color=auto'
|
|
fi
|
|
|
|
# colored GCC warnings and errors
|
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
|
|
|
# some more ls aliases
|
|
alias ll='ls -alFh'
|
|
alias la='ls -A'
|
|
alias l='ls -CF'
|
|
|
|
|
|
alias ccc="cc -Wall -Wextra -Werror $@"
|
|
alias val="valgrind --leak-check=full --show-leak-kinds=all"
|
|
alias mvj='rsync -aH --remove-source-files'
|
|
alias cpj='rsync -aH'
|
|
alias git_light="git filter-repo --strip-blobs-bigger-than 10M"
|
|
alias s="sudo -E"
|
|
|
|
function src() {
|
|
source $HOME/.bashrc || true
|
|
d="$PWD"; while [ "$d" != "/" ]; do
|
|
for a in "$d/bin/activate" "$d/.env/bin/activate"; do
|
|
[ -f $a ] && echo "found at $a" && . "$a" && break 2
|
|
done
|
|
d=$(dirname "$d")
|
|
done
|
|
}
|
|
|
|
|
|
##convert mp3 to wav
|
|
#to_wav () {
|
|
# OUTDIR_NAME="wav_files"
|
|
# #mkdir $OUTDIR_NAME
|
|
# for file in "$@" ; do
|
|
# WAV_NAME=${file%.*}.wav
|
|
# echo $file
|
|
# echo
|
|
# ffmpeg -i $file -ar 16000 -ac 1 "$WAV_NAME"
|
|
# done
|
|
#}
|
|
#
|
|
##convert wav to mp3
|
|
#to_mp3 () {
|
|
# #OUTDIR_NAME="wav_files"
|
|
# #mkdir $OUTDIR_NAME
|
|
# for file in "$@" ; do
|
|
# MP3_NAME=${file%.*}.mp3
|
|
# echo $file
|
|
# echo
|
|
# ffmpeg -i $file -vn -b:a 192k "$MP3_NAME"
|
|
# done
|
|
#}
|
|
#
|
|
#cexec () {
|
|
# BASE=($@)
|
|
# NAME="${BASE%.*}"
|
|
# FLAGS=('-Wall' '-Wextra' '-Werror')
|
|
# cc ${FLAGS[@]} $BASE -o "$NAME" && ./"$NAME" && rm $NAME
|
|
#}
|
|
#
|
|
#cdebug () {
|
|
# BASE="$1"
|
|
# NAME="${BASE%.*}"
|
|
# FLAGS="-g3"
|
|
# cc $BASE $FLAGS -o "$NAME" && gdb "$NAME" && rm $NAME
|
|
#}
|
|
#
|
|
#brc () {
|
|
# SOURCE="$HOME/.bashrc"
|
|
# F_NAME=".bashrc"
|
|
# FILE="$(find -O3 $HOME -name $F_NAME 2>/dev/null | head -n 1)"
|
|
# F_PATH="$(dirname $FILE)"
|
|
# cd "$F_PATH"
|
|
# commit_if_modified "$F_NAME"
|
|
# cd -
|
|
# source $SOURCE
|
|
#}
|
|
#
|
|
#vrc () {
|
|
# SOURCE="$HOME/.vimrc"
|
|
# F_NAME=".bash_aliases"
|
|
# FILE="$(find -O3 $HOME -name $F_NAME 2>/dev/null | head -n 1)"
|
|
# F_PATH="$(dirname $FILE)"
|
|
# cd "$F_PATH"
|
|
# commit_if_modified "$F_NAME"
|
|
# cd -
|
|
# source $SOURCE
|
|
#}
|
|
#basha () {
|
|
# SOURCE="$HOME/.bashrc"
|
|
# F_NAME=".bash_aliases"
|
|
# FILE=$HOME/$F_NAME
|
|
# cd "$HOME/machine"
|
|
# commit_if_modified "$FILE"
|
|
# cd -
|
|
# source $SOURCE
|
|
#}
|
|
#
|
|
#machine_install () {
|
|
# FILE=~/machine/install.sh
|
|
# vim $FILE
|
|
# cd $FILE
|
|
# git add $FILE
|
|
# git commit -m "$FILE install mofified"
|
|
# git push
|
|
# cd -
|
|
#}
|
|
#
|
|
#arch_install () {
|
|
# FOLD=~/machine
|
|
# FILE=$FOLD/arch_install.sh
|
|
# vim $FILE
|
|
# cd $FOLD
|
|
# git add $FILE
|
|
# git commit -m "$FILE install mofified"
|
|
# git push
|
|
# cd -
|
|
#}
|
|
#
|
|
#netstat_tunlp () {
|
|
# netstat -tunlp
|
|
#}
|
|
#
|
|
#nmap_full () {
|
|
# sudo nmap --scanflags URGACKPSHRSTSYNFIN $@
|
|
#}
|
|
#
|
|
#nmap_sA () {
|
|
##ACK scan: the target would respond to the ACK with RST regardless of the state of the port
|
|
##help to guess firewall rules if the packet is droped
|
|
# nmap -sA --reason #or -v -vv -d -dd
|
|
#}
|
|
#
|
|
#nmap_version () {
|
|
# #-O = OS detection
|
|
# #-sV services versions
|
|
# #version intensity max
|
|
# #-sC use default script
|
|
# nmap -sV --version-intensity 9 -O -sC $@
|
|
#}
|
|
#
|
|
#nmap_ssh_brute () {
|
|
# nmap --script "ssh-brute" $1 #--script-args userdb=user_list.txt,passdb=passwd_list.txt
|
|
#}
|
|
#
|
|
#gitmain () {
|
|
# if [ -z "$1" ]; then
|
|
# git checkout main
|
|
# git reset --hard "$1"
|
|
# git push origin main --force
|
|
# fi
|
|
#}
|
|
#
|
|
#gitadd () {
|
|
# make fclean
|
|
# git add .
|
|
#}
|
|
#
|
|
#gitaddcommit () {
|
|
# gitadd
|
|
# if [ -n "$1" ]; then
|
|
# git commit -m "$1"
|
|
# else
|
|
# git commit
|
|
# fi
|
|
#}
|
|
#
|
|
#gitotal () {
|
|
# gitaddcommit $@
|
|
# git pull
|
|
# if [ -n "$?" ] ; then
|
|
# git push origin HEAD
|
|
# fi
|
|
#}
|
|
#
|
|
#gitlog () {
|
|
# git log --oneline --decorate --graph --all
|
|
#}
|
|
#
|
|
#aur () {
|
|
# git clone https://aur.archlinux.org/$1.git
|
|
#}
|
|
#
|
|
#history_full () {
|
|
# HIST_FILE=~/.history
|
|
# # => cat ~/.history | head -4
|
|
# # git diff
|
|
# # #1741473628
|
|
# # make && lldb ./push_swap
|
|
# # #1741474988
|
|
# while read LINE; do
|
|
# if [ -n "$(echo "$LINE" | grep '^#')" ]; then
|
|
# date -d "$(echo $LINE | sed 's/\#/@/g')"
|
|
# else
|
|
# echo "$LINE"
|
|
# fi
|
|
# done < $HIST_FILE
|
|
#}
|
|
#
|
|
#normi () {
|
|
# norminette -R CheckForbiddenSourceHeader -R CheckDefine $1
|
|
#}
|
|
#
|
|
#
|
|
#ulog_sort () {
|
|
# sudo grep -Eo "MAC.*DST=[^ ]*" /var/log/ulogd.syslogemu | sort | uniq -c | sort -n
|
|
#
|
|
#}
|
|
#
|
|
#header_awk () {
|
|
# grep -RE $CFUNCTION src | cut -d: -f2 | sed s/\$/';'/g
|
|
#}
|
|
#
|
|
#clone () {
|
|
# if [ $# -eq "3" ] ; then
|
|
# PROFIL_NAME="$1"
|
|
# PROJECT_NAME="$2"
|
|
# git clone https://github.com/$PROFIL_NAME/$PROJECT_NAME.git
|
|
# else
|
|
# PROJECT_NAME="$1"
|
|
# git clone git@github.com:nidionis/$PROJECT_NAME.git
|
|
# fi
|
|
#}
|
|
#
|
|
#iptables_update () {
|
|
# F_PATH="$(dirname $FILE)"
|
|
# F_PERSISTENT="/etc/iptables.rules"
|
|
# FILE="$(find /home -name 'iptables_script.sh' | head -1)"
|
|
# F_TMP=/etc/iptables.rules.backup
|
|
# sudo cp $F_PERSISTENT > $F_TMP
|
|
# vim + $FILE
|
|
# sudo ./$FILE -s -f ip_to_ban.txt -r
|
|
# sudo iptables-save > $HOME/tmp
|
|
# sudo mv $HOME/tmp $F_PERSISTENT
|
|
#}
|
|
#
|
|
#bashalias ()
|
|
#{
|
|
# vim ~/.bash_aliases
|
|
#}
|
|
#
|
|
#bashrc ()
|
|
#{
|
|
# vim ~/.bashrc
|
|
#}
|
|
#
|
|
#
|
|
#uniqq ()
|
|
#{
|
|
# for F in $@ ; do
|
|
# sort $F | uniq -c | sort -nr
|
|
# done
|
|
#}
|
|
#
|
|
#testee ()
|
|
#{
|
|
# if [ "$#" -gt 2 -o "$#" -eq 0 ]; then
|
|
# echo "Usage: $0 [path/to] <file>"
|
|
# echo "default file path is journal/not_sorted/$(date +%F)_${USER}_${$HOST}_${$PWD}.txt"
|
|
# return 1
|
|
# fi
|
|
#}
|
|
#
|
|
#journal-perso ()
|
|
#{
|
|
# refresh_time
|
|
# DIR_ORIGINAL=$PWD
|
|
# DIR="$HOME/perso"
|
|
# DATE_DIR="$YEAR/$MONTH/$DAY"
|
|
# if [ "$#" -eq 0 ]; then
|
|
# echo "Usage: $0 [ subfolder ] < file >"
|
|
# echo "default path is $DIR"
|
|
# echo "default file name is $F_NAME"
|
|
# return 1
|
|
# fi
|
|
# if [ "$#" -eq 1 ]; then
|
|
# LN_DIR="fouretout"
|
|
# F_NAME=$1
|
|
# fi
|
|
# if [ "$#" -eq 2 ]; then
|
|
# LN_DIR="$1"
|
|
# F_NAME=$2
|
|
# else
|
|
# return 1
|
|
# fi
|
|
# F_NAME+=".md"
|
|
# cd $DIR
|
|
# PATH_="${DATE_DIR}/${LN_DIR}"
|
|
# mkdir -p "$PATH_"
|
|
# FILE="${PATH_}/${F_NAME}"
|
|
# header_journal $FILE
|
|
# if commit_if_modified $FILE ; then
|
|
# mkdir -p "$DIR/$LN_DIR"
|
|
# ln -P "$FILE" "$DIR/$LN_DIR/"
|
|
# else
|
|
# rm $FILE
|
|
# rmdir -p "${PATH_}"
|
|
# fi
|
|
# cd $DIR_ORIGINAL
|
|
#}
|
|
#
|
|
#journal ()
|
|
#{
|
|
# refresh_time
|
|
# DIR_ORIGINAL=$PWD
|
|
# DIR="$HOME/journal"
|
|
# DATE_DIR="$YEAR/$MONTH/$DAY"
|
|
# if [ "$#" -eq 0 ]; then
|
|
# echo "Usage: $0 [ subfolder ] < file >"
|
|
# echo "default path is $DIR"
|
|
# echo "default file name is $F_NAME"
|
|
# return 1
|
|
# fi
|
|
# if [ "$#" -eq 1 ]; then
|
|
# LN_DIR="fouretout"
|
|
# F_NAME=$1
|
|
# fi
|
|
# if [ "$#" -eq 2 ]; then
|
|
# LN_DIR="$1"
|
|
# F_NAME=$2
|
|
# else
|
|
# return 1
|
|
# fi
|
|
# F_NAME+=".md"
|
|
# cd $DIR
|
|
# PATH_="${DATE_DIR}/${LN_DIR}"
|
|
# mkdir -p "$PATH_"
|
|
# FILE="${PATH_}/${F_NAME}"
|
|
# header_journal $FILE
|
|
# if commit_if_modified $FILE ; then
|
|
# mkdir -p "$DIR/$LN_DIR"
|
|
# ln -P "$FILE" "$DIR/$LN_DIR/"
|
|
# else
|
|
# rm $FILE
|
|
# rmdir -p "${PATH_}"
|
|
# fi
|
|
# cd $DIR_ORIGINAL
|
|
#}
|
|
#
|
|
#ps_parents ()
|
|
#{
|
|
# if [ "$#" -ne 1 ]; then
|
|
# echo "Usage: $0 <pid>"
|
|
# return 1
|
|
# fi
|
|
# pid=$1
|
|
# while [ "$pid" -ne 1 ]; do
|
|
# ps -p $pid -o pid=,ppid=,cmd=;
|
|
# pid=$(ps -p $pid -o ppid= --no-headers);
|
|
# done
|
|
#}
|
|
#
|
|
#kill_all ()
|
|
#{
|
|
# if [ -z "$1" ]; then
|
|
# echo "Usage: $0 <keyword>"
|
|
# exit 1
|
|
# fi
|
|
#
|
|
# KEYWORD="$1"
|
|
# ps aux | grep "$KEYWORD" | grep -v "grep" | awk '{print $2}' | xargs -r kill -9
|
|
#}
|
|
#
|
|
#gcl ()
|
|
#{
|
|
# git clone $1 $2
|
|
#}
|
|
#
|
|
#src ()
|
|
#{
|
|
# source $HOME/.bashrc
|
|
#}
|
|
#
|
|
## from https://wiki.alpinelinux.org/wiki/Installing_Alpine_in_a_virtual_machine
|
|
#alpine_launch ()
|
|
#{
|
|
# DIR="$HOME"/alpine
|
|
# FILE=$(find $DIR -iregex ".*alpine.*86_64.iso")
|
|
# #FILE="$DIR"/alpine-standard*iso
|
|
# qemu-system-x86_64 -m 512 -nic user,hostfwd=tcp::2222-:22 -boot d -cdrom $FILE -hda alpine.qcow2 -enable-kvm #-display gtk
|
|
#}
|
|
#
|
|
#compose ()
|
|
#{
|
|
# docker compose up --watch
|
|
#}
|
|
#
|
|
#cert_local ()
|
|
#{
|
|
# DIR=${1:-"certs"}
|
|
#
|
|
# mkdir -p $DIR
|
|
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
|
# -keyout $DIR/localhost.key \
|
|
# -out $DIR/localhost.crt \
|
|
# -subj "/CN=localhost"
|
|
#}
|
|
#
|
|
#virtual() {
|
|
# if [ -z "$1" ]; then
|
|
# echo "Usage: virtual <fichier.iso> [arguments supplémentaires pour QEMU]"
|
|
# return 1
|
|
# fi
|
|
# ISO="$1"
|
|
# shift
|
|
# if [ ! -f "$ISO" ]; then
|
|
# echo "Erreur : fichier '$ISO' introuvable."
|
|
# return 1
|
|
# fi
|
|
#
|
|
# qemu-system-x86_64 $ISO \
|
|
# -enable-kvm \
|
|
# -m 2048 \
|
|
# -cpu host \
|
|
# -cdrom "$ISO" \
|
|
# -boot d \
|
|
# -vga virtio \
|
|
# -nic user \
|
|
# "$@"
|
|
#}
|
|
#
|
|
#refresh_time () {
|
|
# export DATE=$(date +"%y%m%d")
|
|
# export TIME=$(date +"%T")
|
|
#}
|
|
#
|
|
#header_journal () {
|
|
# F_NAME=$1
|
|
# echo "$DATE" >> $F_NAME
|
|
# echo "$TIME" >> $F_NAME
|
|
# echo "$USER" >> $F_NAME
|
|
# echo "$HOST" >> $F_NAME
|
|
# echo >> $F_NAME
|
|
# echo "###############################################" >> $F_NAME
|
|
# echo >> $F_NAME
|
|
# echo "$F_NAME" >> $F_NAME
|
|
# echo >> $F_NAME
|
|
#}
|
|
#
|
|
#journalctl_prettyfy () {
|
|
# SIZE=${1:-"100"}
|
|
# UNIQ_MIN=${2:-"1"}
|
|
# BOOT=${3:-"0"}
|
|
# local TMP="/tmp/journalctl_prettyf.tmp"
|
|
# _FILE=${4:-"$TMP"}
|
|
#
|
|
# CMD="sudo journalctl -b ${BOOT} | tail -n $SIZE"
|
|
# CMD_SORTED="${CMD} | cut -d\: -f 4- | sort | uniq -c | sort -n"
|
|
# rm -f "$TMP"
|
|
# append_cmd "$CMD" "$TMP"
|
|
# append_cmd "$CMD_SORTED" "$TMP"
|
|
# grep -vE " +[0-${UNIQ_MIN}] " $TMP >> "$_FILE"
|
|
# if ! $# ; then cat $_FILE ; fi
|
|
# rm "$TMP"
|
|
#}
|
|
#
|
|
#append_cmd () {
|
|
# local CMD=$1
|
|
# local F_NAME=$2
|
|
# echo >> $F_NAME
|
|
# echo ${CMD} >> $F_NAME
|
|
# echo >> $F_NAME
|
|
#
|
|
# eval ${CMD} >> $F_NAME
|
|
# echo >> $F_NAME
|
|
# echo "###############################################" >> $F_NAME
|
|
# echo >> $F_NAME
|
|
#}
|
|
#
|
|
#commit_if_modified () {
|
|
# local F_NAME=$1
|
|
# local DEL=$2
|
|
# git pull
|
|
# vim + $F_NAME
|
|
# git add $F_NAME
|
|
# if ! git commit ; then
|
|
# echo -n "[no modifications]"
|
|
# if [ -n "$DEL" ] ; then
|
|
# rm $F_NAME
|
|
# echo -n " -> deleted"
|
|
# return 1
|
|
# fi
|
|
# fi
|
|
# git push
|
|
# return 0
|
|
#}
|
|
#
|
|
#report_crash ()
|
|
#{
|
|
# refresh_time
|
|
# NAME=$1
|
|
# TAIL_SIZE="100"
|
|
# DIR_ORIGINAL=$PWD
|
|
# CRASH_DIR="$(echo ${DATE}_${TIME} | sed 's/:/-/g')"
|
|
# F_NAME="${NAME}.crash"
|
|
# DIR_RELATIVE="$HOME/journal/sysadmin/crash"
|
|
# DIR_RELATIVE+="/${CRASH_DIR}"
|
|
# if [ "$#" -ne 1 ]; then
|
|
# echo "Usage: $0 FILE_NAME"
|
|
# echo "default path is $DIR_RELATIVE/FILE_NAME.crash"
|
|
# echo "write log outputs"
|
|
# return 1
|
|
# fi
|
|
#
|
|
# mkdir -p $DIR_RELATIVE
|
|
# cd $DIR_RELATIVE
|
|
# if [ -f $F_NAME ] ; then
|
|
# BCK="/tmp/$F_NAME.backup"
|
|
# echo "File exists moved to $BCK"
|
|
# mv $F_NAME $BCK
|
|
# fi
|
|
# header_journal $F_NAME
|
|
# journalctl_prettyfy "100" "1" "0" "$F_NAME"
|
|
# commit_if_modified "$F_NAME" "DELETE_IF_NOT_MODIFIED"
|
|
# cd $DIR_ORIGINAL
|
|
#}
|
|
#
|
|
#report_last_boot ()
|
|
#{
|
|
# refresh_time
|
|
# NAME=$1
|
|
# DIR_ORIGINAL=$PWD
|
|
# CRASH_DIR="$(echo ${DATE}_${TIME} | sed 's/:/-/g')"
|
|
# F_NAME="${NAME}.crash"
|
|
# DIR_RELATIVE="$HOME/journal/sysadmin/crash/reboot"
|
|
# DIR_RELATIVE+="/${CRASH_DIR}"
|
|
# if [ "$#" -ne 1 ]; then
|
|
# echo "Usage: $0 FILE_NAME"
|
|
# echo "default path is $DIR_RELATIVE/${CRASH_DIR}/FILE_NAME.crash"
|
|
# echo "write log outputs"
|
|
# return 1
|
|
# fi
|
|
#
|
|
# mkdir -p $DIR_RELATIVE
|
|
# cd $DIR_RELATIVE
|
|
# header_journal $F_NAME
|
|
# journalctl_prettyfy 500 5 1 $F_NAME
|
|
# journalctl_prettyfy 10000 5 0 $F_NAME
|
|
# commit_if_modified "$F_NAME" "DELETE_IF_NOT_MODIFIED"
|
|
# cd $DIR_ORIGINAL
|
|
#}
|
|
#
|
|
#mediaspi ()
|
|
#{
|
|
# if [ -z $1 ] ; then
|
|
# echo "usage: $0 $DIR_NAME"
|
|
# return 1
|
|
# fi
|
|
# BINAME="collector_bin"
|
|
# DEST="$HOME/perso/${BINAME}"
|
|
# DIR="${1}"
|
|
# mkdir -p $DEST
|
|
# mkdir $DIR
|
|
# if [ $? -ne 0 ] ; then
|
|
# echo "$DIR exists, must be deleted (will be anyway)"
|
|
# return 1
|
|
# fi
|
|
# find . -type f -regextype egrep -iregex ".*$MEDIA_REG" -exec cp --parents -u {} -t $DIR \;
|
|
# cp -apu $DIR -t $DEST
|
|
# rm -rf $DIR
|
|
#}
|
|
#
|
|
#conn () {
|
|
# sudo cat /var/log/connection_attempts.log
|
|
#}
|
|
#
|
|
#sortu() {
|
|
# sort | uniq -c | sort -n
|
|
#}
|
|
#
|
|
#expresso () {
|
|
# DIR="$HOME/perso/thm/interets/jeux/poker"
|
|
# HISTORY="expresso_history.md"
|
|
# SCRIPT=expresso_stat.sh
|
|
# TAIL=${1:-1000}
|
|
#
|
|
# vim + $DIR/$HISTORY
|
|
# bash $DIR/$SCRIPT $DIR/$HISTORY $TAIL
|
|
#}
|
|
#
|
|
#
|
|
#git_list_heavy_commits () {
|
|
# git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n -r | head -n 20
|
|
#}
|
|
#
|
|
#git_list_heavy () {
|
|
# for B in $(git_list_heavy_commits | cut -d' ' -f1) ; do git rev-list --all | while read commit; do git ls-tree -rl $commit; done | grep $B ; done
|
|
#}
|
|
#
|
|
#git_rm_repo () {
|
|
# KEYWORD=$1 #ex: '*.mp4'
|
|
# git filter-repo --path-glob "$KEYWORD" --invert-paths
|
|
#}
|
|
#
|
|
#
|
|
#
|
|
#
|
|
#monip () {
|
|
# curl ifconfig.me
|
|
#}
|
|
#
|
|
#ipinfo () {
|
|
# curl https://ipinfo.io/$1
|
|
#}
|
|
#
|
|
#remote () {
|
|
# USER=${1:-$LOGNAME}
|
|
# HOST=${2:-"37.187.180.32"}
|
|
# PORT=${3:-"9191"}
|
|
# sudo -u $USER ssh -l $USER -i /home/$USER/.ssh/id_rsa -p $PORT $HOST
|
|
#}
|
|
#
|
|
#remote_copy () {
|
|
# ITEM=${1:-""}
|
|
# USER=${2:-$LOGNAME}
|
|
# HOST=${3:-"37.187.180.32"}
|
|
# PORT=${4:-"9191"}
|
|
# if [ -z "$ITEM" ] ; then
|
|
# return 1
|
|
# fi
|
|
# sudo -u $USER scp -i /home/$USER/.ssh/id_rsa -P $PORT -r $ITEM $USER@$HOST:$ITEM
|
|
#}
|
|
#
|
|
#grepip () {
|
|
# grep -E $IP_REG -o $1 | sortu
|
|
#}
|
|
#
|
|
#edit-bin () {
|
|
# BIN_PATH=${BIN_PATH:-$HOME/bin}
|
|
# FILENAME=$1
|
|
# TEMPLATE=~/.vim/templates/template.my_aliases
|
|
#
|
|
# if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
|
|
# echo "Usage: $0 alias_name"
|
|
# return 1
|
|
# fi
|
|
#
|
|
# cd $BIN_PATH
|
|
# [ ! -f "$FILENAME" ] && cp "$TEMPLATE" "$FILENAME"
|
|
# commit_if_modified $FILENAME
|
|
# chmod +x $FILENAME
|
|
# cd -
|
|
#}
|