Bash álnevek nem élhetsz nélkül

0 Comments

a Bash alias egy módszer kiegészítésére vagy felülírására Bash parancsok újakat. A Bash álnevek megkönnyítik a felhasználók számára, hogy testreszabják tapasztalataikat egy POSIX terminálon. Ezek gyakran meghatározott $ HOME/.bashrc vagy $ HOME / bash_aliases (amelyet $HOME / kell betölteni.bashrc).

a legtöbb disztribúció legalább néhány népszerű álnevet ad hozzá alapértelmezés szerint .bashrc fájl minden új felhasználói fiók. Ezek egyszerűek, hogy bemutassák a szintaxis egy Bash alias:

alias ls="ls -F"
alias ll="ls -lh"

nem minden disztribúció hajó előre lakott álnevek, bár., Ha manuálisan ad hozzá álneveket, akkor be kell töltenie azokat az aktuális Bash munkamenetbe:

$ source ~/.bashrc

ellenkező esetben bezárhatja a terminált, majd újra megnyithatja, hogy újratöltse a konfigurációs fájlt.

a Bash inicializációs szkriptben meghatározott álnevekkel ezután beírhatja az ll-t, és megkaphatja az ls-l eredményeit, és ha LS-t ír be, akkor a sima régi ls kimenete helyett.

ezek az álnevek nagyszerűek, de csak megkarcolják a lehetséges felületet. Itt vannak a top 10 Bash álnevek, hogy, ha egyszer megpróbálja őket, akkor nem lesz képes nélkül élni.,

először állítson be

a kezdés előtt hozzon létre egy ~/nevű fájlt.bash_aliases:

$ touch ~/.bash_aliases

Ezután ellenőrizze, hogy ez a kód megjelenik-e a ~/ – Ben.bashrc fájl:

if ; then
source $HOME/.bash_aliases
fi

Ha meg akarja próbálni a cikkben szereplő álneveket, írja be őket a .bash_aliases fájlt, majd töltse be őket a Bash munkamenet a forrás ~/.bashrc parancsnokság.,

Rendezés fájlméret szerint

ha számítógépes életét olyan GUI fájlkezelőkkel kezdte, mint a nautilus a GNOME-ban, a Finder a MacOS-ban vagy az Explorer A Windows rendszerben, akkor valószínűleg a fájlok listájának méret szerinti rendezésére használják. Ezt meg lehet csinálni egy terminálon is, de ez nem pontosan tömör.

adja hozzá ezt az álnevet a GNU rendszer konfigurációjához:

alias lt="ls --human-readable --size -1 -S --classify"

Ez az alias helyettesíti az lt-t egy ls paranccsal, amely megjeleníti az egyes elemek méretét, majd méret szerint rendezi, egyetlen oszlopban, jelöléssel, hogy jelezze a fájl típusát., Terhelés az új álnevet, akkor próbáld ki:

A MacOS vagy BSD, az ls parancs nem ugyanazok a beállítások, így ez alias működik helyett:

alias lt="du -sh * | sort -h"

Az eredmény ez a verzió egy kicsit más:

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

sőt, még a Linux, ez a parancs akkor használható, mert használatával van listák, könyvtárak, valamint a szimbolikus linkeket, mint az, hogy 0 a méret, amely nem lehet az információt, amit valójában akarsz. Ez a te döntésed.

köszönet Brad Alexander – nek az álnév ötletért.

csak szerelt meghajtók megtekintése

a mount parancs olyan egyszerű volt., Csak egy parancs, akkor kap egy listát az összes szerelt fájlrendszerek a számítógépen, és gyakran használják áttekintést, hogy milyen meghajtók csatolták a munkaállomás. Régen lenyűgöző volt, hogy több mint három vagy négy bejegyzést látott, mert a legtöbb számítógépnek nincs sokkal több USB portja, így az eredmények kezelhetők voltak.,

a Számítógépek egy kicsit bonyolultabb, de közötti LVM fizikai meghajtó, hálózati tároló, valamint virtuális fájlrendszerek, az eredmények a mount nehéz lehet értelmezni:

megoldani ezt A problémát, próbálja meg egy álnevet, mint ez:

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

Ez a álnevet használ awk értelmezni a kimenet a mount által oszlop, csökkenti a kimenetet, amit valószínűleg keres (mi merevlemezek, nem pedig a fájl rendszerek, vannak szerelve):

A MacOS, a mount parancsot nem ad nagyon bőbeszédű kimenet, így álnév lehet, hogy túlzás., Azonban, ha inkább egy szűkszavú jelentés, próbáld ki ezt:

alias mnt="mount | grep -E ^/dev | column -t"

eredmények:

Keresés parancsot a grep történelem

Néha kitalálni, hogyan kell csinálni valamit, a terminál, de ígérd meg magadnak, hogy soha nem felejtem el, amit tanultam. Aztán eltelt egy óra, és teljesen elfelejtetted, mit tettél.

a Bash-előzmények keresése mindenkinek időről időre meg kell tennie., Ha pontosan tudja, mit keres, akkor a Ctrl + R segítségével fordított keresést végezhet az előzményeken keresztül, de néha nem emlékszik a pontos parancsra, amelyet meg akar találni.

Itt egy álnév, hogy ezt a feladatot egy kicsit könnyebb:

alias gh="history|grep"

Itt egy példa, hogyan kell használni:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

Rendezés módosítás idő

Ez történik minden hétfőn: dolgozom, te ülj le a számítógép, akkor nyiss egy terminált, ön elfelejtette volna, mit csináltál múlt pénteken., Amire szüksége van egy álnév a legutóbb módosított fájlok listájához.

Az LS paranccsal létrehozhat egy álnevet, hogy segítsen megtalálni, ahol abbahagyta:

alias left="ls -t -1"

a kimenet egyszerű, bár kiterjesztheti azt a –hosszú opcióval, ha úgy tetszik., Az alias felsorolt, jeleníti meg ezt:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

Gróf fájlok

Ha meg kell tudni, hogy hány fájl van a könyvtár, a megoldás az egyik klasszikus példa a UNIX parancs felépítése: a lista fájlok az ls parancsot, kontrollálni a kimenetet csak az egyik oszlop a -1 lehetőséget, majd a cső, hogy a kibocsátás a wc (szavak száma) parancs, hogy hány vonalak az egyes fájlok is vannak.

Ez egy ragyogó bemutató arról, hogy a UNIX filozófia lehetővé teszi a felhasználók számára, hogy saját megoldásokat készítsenek kis rendszerösszetevők segítségével., Ez a parancs kombináció is sokat gépelni, ha történetesen csinálni naponta többször, és ez nem pontosan működik a könyvtárak használata nélkül a-R opció, amely bevezeti az új sorokat a kimenet, és teszi a gyakorlat haszontalan.

Ehelyett ez az alias megkönnyíti a folyamatot:

alias count="find . -type f | wc -l"

Ez a fájlokat számolja, figyelmen kívül hagyva a könyvtárakat, de nem a könyvtárak tartalmát. Ha két könyvtárat tartalmazó projektmappája van, amelyek mindegyike két fájlt tartalmaz, az alias négyet ad vissza, mert a teljes projektben négy fájl található.,

$ ls
foo bar
$ count
4

hozzon létre egy Python virtuális környezetet

kódol Pythonban?

sokat kódol a Python-ban?

Ha igen, akkor tudja, hogy a Python virtuális környezet létrehozása legalább 53 billentyűleütést igényel.
ez 49 túl sok, de könnyen megkerülhető két új álnévvel, a ve-vel és a va-val:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

Running ve létrehoz egy új, venv nevű könyvtárat, amely tartalmazza a python3 szokásos virtuális környezet fájlrendszerét., A va alias aktiválja a környezetet a jelenlegi héjban:

$ cd my-project
$ ve
$ va
(venv) $

adjon hozzá egy másolási folyamatsávot

mindenki szórakoztatja a progress bárokat, mert hírhedten pontatlanok. És mégis, mélyen, úgy tűnik, mindannyian akarjuk őket. A UNIX cp parancsnak nincs előrehaladási sávja, de rendelkezik a-v opcióval a beszédességhez, ami azt jelenti, hogy visszhangozza az egyes fájlok nevét, amelyeket a terminálra másolnak. Ez egy nagyon jó hack, de ez nem működik olyan jól, ha másolás egy nagy fájlt, és szeretné, hogy némi utalás, hogy mennyi a fájl még át kell adni.,

a pv parancs egy folyamatsávot biztosít a másolás során, de alapértelmezett alkalmazásként nem gyakori. Másrészt az rsync parancs szinte minden rendelkezésre álló POSIX rendszer alapértelmezett telepítésében szerepel, széles körben elismert, mint a fájlok távoli vagy helyi másolásának egyik legokosabb módja.

még jobb, hogy van egy beépített folyamatjelző sáv.,

alias cpv="rsync -ah --info=progress2"

ezzel alias ugyanaz, mint használ a cp parancs:

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

Egy érdekes mellékhatása, hogy a parancs használata az rsync másolatok mind a fájlok, könyvtárak nélkül -r zászlót, hogy a cp egyébként szükség.

védje magát a fájl eltávolítási balesetektől

ne használja az rm parancsot. Az RM kézikönyv még ezt is mondja:

figyelmeztetés: ha ” rm ” – et használ egy fájl eltávolításához, általában lehetséges a fájl tartalmának helyreállítása., Ha nagyobb bizonyosságot szeretne arról, hogy a tartalom valóban helyrehozhatatlan, fontolja meg a “foszlány” használatát.

Ha el szeretne távolítani egy fájlt, akkor a fájlt a kukába kell helyeznie, ugyanúgy, mint az asztal használatakor.

a POSIX ezt egyszerűvé teszi, mivel a Kuka egy elérhető, tényleges hely a fájlrendszerben. Ez a hely változhat, attól függően, hogy a platform: a FreeDesktop, a szemetet található~/.helyi / megosztás / Kuka, míg MacOS-on~/.,Trash, de akárhogy is, ez csak egy könyvtár, amelybe olyan fájlokat helyez el, amelyeket szem elől akar hagyni, amíg készen áll arra, hogy örökre törölje őket.

Ez az egyszerű alias módot ad arra, hogy fájlokat dobjon a terminál Kukájába:

alias tcn="mv --force -t ~/.local/share/Trash "

Ez az alias egy kevéssé ismert mv zászlót használ, amely lehetővé teszi, hogy a fájlt végső érvként adja meg, figyelmen kívül hagyva a fájl első listázásának szokásos követelményét., Most már az új parancs segítségével áthelyezheti a fájlokat és mappákat a rendszer Kukájába:

$ ls
foo bar
$ tcn foo
$ ls
bar

most a fájl “eltűnt”, de csak addig, amíg hideg verejtékben rájön, hogy még mindig szüksége van rá. Ezen a ponton, akkor mentse a fájlt a rendszer szemetet; ügyeljen arra, hogy tipp a Bash és mv fejlesztők a kiutat.

Megjegyzés: Ha robusztusabb Trash parancsra van szüksége a jobb FreeDesktop megfelelőséggel, lásd Trashy.

egyszerűsítse a Git munkafolyamatot

mindenkinek egyedi munkafolyamata van, de általában ismétlődő feladatok vannak, bármi is legyen., Ha rendszeresen dolgozik a Git-vel, akkor valószínűleg van néhány sorrend, amelyet elég gyakran ismételnek meg. Talán úgy találja magát, hogy visszatér a mesterághoz, és a nap folyamán újra és újra meghúzza a legújabb változtatásokat, vagy talán úgy találja magát, hogy címkéket készít, majd a távirányítóhoz nyomja őket, vagy talán valami más teljesen.

nem számít, milyen Git varázsigét már belefáradt a gépelés, akkor lehet, hogy enyhítse a fájdalmat egy Bash alias., Nagyrészt annak köszönhetően, hogy képes érveket átadni a horgoknak, a Git gazdag introspektív parancsokkal rendelkezik, amelyek megmentik Önt attól, hogy Bash-ben rejtélyes bravúrokat hajtson végre.

például, bár lehet, hogy küzd, hogy keresse meg, a bash, a projekt felső szintű könyvtár (ami, amennyire Bash illeti, egy teljesen önkényes kijelölés, mivel az abszolút felső szinten a számítógép a gyökér könyvtár), Git tudja, hogy a felső szinten egy egyszerű lekérdezés., Ha tanulni fel Git horgok, akkor találja magát képes kideríteni mindenféle információt, hogy Bash semmit sem tud, de akkor kihasználni, hogy az információ egy bash alias.,

itt van egy alias, hogy megtalálja a GIT projekt felső szintjét, függetlenül attól, hogy hol dolgozik a projektben, majd változtassa meg a könyvtárat, váltson a mester ágra, és végezzen egy Git húzást:

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

Ez a fajta alias egyáltalán nem egyetemesen hasznos alias, de megmutatja, hogy egy viszonylag egyszerű álnév hogyan képes kiküszöbölni sok fáradságos navigációt, parancsot és várakozást.

egy egyszerűbb, és valószínűleg univerzálisabb alias visszatér a GIT projekt legfelső szintjére., Ez az alias azért hasznos, mert amikor egy projekten dolgozik, az a projekt többé-kevésbé az “ideiglenes otthoni” könyvtárává válik. Legyen olyan egyszerű, hogy megyek “haza”, mint a tényleges haza, de itt van egy alias kell tennie:

alias cg="cd `git rev-parse --show-toplevel`"

a parancs cg úgy, hogy a tetején a Git projekt, nem számít, milyen mély a könyvtárszerkezet ereszkedett.,

könyvtárak módosítása és a tartalom megtekintése egyszerre

egykor (állítólag) egy vezető tudós javasolta, hogy a bolygó számos energiaproblémáját meg tudjuk oldani azáltal, hogy kihasználjuk a geekek által használt energiát gépelés cd, majd ls.
Ez egy közös minta, mert általában a könyvtárak megváltoztatásakor megvan az impulzus vagy annak szükségessége, hogy megnézze, mi van körül.

de a számítógép könyvtárfájának “sétálása” nem kell start-stop folyamat.

ez csalás, mert egyáltalán nem álnév, de nagyszerű ürügy a Bash funkciók felfedezésére., Míg álnevek nagy gyors helyettesítések, Bash lehetővé teszi, hogy adjunk a helyi funkciók a .bashrc fájl (vagy egy külön funkciók fájlt, hogy töltse be .bashrc, ahogy az álnevek fájlját is).

a dolgok moduláris felépítéséhez hozzon létre egy új fájlt ~/néven.bash_functions majd a .,bashrc terhelés:

if ; then
source $HOME/.bash_functions
fi

a funkciók fájlt, adja meg ezt a kódot:

Betölteni azt a funkciót, a Bash munkamenetet, majd próbáld ki:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

a Funkciók sokkal rugalmasabb, mint álneve, de, hogy a rugalmasság jön a felelőssége, hogy meggyőződjön arról, hogy a kód van értelme, s nem az, amit vártam. Álnevek célja, hogy egyszerű, így tartsa őket könnyű, de hasznos. A Bash viselkedésének komoly módosításához használjon funkciókat vagy egyéni shell szkripteket, amelyeket az elérési útjába mentett helyre mentett.,

a felvételhez van néhány okos hack a cd és ls szekvencia aliasként való megvalósítására, tehát ha elég türelmes vagy, akkor az ég a határ még szerény álnevek használatával is.

aliasing indítása és működése


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük