GNU/Linux >> Znalost Linux >  >> Linux

6 Úžasné linuxové cd command Hacks – Tip pro produktivitu č. 3 pro nadšence

Tento článek je součástí probíhající série Tipy pro produktivitu pro geeky. cd je jedním z nejčastěji používaných příkazů během relace Unixu. V tomto článku jsem uvedl 6 hacků příkazů cd, které okamžitě zvýší vaši produktivitu a usnadní navigaci v adresářové struktuře z příkazového řádku.

Hack #1:Použijte CDPATH k definování základního adresáře pro příkaz cd

Pokud často provádíte cd do podadresářů konkrétního nadřazeného adresáře, můžete nastavit CDPATH na nadřazený adresář a provést cd do podadresářů bez uvedení cesty k nadřazenému adresáři, jak je vysvětleno níže.

[ramesh@dev-db ~]# pwd
/home/ramesh

[ramesh@dev-db ~]# cd mail
-bash: cd: mail: No such file or directory
[Note: This is looking for mail directory under current directory]

[ramesh@dev-db ~]# export CDPATH=/etc
[ramesh@dev-db ~]# cd mail
[Note: This is looking for mail under /etc and not under current directory]

[ramesh@dev-db /etc/mail]# pwd
/etc/mail

Chcete-li, aby tato změna byla trvalá, přidejte export CDPATH=/etc do vašeho ~/.bash_profile

Tento hack může být velmi užitečný v následujících situacích:

  • Oracle DBA často pracující pod $ORACLE_HOME mohou nastavit proměnnou CDPATH na domovskou stránku Oracle
  • Unixoví správci systému, kteří často pracují pod /etc, mohou nastavit proměnnou CDPATH na /etc
  • Vývojáři často pracující v adresáři projektu /home/projects mohou nastavit proměnnou CDPATH na /home/projects
  • Koncoví uživatelé, kteří často přistupují k podadresářům ve svém domovském adresáři, mohou nastavit proměnnou CDPATH na ~ (domovský adresář)

Hack #2:Použijte alias cd k efektivnímu procházení adresáře

Když procházíte velmi dlouhou adresářovou strukturou, můžete použít cd ..\..\ s více ..\'s v závislosti na tom, kolik adresářů chcete přejít, jak je uvedeno níže.

# mkdir -p /tmp/very/long/directory/structure/that/is/too/deep

# cd /tmp/very/long/directory/structure/that/is/too/deep
# pwd
/tmp/very/long/directory/structure/that/is/too/deep

# cd ../../../../
# pwd
/tmp/very/long/directory/structure

Namísto spouštění cd ../../../.. pro přechod o čtyři úrovně výš použijte jednu z následujících metod aliasů:

Navigujte v adresáři nahoru pomocí ..n : V níže uvedeném příkladu se ..4 používá pro přechod o 4 adresářovou úroveň nahoru, ..3 pro přechod o 3 adresářovou úroveň nahoru, ..2 pro přechod o 2 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste.

alias ..="cd .."
alias ..2="cd ../.."
alias ..3="cd ../../.."
alias ..4="cd ../../../.."
alias ..5="cd ../../../../.."

# cd /tmp/very/long/directory/structure/that/is/too/deep
#..4
[Note: use ..4 to go up 4 directory level]
# pwd
/tmp/very/long/directory/structure/


Navigace v adresáři pouze pomocí teček: V níže uvedeném příkladu se ….. (pět teček) používá k přechodu o 4 úrovně adresářů nahoru. Zadáním 5 teček nahoru 4 adresářová struktura je opravdu snadno zapamatovatelná, protože když napíšete první dvě tečky, myslíte si, že „jít o jeden adresář nahoru“, poté každá další tečka znamená přejít o úroveň výše. Takže použijte…. (čtyři tečky) pro přechod o 3 adresářovou úroveň nahoru a .. (dvě tečky) pro přechod o 1 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste, aby ….. (pět teček) fungoval správně.

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."

# cd /tmp/very/long/directory/structure/that/is/too/deep
# .....
[Note: use ..... (five dots) to go up 4 directory level]
# pwd
/tmp/very/long/directory/structure/


Navigujte v adresáři nahoru pomocí cd následovaného po sobě jdoucími tečkami: V níže uvedeném příkladu se cd….. (cd následované pěti tečkami) používá k přechodu o 4 úrovně adresářů nahoru. Vytvoření 5 teček nahoru 4 adresářová struktura je opravdu snadno zapamatovatelná, protože když napíšete první dvě tečky, myslíte si, že „jít o jeden adresář nahoru“, poté každá další tečka znamená jít o úroveň výš. Takže použijte cd... (cd následované čtyřmi tečkami) pro přechod o 3 adresářovou úroveň nahoru a cd… (cd následované třemi tečkami) pro přechod o 2 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste pro výše uvedené cd….. (pět teček), aby fungovalo správně.

alias cd..="cd .."
alias cd...="cd ../.."
alias cd....="cd ../../.."
alias cd.....="cd ../../../.."
alias cd......="cd ../../../../.."

# cd /tmp/very/long/directory/structure/that/is/too/deep
# cd.....
[Note: use cd..... to go up 4 directory level]
# pwd
/tmp/very/long/directory/structure

Hac #3:Proveďte mkdir a cd pomocí jediného příkazu

Někdy, když vytváříte nový adresář, můžete do nového adresáře okamžitě cd, abyste provedli nějakou práci, jak je ukázáno níže.

# mkdir -p /tmp/subdir1/subdir2/subdir3
# cd /tmp/subdir1/subdir2/subdir3
# pwd
/tmp/subdir1/subdir2/subdir3

Nebylo by hezké zkombinovat mkdir i cd do jednoho příkazu? Přidejte následující do .bash_profile a znovu se přihlaste.

function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }

Nyní proveďte mkdir i cd současně pomocí jediného příkazu, jak je ukázáno níže:

# mkdircd /tmp/subdir1/subdir2/subdir3
[Note: This creates the directory and cd to it automatically]
# pwd
/tmp/subdir1/subdir2/subdir3

Hack #4:Použijte „cd -“ k přepínání mezi posledními dvěma adresáři

Mezi posledními dvěma aktuálními adresáři můžete přepínat pomocí cd – jak je ukázáno níže.

# cd /tmp/very/long/directory/structure/that/is/too/deep
# cd /tmp/subdir1/subdir2/subdir3

# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep

# cd -
# pwd
/tmp/subdir1/subdir2/subdir3

# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep

Poznámka :Můžete také nahradit argument z jiných příkazů v historii příkazem cd pomocí příkladů č. 12 a č. 13 uvedených v článku s příklady historie příkazového řádku.

Hack #5:Použijte dirs, pushd a popd k manipulaci se zásobníkem adresářů

Zásobník adresářů můžete použít k vložení adresářů do něj a později adresáře ze zásobníku. V tomto příkladu jsou použity následující tři příkazy.

  • dirs:Zobrazí zásobník adresářů
  • pushd:Push adresář do zásobníku
  • popd:Pop adresář ze zásobníku a cd do něj

Dirs vždy vytiskne aktuální adresář následovaný obsahem zásobníku. I když je zásobník adresářů prázdný, příkaz dirs bude stále tisknout pouze aktuální adresář, jak je znázorněno níže.

# popd
-bash: popd: directory stack empty

# dirs
~

# pwd
/home/ramesh

Jak používat pushd a popd? Nejprve vytvoříme nějaké dočasné adresáře a vložíme je do zásobníku adresářů, jak je znázorněno níže.

# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4

# cd /tmp/dir1
# pushd .

# cd /tmp/dir2
# pushd .

# cd /tmp/dir3
# pushd .

# cd /tmp/dir4
# pushd .

# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
[Note: The first directory (/tmp/dir4) of the dir command output is always
          the current directory and not the content from the stack.]

V této fázi obsahuje zásobník adresářů následující adresáře:

/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1

Poslední adresář, který byl vložen do zásobníku, bude nahoře. Když provedete popd, bude cd na horní položku adresáře v zásobníku a odstraní ji ze zásobníku. Jak je uvedeno výše, poslední adresář, který byl vložen do zásobníku, je /tmp/dir4. Takže, když uděláme popd, bude cd do /tmp/dir4 a odstraní ho ze zásobníku adresářů, jak je ukázáno níže.

# popd
# pwd
/tmp/dir4

[Note: After the above popd, directory Stack Contains:
/tmp/dir3
/tmp/dir2
/tmp/dir1]

# popd
# pwd
/tmp/dir3

[Note: After the above popd, directory Stack Contains:

/tmp/dir2
/tmp/dir1]

# popd
# pwd
/tmp/dir2

[Note: After the above popd, directory Stack Contains: /tmp/dir1]

# popd
# pwd
/tmp/dir1

[Note: After the above popd, directory Stack is empty!]

# popd
-bash: popd: directory stack empty

Hack #6:Použijte „shopt -s cdspell“ k automatické opravě chybně zadaných názvů adresářů na cd

Použijte shopt -s cdspell pro automatickou opravu překlepů v příkazu cd, jak je znázorněno níže. Pokud nejste dobří v psaní a děláte spoustu chyb, bude to velmi užitečné.

# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory

# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail
[Note: By mistake, when I typed mall instead of mail,
          cd corrected it automatically]


Pokud se vám tento článek líbil, přidejte si jej do záložek na del.icio.us , a klopýtnout .


Linux
  1. 8 tipů pro příkazový řádek Linuxu

  2. Linux killall příkaz pro začátečníky (8 příkladů)

  3. Tipy pro příkazový řádek Linuxu pro zvýšení produktivity

  1. 5 aplikací pro zvýšení produktivity pro Linux

  2. 20 úžasných příkladů příkazů Nmap v Linuxu

  3. 12 Příklady IP příkazů pro uživatele Linuxu

  1. 10 tipů o příkazu „dmesg“ pro Linux Geeks

  2. 18 rychlých příkladů příkazů „lsof“ pro Linux Geeks

  3. Linuxový příkaz dir pro začátečníky (10 příkladů)