🐧 Bash совСты – Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ CD ΠΈ Ls Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅

by itisgood

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я Π·Π°Ρ…ΠΎΠΆΡƒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, я спонтанно дСлаю ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ – Π²Ρ‹Π²ΠΎΠΆΡƒ список содСрТимого этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls.

Π― Π½Π΅ знаю, Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· вас ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ эта ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ°.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅, Ссли Π±Ρ‹ ΠΌΡ‹ объСдинили Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ cd ΠΈ ls Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ?

Π’ этом ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ руководствС ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ автоматичСски ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π² Π½Π΅Π³ΠΎ Π½Π° Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Bash Π‘ΠΎΠ²Π΅Ρ‚Ρ‹: ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ CD ΠΈ LS Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ я Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎΠ± однострочных ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ cd ΠΈ ls с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ однострочной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

$ cd dir && ls

Π”Π°, это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

Но это Π½Π΅ являСтся ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ руководства.

ΠœΡ‹ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ BASH.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎ всСх Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… дистрибутивах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ BASH.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ~/.bashrc Π² вашСм любимом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅:

$ nano ~/.bashrc

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π² ΠΊΠΎΠ½Ρ†Π΅:

cdls() {
        local dir="$1"
        local dir="${dir:=$HOME}"
        if [[ -d "$dir" ]]; then
                cd "$dir" >/dev/null; ls --color=auto
        else
                echo "bash: cdls: $dir: Directory not found"
        fi
}

Π—Π΄Π΅ΡΡŒ я использовал имя для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cdls() для удобства запоминания!

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ls –color = auto.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу.

$ source ~/.bashrc
Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСчисляйтС содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° автоматичСски всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

$ cdls /var/log/
alternatives.log  btmp                   dpkg.log   kern.log   syslog               wtmp
apt               cloud-init.log         faillog    landscape  syslog.1
auth.log          cloud-init-output.log  installer  lastlog    tallylog
bootstrap.log     dist-upgrade           journal    lxd        unattended-upgrades
sk@ubuntuserver:/var/log$ pwd
/var/log

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ваш Ρ„Π°ΠΉΠ» ~/.bashrc.

cdls() {
        cd "$@" && ls;
}

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ source ~/.bashrc, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π›ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cdls ΠΈ cl) для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ я ΡƒΠ·Π½Π°Π» этот Ρ‚Ρ€ΡŽΠΊ, я ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π΅Π»Π°Π» Ρ‚Π°ΠΊ:

$ cd /var/log/

Π° ΠΏΠΎΡ‚ΠΎΠΌ;

$ ls

ΠΈΠ»ΠΈ ΠΆΠ΅:

$ cd /var/log/ && ls

Π£ΠΆΠ΅ Π½Π΅Ρ‚! Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ любоС содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠΎΠ³Π΄Π° я ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠΆΡƒ Π² Π½Π΅Π³ΠΎ.

Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ часто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с большим количСством ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

НСдостатком этого Ρ‚Ρ€ΡŽΠΊΠ° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся ΠΆΠ΄Π°Ρ‚ΡŒ нСсколько сСкунд ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΡƒΡ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, содСрТащий сотни ΠΈ тысячи Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cd.

 

You may also like

Leave a Comment