Изключително полезен съвет, ако използвате терминала (Присъединете се към CD команда с LS ... и много други)

Аз съм от онези, които използват много време терминал (console, bash, shell, както искате да го наречете), поради X или Y причини трябва непрекъснато да сменям директория, работейки върху нея 🙂

В по-голямата част от случаите промяната на директория (Например: cd / opt /) и също така искам да знам какво има в тази директория, за да знам тази секунда, която използвам ls.

Тоест би било така:

kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
Nessus

Казвал съм го много пъти ... Доста съм мързелив, обичам да правя най-малко стъпки в терминала, затова след много експерименти постигнах точно това, което исках.

Вижте следното, което не е нищо повече от влизането ми /избирам/ с простата команда cd / opt /:

Както можете да видите, в една стъпка (cd / opt /) Влизам в директорията и също така изброявам съдържанието на тази директория и ... сякаш това не е достатъчно, тя ми го показва с цветове 😀

Ето примера с моя достъп / и т.н. / с cd / и т.н./:


Цветовете са лесни за разбиране:

Без цвят = Файлове
Син цвят = Папки
Зелен цвят = Файлове с разрешения за изпълнение

Но нека преминем към основното ... Как, по дяволите, използвайки само cd, мога ли и аз автоматично да изброя директорията, до която имам достъп?

Нашият архив .bashrc (намиращи се в нашия дом или лична папка) ще ни помогне да направим това, първо трябва да декларираме функция, която ще извикаме CDls:

функция cdls {cd "$ 1"; ls –цвет;}

Поставяме тази линия от двете страни на нашата .bashrc ... ето командата да го направите:

echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc

НЕ е задължително да го правите с тази команда, целта е файлът .bashrc съдържа този ред, така че просто редактирайте този файл с предпочитания от вас текстов редактор (подложка за мишка, kate, gedit, nano, vi и др) и го добавете.
Те запазват промяната, затварят отворения терминал и отварят нов.

В него ще напишем следното и ще натиснем [Въведете]:

cdls $HOME

Това би трябвало да е достатъчно за достъп до нашата лична папка в този терминал, а също така ще изброи и съдържанието му (с цветове и всичко).

Искам да кажа, какво CDls той вече прави това, което искаме ... сега можем да постигнем само същото, но с cd

За това добавяме във файла .bashrc следния ред:

alias cd='cdls'

Това ще стане, когато пишем cd ... Действието, което дефинираме, всъщност ще бъде изпълнено CDls

Оставям ви командата, която автоматично ще постави този ред по-горе:

echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc

Но точно както казах по-рано, целта е да добавите този друг ред към същия файл, можете да използвате текстовия редактор по ваш избор за него.

След като това стане, затворете терминала и отворете нов ... в него напишете следното и натиснете [Въведете]:

cd /etc/

И бинго, те ще влязат / И т.н./ а също така съдържанието на тази папка ще бъде изброено и с цветове 😉 (точно както на предишна снимка)

За какво е полезно? 😀

За любознателните, които се чудят какво означава тази функция? ... Оставям ви простото обяснение:

функция cdls = Тук дефинираме, че създаваме нова функция и тя ще се нарича cdls
cd "$ 1" = И това, което ще направи тази функция (тя ще прави всеки път, когато я извикаме, използваме или изпълним), е да направи cd (enter) към 1-ви параметър, тоест ... - »« cd / home / »,« $ 1 »означава« какво че пишем след cd ", в този пример първият параметър е" / home / ".
; = Това означава, че тази поръчка завършва там или действие, което да се изпълни ... но една функция може да има повече действия за извършване и сега ще определим второ.
ls - цвят; = Това означава, че в допълнение към всяко действие, декларирано преди това, той също ще направи "ls", където се намираме, и "ls" ще го направи с цвят (–цвет).

Последно нещо ... най-умният, те ще осъзнаят, че тази логика (вземане на функция и конфигуриране да изпълнява няколко действия) има много, много потенциал, например ... ако искам да вляза в папка и също да изтрия друга, тоест искам въведете в /У дома/ и също да изтриете / opt / temp / функцията за това ще бъде:

function asdasd { cd "$1"; rm -Rv "$2"; }

И пишете в терминал asdasd / начало / / opt / test / би, защото ще влезе в 1-ви параметър (/У дома/) и изтрийте втория (/ opt / temp /).

Както и да е, това наистина има МНОГО потенциал хехе, зависи от вас да се възползвате от него, доколкото можете.

Ако имате някакви съмнения или въпроси, оплаквания или предложения, с удоволствие ще ви помогна, не съм експерт досега, но поне искам да помогна

поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   blablabla каза той

    И всичко това за неизползване на Zsh.

    1.    KZKG ^ Гаара каза той

      Наистина не го познавах 😉
      Благодаря за съвета, ще го следя.

      Знанието обаче не се осъществява ... колкото повече съвети и знания човек успее да придобие, толкова по-добре, не мислите ли? 🙂

      1.    MSX каза той

        Zsh е за queers, мъжете използват sh !!! >: D

        В действителност

        1.    KZKG ^ Гаара каза той

          ХАХАХА не не не ... не мисля така и не го казвайте така, защото някои може да се обидят.
          Всеки използва това, което му е най-подходящо, което най-много му харесва 😀

          1.    MSX каза той

            ????

            Приложение, което използвам много за навигация в системата си, е Autojump:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla каза той

          Мъжете са практични, жените и queers са тези, които обичат да усложняват живота си. Не се изискват допълнителни разяснения.

          1.    KZKG ^ Гаара каза той

            Моля, опитайте се да не коментирате сексуалните предпочитания да? ... Имало е неприятни ситуации за такива неща.

            Надявам се, че е разбираемо.

          2.    blablabla каза той

            Това уточнение трябва да е за @msx. Идеите се изграждат с верни, обективни и рационални твърдения, а не с обиди или грубост.

            1.    KZKG ^ Гаара каза той

              В моя коментар по-горе му казах да не казва тези неща (простете съкращението).
              И сега отново казвам „да“, но не насочено само към вас, то е валидно за всички.

              Не го приемайте по грешен начин, намерението не беше да накарате никого да се чувства неудобно или зле, просто се опитвам да избегна недоразумението 🙂


          3.    лястовица каза той

            Хахаха, току-що видях този коментар!

            «Това уточнение трябва да е за @msx. Идеите се изграждат с верни, обективни и рационални твърдения, а не с обиди или грубост. "
            Спри да закусваш с лимони, човек, вече изглеждаш точно като Франклин в банкнотата от 100 долара: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    Авел каза той

          Zsh е за педници? Е, мисля, че тогава ми харесва да бъда педик, защото откакто се научих да го използвам, не съм спирал и не възнамерявам да го правя. o_____o

          Мъжете използват ли sh?, Този коментар е странен от някой, който има башър, пълен с неща, така че ще предположа, че сте жена. xP

          1.    KZKG ^ Гаара каза той

            До това не исках да стигна. Моля, нека оставим борбата тук, нали? 🙂
            Всеки използва каквото си иска ... sh, zsh, или каквото си иска, а също така ... всеки има сексуалните предпочитания, които иска да има, тук вече има битки за такива неща 🙁

          2.    MSX каза той

            хахаха xD

            Напоследък zsh се е развил много, щом имам време - ха, колко заблудено! - Ще прочета колкото се може повече от документацията му, за да се възползвам от него и да направя промяната

            Сега като говорим сериозно: единственото нещо, което ме притеснява малко при zsh, е, че той не е 100% съвместим с Bash, така че ако използваме zsh в нашите скриптове, изваждайки пълния му потенциал, много, много е възможно споменатият скрипт да се провали в bash, от друга страна От друга страна, въпреки че използваме zsh, пишем скриптовете си на черупки в bash, губенето е да се използва zsh ... o_O

            Въпреки това мисля, че zsh си заслужава. Говорейки за черупката, познавате ли Рибата? Проектът се издигна от пепелта, сега се нарича fishfish и те го развиват много бързо.

    2.    hackloper775 каза той

      Мисля, че zsh трябва да се напише, тъй като терминалът е много чувствителен към малки и големи букви

      Въпреки че cd && ls / route също е валиден

      Въпреки че е по-дълго да се пише

      Поздрави 😀

      1.    hackloper775 каза той

        Сгреших, пръстът ми изчезна

        Слагам, че с това е в списъка и има достъп до директория

        cd && ls / path

        но просто се пригответе

        въпреки че се използва само за изброяване

        ls / пътека

        командата, която е еквивалент, е

        cd / path && ls

        поздрави

        1.    KZKG ^ Гаара каза той

          Всъщност използването на && се постига същото 😀
          Единствената разлика е, че "cd / opt / && ls" има 6 знака повече от просто "cd / opt /", тоест би трябвало да натисна още 6 клавиша ^ - ^ U ... Малко ме мързи за такива неща хехе.

          Ето защо се присъединих към cd + ls ... LOL !!

          1.    hackloper775 каза той

            Това, което също използвам, е, че филтрирам резултатите по разширения.

            пример

            Имам много файлове в ~ / Downloads повече от 100 и искам само да видя .png, за да направя това.

            cd Изтегляния && ls * png

            Какво трябва да добавя или направя, за да филтрирам резултатите в по-опростен код?

            поздрави

            1.    KZKG ^ Гаара каза той

              Просто 😉
              Създавате функция, която е например, cdlsf:
              function cdlsf { cd "$1"; ls *.$2; }

              За да го използвате, би било:
              cdlsf / opt / png

              И това ще ви изброи само файловете . Png en /избирам/
              Това е първият параметър (в примера /избирам/) ще бъде директорията, до която искате да влезете, и вторият параметър (в примера PNG) би било разширението, което искате да филтрирате, когато изброявате директорията.

              Друг пример, ако искате да отидете на / home / user / Pictures и да видите само файловете, които са .JPG, би било:
              cdlsf / home / user / Pictures jpg

              ????

              Това беше, което искахте, нали?

              PS: Слагам cdlsf от cd (enter) ls (list) f (filter) ... но очевидно можете да извикате функцията каквото искате.


    3.    някога каза той

      zsh не е POSIX и на всичкото отгоре отнема повече време, за да започнете, затова предпочитам да бъда педик, но по-ефективен

      1.    blablabla каза той

        Първо, в zsh можете да активирате поддръжката на POSIX. Второ, отнема време, за да стартирате според това колко функции зареждате при стартиране, така че може да бъде толкова лек, колкото искате. Трето, с zsh един е по-практичен и ефективен, отколкото с всяка друга обвивка. Четвърто, използвайте го, преди да критикувате.

        1.    MSX каза той

          5-ти. Когато активирате поддръжката на POSIX, няма смисъл да използвате ZSH.

          Използвам го от известно време, не си струва, sh е кратък и Bash е перфектен, няма нищо, което не можете да направите в Bash с подходящите псевдоними и функции.

  2.   Marco каза той

    Много харесвам темата. всъщност те трябва да създадат по-обширна статия за командите, които могат да се използват като цяло в терминала и в специфични дистрибуции, като Чакра.

    1.    KZKG ^ Гаара каза той
  3.   Ридал каза той

    Стори ми се много интересно, тъй като освен че преподавате този трик, вие обяснихте как работи всяка команда.

    Следя ви откакто започнах в света на Linux (не много отдавна ...) и бях насърчен да коментирам, само за да ви поздравя за статията 😉

    1.    KZKG ^ Гаара каза той

      Благодарим ви, че се отбихте и ни оставихте коментара 😀
      Винаги, когато се осмеля да обясня нещо, обичам да го давам възможно най-ясно ... е, аз много добре знам какво е да чета уроци в интернет и изобщо да не разбирам нищо хахаха.

      Добре дошли два пъти ... добре дошли в света на Tux хаха, а също и добре дошли в блога 🙂
      Ако имате някакви въпроси, знаете ли, уведомете ни хехе.

      Поздрави и благодаря за коментара ^ ⁻ ^

  4.   Иван каза той

    Току-що прочетох публикацията ви от друг уебсайт и не устоях:

    Не би ли било по-лесно, просто създайте псевдоним в .bashrc?

    псевдоним cd = 'ls'

    1.    KZKG ^ Гаара каза той

      Всъщност това, което се опитвам да постигна, е да въведа директория X (/ opt / ... / home / user / ... каквото и да е), а също и когато я въведа, тя автоматично изброява съдържанието на тази директория.

      Направете всичко с 1 единична стъпка или команда.

      Ако направите псевдоним, както посочите, той ще изброи директорията, да, но няма да го въведе.

      1.    Иван каза той

        От това, което разбирам, целта на всичко това е, че ако искате например да въведете „/ etc“ чрез командата „cd“, при влизане автоматично ще ви покаже съдържанието на тази директория, нали?

        Ако е така, можете да опростите функцията в "псевдоним", където вътре .bashrc поставяте:

        псевдоним cd = »ls»

        С това, когато в терминал използвате:

        cd / и т.н.

        Ще влезете в директорията «/ и т.н.» и тя автоматично ще изброи всички файлове и директории, които са там.

        Ако погрешно разбрах целта, извинение 😛

        1.    KZKG ^ Гаара каза той

          Всъщност искам да вляза в директория и след като вляза в нея, да изброя какво съдържа.
          Опитах това, което казвате, като декларирах, че cd = ls чрез псевдоним, но не ми се получи.
          Конфигурирам го сам и след това правя:
          cd / и т.н. /

          Но той изброява / etc / ..., но не влиза в тази директория.
          Оставям екранна снимка, за да можете да видите: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    Иван каза той

            Моята грешка 😀

            Беше очевидно, че няма да работи по този начин и дори когато опитах:

            псевдоним cdls = 'cd $ 1; ls'

            По някаква странна причина не работи, той просто изброява директорията, но не влиза в D:

            Баш грешка? xD

            Извинение за безсмислените коментари! 😀 И аз поемам функцията за моя bashrc 😛

            1.    KZKG ^ Гаара каза той

              Псевдонимът не е същото като функция, псевдоним, ако искате да бъде същият като няколко команди, трябва да използвате && ... не е като във функциите, че използването; и писането на повече инструкции ще ви свърши работа.

              ХАХА не за нищо приятел, няма какво да се извинявам 😀
              поздрави

              PS: ... по дяволите ... колко носталгичен съм, когато видя логото на Arch ... T_t ...


          2.    Иван каза той

            Знам, че не е същото, но реших, че ще работи (Грешка: P)

            При мен работи само използването на «;». вместо "&&" в псевдоним D: (имам два псевдонима като този, това, което не разбирам, е защо не работи с псевдонима, който исках да създам за този случай)

            Благодаря и между другото, мисля, че ще остана в блога под заглавието "чест читател" really Наистина харесах съдържанието на блога 😛

            ооо, да знам, понякога се отделям от скъпата ми Арка, но, не знам защо, винаги е невъзможно да не се върна при него xD

            Поздрави!

            1.    KZKG ^ Гаара каза той

              Е ... Тукс е мистериозен, прави неща и много пъти не го разбираме, но той има план или цел за всички ... HAHA 😀

              Удоволствие да прочета това, което казвам, друг потребител на Arch, който се присъедини към блога хахахаха ... удоволствие 😀

              Трябваше да спра да го използвам поради много странни проблеми, които ми даде ядрото ... но все пак заема място в сърцето ми 🙁


          3.    Иван каза той

            хахаха

            Не съм срещал потребител на Arch, който да не проявява голяма обич към разпространението, той има „не знам какво, какво знам“: P, може би и ако проблемите, които ви дадох бяха отдавна, можете да помислите за връщане към Arch 😀

            Между другото, знаех, че на друго място вече съм прочел името ти (добре, псевдоним, псевдоним, каквото и да е), ти си част от авторите на изкуството за настолни компютри, нали? 🙂
            Преди им четях 🙂

  5.   Уго каза той

    Всъщност за изброяване на съдържанието на дадена директория не е необходимо да я въвеждате, така че не мисля, че примерът, който сте избрали, е най-щастлив, хе-хе. С това казано, функциите могат да се използват за много полезни неща.

    Например използвам тази функция, за да създам директория и да я въведа незабавно (потвърждавайки, че се използва само един параметър):

    function mkcd () {
    FNERR="Parametros incorrectos.\nUso: mkcd "
    if [ $# -eq 1 ] ; then
    mkdir -p "$1" && cd "$1"
    else
    echo -e $FNERR
    fi
    }

    1.    Уго каза той

      Хммм ... блогът изяде част от командата, ще се опитам да сложа непълния ред с HTML тагове:

      FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"

    2.    KZKG ^ Гаара каза той

      Това, което исках да постигна, беше да спестя стъпка.
      С други думи, да предположим, че искам да въведа директория (/ etc / squid /) и след това да редактирам файл в тази директория и не помня името на файла.

      Стъпките обикновено са:
      cd / etc / squid /
      ls
      nano.conf файл

      Но с този съвет, който предлагам, превръщам първите 2 стъпки само в 1, така че просто като направите:
      cd / etc / squid /

      Той автоматично ще изброи съдържанието на директорията и за мен.
      Става въпрос просто за запазване на стъпка 😀

      Ти ме разбираш?

      ... трудно ми е да обясня хаха.

      1.    Уго каза той

        Не, обяснението нямаше проблем, имах предвид, че може би примерът, който избрахте, за да илюстрирате върха, не беше идеален, тъй като човек може да направи проста „ls директория“.

        Всъщност веднага щом видях функцията, разбрах целта. Аз също използвам различни функции в моя .bash_aliasesНапример това е, което използвам много за управление на историята:

        h () {
        if [ $# -eq 0 ] ; then
        history | tail -n 25 | less
        elif [ $# -eq 1 ] ; then
        history | egrep -i "$1" | less
        else
        echo -e "Parametros incorrectos."
        fi
        }

        (С тази функция, ако просто сложа h Получавам последните 25 команди, но ако например сложа h монтиране Получавам последните команди, свързани със сборки).

        1.    KZKG ^ Гаара каза той

          Взимам вашата роля хехехе ... заслужава да я изуча 😀

        2.    Анибал каза той

          страхотна вашата функция! Благодаря

        3.    MSX каза той

          +1

  6.   hackloper775 каза той

    KZKG ^ Гаара

    Много добър отговор, той ми служи много добре, не можах да отговоря на него по-горе

    Сега ще използвам cdlsf, за да повиша производителността си, много добро име за команда 😀

    поздрави

  7.   Кристофър Кастро каза той

    Както правите, за да зададете времето за терминала, вече го бях направил, изтеглих bashrc, но не помня как се казваше.

  8.   Авел каза той

    Добър запис, не знаех трика, ще го приложа на практика, за да видя как работи. xP

    Поздрави.

    1.    Авел каза той

      Би било хубаво, ако браузърът ми беше добавен. xD

      Поздрави, отново. xD

      1.    KZKG ^ Гаара каза той

        Какъв браузър използвате?
        Е, в друг коментар видях, че сте използвали Firefox 🙂

        1.    Авел каза той

          Да, използвам Firefox, но той става все по-малко и вече не е основният ми браузър, използвам dwb и би било хубаво, ако може да бъде добавен. xP

          Поздрави.

  9.   Гилермо каза той

    И няма ли да прави този псевдоним да създава проблеми в скриптове, когато се опитвате само да cd и да извеждате ls? Особено предпочитам да създавам псевдоними с имена, които другите изпълними файлове не използват, защото не за първи път ми създава проблеми ...

  10.   иригол каза той

    Как получавате прекъснатите линии и времето след всяка команда?

  11.   MSX каза той

    Моят принос:
    псевдоним ldir = 'ls | grep -v \\. ' ## изброява само директориите (внимавайте, не го преименувайте на ld, тъй като има команда GNU / Linux с това име)
    -
    псевдоним ll = 'ls -lah –color | awk '\ »{k = 0; за (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i )); if (k) printf ("% 0o", k); print} '\' ''

    Интересното при този псевдоним е awk, който анализира изхода на ls, резултат? Той показва разрешенията за файлове в осмичен формат до rwx, за мен безкрайно по-практично и по-бързо от буквите.

    -
    псевдоним lg = 'ls -lah –color | awk '\' '{k = 0; за (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); if (k) printf ("% 0o", k); print} '\' '| grep -i'

    Вариант на псевдонима по-горе. Добавих grep в края, така че по този начин, когато правя например:
    $ lg цип
    Покажете ми само файловете, съдържащи zip във всяка от неговите форми (забележете -i в края) в допълнение към осмичните разрешения и т.н.
    -
    alias grep = 'grep –color = auto' ## оцветява съответствието на grep
    -

    Имам да споделям още много, но това малко място ме затяга xD

    @KZKG, Персонал: Смятате ли, че отваряте публикация в блога или във форума (към която свързваме всеки път, когато се публикува съвет, свързан с конзолата), за да съберете всички тези малки перли?

    Поздрави!

    1.    KZKG ^ Гаара каза той

      Под връзка ли разбирате това? - » https://blog.desdelinux.net/tag/bash

  12.   MSX каза той

    Не казах нищо, нищо друго не е необходимо, всичко е перфектно маркирано!

  13.   Франклин Родригес каза той

    Какъв чилиец, това е много добра функция!