久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何自定義一個Linux命令(簡單易懂版)

 bin仔學(xué)習(xí)園地 2022-09-26 發(fā)布于上海

??好久沒寫東西了,,如果不往外輸出,就不知道自己到底經(jīng)歷過什么,,學(xué)到過什么,,簡書的第一篇文章從這篇前年寫在csdn的文章開啟,。以下是正文,希望大家能夠互相支持,,共勉,!
??Linux系統(tǒng)提供了大量的命令供用戶使用,一般來說,,一條命令對應(yīng)一定的功能,,當(dāng)我們需要完成復(fù)雜的任務(wù)時,就需要使用命令的組合或者寫腳本來完成,。有的時候,,這些指令組合需要多次執(zhí)行,,這個時候,我們就希望有一條命令可以代替我們需要輸入的復(fù)雜命令,。不然,,就不得不劈里啪啦地打一堆命令才行,。

臨時自定義命令

??Linux支持用戶自定義一個命令,。用戶可以使用alias(英文單詞,別名,,化名的意思)命令為一串指令指定一個別名,。使用alias命令自定義命令的方式如下:

alias command='command1;command2;command3...'

??例如,我們想要查看當(dāng)前目錄下的所有文件,,刪除名為template的文件夾,,再創(chuàng)建一個名為template的文件夾,并在里面創(chuàng)建一個名為temp.txt,內(nèi)容為11的文件,,需要執(zhí)行如下操作:


ls

rm -r template

mkdir template

cd template

cat 11 > temp.txt

??如果我們需要多次執(zhí)行上面的命令序列,,我們可以為其創(chuàng)建一個別名,假設(shè)此別名為abc, 需要執(zhí)行以下操作:

  1. type abc #查看是否存在名為abc的系統(tǒng)命令,,提示 bash: type: abc: not found,,與明不存在這樣的命令
  2. alias abc='ls;rm -r template;mkdir template;cd template;cat 11 > temp.txt'
  3. 執(zhí)行abc,測試命令是否生效

重啟也不會失效的自定義做法

??按照上面的方式自定義的命令在系統(tǒng)重啟后會失效,,想要每次開機后都能使用自定義的命令我們還需要做以下工作:

將自定義命令的操作寫入到/root/.bashrc_aliases文件里面,。如果文件不存在,創(chuàng)建此文件即可,,這個文件是Linux系統(tǒng)為自定義命令專門留的接口,。我們可以在/root/.bashrc中看到關(guān)于這個文件的描述。

Linux_命令自定義插圖

延伸閱讀

??從上述自定義命令的方式來看,,我們不僅可以為命令序列起別名,,還可以通過寫腳本的方式來構(gòu)建更加復(fù)雜的命令。例如ant編譯命令可以通過下面的方式傳入?yún)?shù)來編譯,,但需要輸入較多的文字,,用起來很麻煩:

ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion -Dclear.exist.libraries=$clear_static_libs_flag -Dstatic.libraries.dir=$static_lib_path -Dmykey.path=$keysoter_path

??為了方便編譯,我們可以開發(fā)一個shell腳本build.sh,,通過傳參數(shù)來完成調(diào)用,。

#!/bin/bash

echo 'The parameter is empty.We'll use default config to compile the module.'

echo 'Usage : '

echo '1. SDK path'

echo '2. target version No. '

echo '3. clear.exist.libraries. True means it will clear the libraries. '

echo '4. static.libraries.dir'

echo '5. Keystore path'

echo 'ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion -Dclear.exist.libraries=$clear_static_libs_flag -Dstatic.libraries.dir=$static_lib_path -Dmykey.path=$keysoter_path'

echo

sdk_path=$1
targetSdkVersion=$2
clear_static_libs_flag=$3
static_lib_path=$4
keysoter_path=$5

if [ x$sdk_path == x'' ]; then
    read -p 'Continue or not ?[y/n]' decision
    if [ $decision = 'y' ];then
        ant release
    else
        exit 1
    fi
elif [ x$targetSdkVersion == x'' ]; then
    ant release -Dsdk.dir=$sdk_path
elif [ x$clear_static_libs_flag == x'' ]; then
    ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion
elif [ x$static_lib_path == x'' ]; then
    ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion -Dclear.exist.libraries=$clear_static_libs_flag
elif [ x$static_lib_path == x'' ]; then
    ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion -Dclear.exist.libraries=$clear_static_libs_flag -Dstatic.libraries.dir=$static_lib_path
else
    ant release -Dsdk.dir=$sdk_path -Dtarget=android-$targetSdkVersion -Dclear.exist.libraries=$clear_static_libs_flag -Dstatic.libraries.dir=$static_lib_path -Dmykey.path=$keysoter_path
fi

??使用腳本來執(zhí)行編譯的話,我們僅需要把腳本放到代碼目錄里面,,再執(zhí)行以下命令即可

./build.sh /work/sdk/android_5.1_sdk 22 false

??現(xiàn)在編譯命令比最開始的已經(jīng)簡化了很多,,缺點是我們需要知道腳本的存放位置。如果我們不想讓別的使用者知道這個腳本的位置,,并且希望輸入能更加簡潔,,這個時候就可以用上面介紹的自定義shell命令的方法了:

alias ca='/work/script/build.sh'

??這樣,,我們下次想要編譯代碼時,只需要在工程目錄下執(zhí)行ca命令并按照需要調(diào)用參數(shù)就可以了,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多