[marcatu] Bash per i principianti: 21 cumandamenti utili

U materiale, a traduzzione di quale avemu publicatu oghje, hè destinatu à quelli chì volenu maestru di a linea di cummanda Linux. Sapendu cumu utilizà stu strumentu effittivamenti pò salvà assai tempu. In particulare, parlemu di a shell Bash è 21 cumandamenti utili. Parleremu ancu di cumu utilizà i bandieri di cumandamentu Bash è l'aliasi per accelerà a scrittura di dichjarazioni longu.

[marcatu] Bash per i principianti: 21 cumandamenti utili

Leghjite ancu a nostra serie di publicazioni di blog nantu à i script bash

I termini

Cumu amparate à utilizà a linea di cummanda Linux, pudete truvà parechji cuncetti chì seranu utili per navigà. Certi di elli, cum'è "Linux" è "Unix", o "shell" è "terminal", sò qualchì volta cunfusi. Parlemu di questi è altri termini impurtanti.

Unix hè un sistema operatore populari chì hè statu sviluppatu da Bell Labs in l'anni 1970. U so codice era chjusu.

Linux hè u sistema operatore Unix-like più populari. Issi ghjorni hè usatu in parechji dispusitivi, cumpresi lu computer.

tirminali (terminale), o emulatore di terminal, hè un prugramma chì furnisce l'accessu à u sistema operatore. Pudete apre parechje finestri di terminal à u stessu tempu.

Shell (shell) hè un prugramma chì permette di mandà cumandamenti scritti in una lingua speciale à u sistema operatore.

Bash sta per Bourne Again SHell. Hè a lingua di shell più cumuna utilizata per interagisce cù u sistema operatore. Inoltre, Bash hè a shell predeterminata in macOS.

Interfaccia di linea di cumanda (Command Line Interface, CLI) hè un metudu d'interazzione trà una persona è un computer, in quale l'utilizatore inserisce cumandamenti da u teclatu, è l'urdinatore, eseguendu questi cumandamenti, mostra messagi in forma di testu per l'utilizatore. In fondu, a CLI hè aduprata per ottene infurmazione aghjurnata nantu à certe entità, per esempiu, nantu à i schedari, è per travaglià cù i schedari. L'interfaccia di linea di cumanda deve esse distinta da l'Interfaccia Grafica d'Usuariu (GUI), chì hè principalmente utilizata cù un mouse. L'interfaccia di a linea di cumanda hè spessu riferita solu cum'è a linea di cummanda.

Scrittura (script) hè un picculu prugramma chì cuntene una sequenza di cumandamenti di shell. I scripts sò scritti in i schedari è ponu esse utilizati parechje volte. Quandu scrivite scripts, pudete aduprà variàbili, cundiziunali, loops, funzioni è altre funziunalità.

Avà chì avemu cupertu i termini impurtanti, vogliu nutà chì quì aghju utilizatu i termini "Bash", "shell" è "command line" in modu intercambiable, è ancu i termini "directory" è "folder". ".

Standard flussi, chì avemu aduprà quì - questu hè l'input standard (input standard, stdin), output standard, stdout) è output di errore standard (errore standard, stderr).

Se in l'esempii di cumandamentu quì sottu vede qualcosa cum'è my_whatever - questu significa chì stu fragmentu deve esse rimpiazzatu cù qualcosa di u vostru. Per esempiu, u nome di u schedariu.

Avà, prima di cumincià à analizà i cumandamenti chì stu materiale hè dedicatu, fighjemu un ochju à a so lista è e so brevi descrizzioni.

21 cumandamenti Bash

▍Ottene infurmazione

  • man: Mostra a guida d'utilizatore (aiutu) per u cumandimu.
  • pwd: Mostra infurmazione nantu à u cartulare di travagliu.
  • ls: Mostra u cuntenutu di un annuariu.
  • ps: Permette di vede infurmazioni nantu à i prucessi in esecuzione.

▍Manipulazione di u sistema di schedari

  • cd: Cambia u cartulare di travagliu.
  • touch: Crea un schedariu.
  • mkdir: Crea un annuariu.
  • cp: Copia un schedariu.
  • mv: Sposta o sguassà un schedariu.
  • ln: Crea un ligame.

▍Redirezione I/O è pipelines

  • <: ridirezzione stdin.
  • >: ridirezzione stdout.
  • |: Piping l'output di un cumandamentu à l'input di un altru cumandamentu.

▍Lettura di i schedari

  • head: Leghjite u principiu di u schedariu.
  • tail: Leghjite a fine di u schedariu.
  • cat: Leghjite un schedariu è vede u so cuntenutu nantu à u screnu o concatenate i schedari.

▍Eliminà i fugliali, arrestendu i prucessi

  • rm: Sguassà u schedariu.
  • kill: Arresta u prucessu.

▍Cerca

  • grep: cerca di l'infurmazioni.
  • ag: cumanda di ricerca avanzata.

▍Archiviu

  • tar: creà archivi è travaglià cun elli.

Parlemu di sti cumandamenti in più detail.

Dettagli di a squadra

Prima, fighjemu i cumandamenti chì i risultati sò visualizati in a forma stdout. Di genere, questi risultati appariscenu in una finestra di terminal.

▍Ottene infurmazione

man command_name: output di u cumandamentu manuale, vale à dì, infurmazione di riferenza.

pwd: Mostra u percorsu à u cartulare di travagliu attuale. Quandu travaglia cù a linea di cumanda, l'utilizatore spessu hà bisognu di sapè induve hè esattamente in u sistema.

ls: Mostra u cuntenutu di u cartulare. Stu cumandamentu hè ancu usatu abbastanza spessu.

ls -a: Mostra i fugliali nascosti. A bandiera hè aduprata quì -a squadre ls. L'usu di bandiere aiuta à persunalizà u cumpurtamentu di i cumandamenti.

ls -l: Mostra infurmazioni detallate nantu à i schedari.

Per piacè nutate chì e bandiere ponu esse cumminate. Per esempiu, cusì: ls -al.

ps: Vede i prucessi in esecuzione.

ps -e: Mostra infurmazione nantu à tutti i prucessi in esecuzione, micca solu quelli assuciati cù a cunchiglia attuale di l'utilizatore. Stu cumandamentu hè spessu usatu in questa forma.

▍Manipulazione di u sistema di schedari

cd my_directory: cambia u cartulare di travagliu in my_directory. Per spustà un livellu più altu in l'arburu di u cartulare, utilizate my_directory percorso relative ../.

[marcatu] Bash per i principianti: 21 cumandamenti utili
cumandamentu cd

touch my_file: creazione di schedari my_file longu un percorsu datu.

mkdir my_directory: Crea un cartulare my_directory longu un percorsu datu.

mv my_file target_directory: move u schedariu my_file à u cartulare target_directory. Quandu si specifica u repertoriu di destinazione, avete bisognu di utilizà a strada assoluta per ellu (è micca una custruzzione cum'è ../).

squadra mv, in più, pò esse usatu per rinominà i fugliali o cartulare. Per esempiu, pò vede cusì:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Crea una copia di u schedariu my_source_file è mette in un cartulare target_directory.

ln -s my_source_file my_target_file: Crea un ligame simbolicu my_target_file per file my_source_file. Se cambiate u ligame, u schedariu fonte cambia ancu.

Se u schedariu my_source_file serà sguassatu, allora my_target_file resterà. Bandiera -s squadre ln permette di creà ligami per cartulari.

Avà parlemu di redirezzione I / O è pipelines.

▍Redirezione I/O è pipelines

my_command < my_file: rimpiazza l'handle di file di input standard (stdin) per file my_file. Questu pò esse utile se u cumandamentu aspetta qualchì input da u teclatu, è sta dati hè stata salvata in un schedariu.

my_command > my_file: redirige i risultati di u cumandamentu, vale à dì ciò chì normalmente finiscinu in stdout è affissatu nantu à u screnu, in un schedariu my_file. Se u schedariu my_file ùn esiste micca - hè creatu. Se u schedariu esiste, hè sovrascrittu.

Per esempiu, dopu à eseguisce u cumandamentu ls > my_folder_contents.txt un schedariu di testu serà creatu chì cuntene una lista di ciò chì hè in u cartulare di travagliu attuale.

Sè invece di u simbulu > prufittà di u disignu >>, allora, basta chì u schedariu in quale u cumandamentu di u cumandamentu hè redirettu esiste, stu schedariu ùn serà micca soprascritto. I dati seranu appiccicati à a fine di stu schedariu.

Avà fighjemu un ochju à u prucessu di pipeline di dati.

[marcatu] Bash per i principianti: 21 cumandamenti utili
Ciò chì un cumandante outputs hè alimentatu à l'input di l'altru cumandamentu. Hè cum'è cunnette una pipa à l'altru

first_command | second_command: simbulu di trasportatore, |, hè utilizatu per mandà i risultati di un cumandamentu à un altru cumandamentu. Chì u cumandamentu situatu à u latu manca di a custruzzione descritta manda à stdout, Cascà in stdin cumanda, chì si trova à a diritta di u simbulu trasportatore.

In Linux, u pipelining di dati pò esse fattu cù quasi ogni cumandamentu ben furmatu. Hè spessu dettu chì tuttu in Linux hè un pipeline.

Pudete aduprà u simbulu trasportatore per incatena parechje cumandamenti. Sembra cusì:

first_command | second_command | third_command

[marcatu] Bash per i principianti: 21 cumandamenti utili
Un pipeline di parechji cumandamenti pò esse paragunatu à un pipeline

Per piacè nutate chì quandu u cumandamentu à a manca di u simbulu |, produce qualcosa à stdout, ciò chì ella outputs hè immediatamente dispunibule cum'è stdin seconda squadra. Vale à dì, hè chì quandu si usa un pipeline, avemu trattatu di l'esekzione parallela di cumandamenti. A volte, questu pò purtà à risultati inesperu. Pudete leghje più nantu à questu ccà.

Avà parlemu di leghje i dati da i schedari è di vede nantu à u screnu.

▍Lettura di i schedari

head my_file: Leghjite e linee da u principiu di u schedariu è li mostra nantu à u screnu. Pudete leghje micca solu u cuntenutu di i schedari, ma ancu ciò chì i cumandamenti pruducianu stdinutilizendu stu cumandamentu cum'è un elementu di pipeline.

tail my_file: Leghjite e linee da a fine di u schedariu. Stu cumandamentu pò ancu esse usatu in una pipeline.

[marcatu] Bash per i principianti: 21 cumandamenti utili
A testa (testa) hè davanti, è a cuda (coda) hè daretu

Sè vo avete travagliatu cù dati cù a biblioteca di pandas, allora i cumandamenti head и tail deve esse familiar à voi. S'ellu ùn hè micca u casu, fate un ochju à a stampa sopra è vi ricurdate facilmente.

Fighjemu à altre manere di leghje i schedari, parlà di u cumandamentu cat.

squadra cat o mostra u cuntenutu di un schedariu nantu à u screnu, o cuncatenate parechji schedari. Questu dipende da quanti schedari sò passati à questu cumandamentu quandu chjamati.

[marcatu] Bash per i principianti: 21 cumandamenti utili
cumanda di gattu

cat my_one_file.txt: Quandu stu cumandimu hè datu un unicu schedariu, u pruduce in stdout.

Se li dete dui schedari o più schedari, allora si cumporta in modu diversu.

cat my_file1.txt my_file2.txt: avè ricivutu parechji schedari cum'è input, stu cumandamentu cuncatenarà u so cuntenutu è pruduce ciò chì hè surtitu stdout.

Se u risultatu di a concatenazione di u schedariu deve esse salvatu cum'è un novu schedariu, pudete aduprà l'operatore >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Avà parlemu di quantu à sguassà i schedari è piantà prucessi.

▍Eliminà i fugliali, arrestendu i prucessi

rm my_file: elimina un schedariu my_file.

rm -r my_folder: elimina un cartulare my_folder è tutti i schedarii è cartulare chì cuntene. Bandiera -r indica chì u cumandimu hà da travaglià in modu recursive.

Per impedisce à u sistema di dumandà a cunferma ogni volta chì sguassate un schedariu o un cartulare, utilizate a bandiera -f.

kill 012345: Arresta u prucessu di esecuzione specificatu, dendu u tempu di chjude grazia.

kill -9 012345: Termina cù forza u prucessu in esecuzione specificatu. Bandiera di spezie -s SIGKILL significa u listessu cum'è a bandiera -9.

▍Cerca

Pudete aduprà diverse cumandamenti per circà i dati. In particulare - grep, ag и ack. Cuminciamu a nostra cunniscenza cù queste squadre grep. Questu hè un cumandamentu affidabile, verificatu in u tempu, chì, però, hè più lento chè l'altri è micca cusì faciule d'utilizà cum'è elli.

[marcatu] Bash per i principianti: 21 cumandamenti utili
cumanda grep

grep my_regex my_file: esegue una ricerca my_regex в my_file. Se si trova una partita, a stringa sana hè tornata per ogni match. Default my_regex hè trattatu cum'è una espressione regulare.

grep -i my_regex my_file: A ricerca hè fatta in una manera insensibile à u casu.

grep -v my_regex my_file: torna tutte e fila chì ùn cuntenenu micca my_regex. Bandiera -v significa inversione, s'assumiglia à l'operatore NOT, dispunibule in parechje lingue di prugrammazione.

grep -c my_regex my_file: Ritorna infurmazione nantu à u numeru di partite à u mudellu cercatu trovu in u schedariu.

grep -R my_regex my_folder: Esegue una ricerca recursiva in tutti i fugliali situati in un cartulare determinatu è in i cartulari sottucartuli in questu.

Avà parlemu di a squadra ag. Hè apparsu dopu grep, hè più veloce è più convenientu per travaglià.

[marcatu] Bash per i principianti: 21 cumandamenti utili
ag cumandamentu

ag my_regex my_file: ritorna infurmazione nantu à i numeri di linea, è e linee stesse, in quale sò stati truvati partiti my_regex.

ag -i my_regex my_file: A ricerca hè fatta in una manera insensibile à u casu.

squadra ag processa automaticamente u schedariu .gitignore è esclude da l'output ciò chì si trova in i cartulare o i schedari listati in quellu schedariu. Hè assai còmode.

ag my_regex my_file -- skip-vcs-ignores: cuntenutu di i schedarii di sistema di cuntrollu di versione automatica (cum'è .gitignore) ùn hè micca cunsideratu quandu si cerca.

Inoltre, per dì à u cumandamentu ag per determinà quale caminu di u schedariu deve esse escluditu da a ricerca, pudete creà un schedariu .agignore.

À u principiu di sta sezione avemu mintuatu u cumandamentu ack. Squadre ack и ag assai simili, pudemu dì chì sò 99% interchangeable. Tuttavia, a squadra ag funziona più veloce, hè per quessa chì l'aghju descrittu.

Avà parlemu di travaglià cù l'archivi.

▍Archiviu

tar my_source_directory: unisce i schedari da un cartulare my_source_directory in un schedariu tarball. Tali schedari sò cunvenuti à aduprà per trasfiriri grande setti di schedari à qualchissia.

[marcatu] Bash per i principianti: 21 cumandamenti utili
cumandamentu tar

I schedari tarball creati da stu cumandamentu sò schedari cù l'estensione .tar (Archive Tape). U fattu chì a parolla "tape" hè ammucciata in u nome di u cumandamentu è in l'estensione di i nomi di i schedari chì crea, indica quantu longu sta cumanda hè esistita.

tar -cf my_file.tar my_source_directory: crea un schedariu tarball chjamatu my_file.tar cù u cuntenutu di u cartulare my_source_directory. Bandiera -c sta per "creà", è a bandiera -f cum'è "file" (file).

Per caccià i schedari situatu in .tar-file, u cumandimu hè utilizatu tar cù bandiere -x ("estrazione", estrazione) è -f ("file", file).

tar -xf my_file.tar: estrae i schedari da my_file.tar à u cartulare di travagliu attuale.

Avà parlemu di cumu cumpressà è decompressà .tar- i schedari.

tar -cfz my_file.tar.gz my_source_directory: quì, usendu una bandiera -z ("zip", algoritmu di compressione) indica chì l'algoritmu deve esse usatu per cumpressà i schedari gzip (GNU zip). A cumpressione di u schedariu permette di salvà u spaziu di discu quandu almacenà tali schedari. Se i schedari sò previsti, per esempiu, per esse trasferitu à altri utilizatori, questu aiuta à scaricà tali schedari più veloce.

Unzip u schedariu .tar.gz pudete aghjunghje una bandiera -z à u cumandamentu di estrazione di cuntenutu .tar-files, chì avemu discututu sopra. Sembra cusì:

tar -xfz my_file.tar.gz
Si deve esse nutatu chì a squadra tar Ci sò parechje bandiere più utili.

Bash alias

Bash aliases (chjamati ancu aliases o abbreviazioni) sò designati per creà nomi scurciati di cumandamenti o e so sequenze, l'usu di quale invece di cumandamenti regulari accelera u travagliu. Sì, supponi, avete un pseudonimu bu, daretu à quale u cumandamentu hè oculatu python setup.py sdist bdist_wheel, allura per chjamà stu cumandamentu hè abbastanza per aduprà stu alias.

Per creà un tali alias, solu aghjunghje u cumandimu seguitu à u schedariu ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Se ùn ci hè micca un schedariu in u vostru sistema ~/.bash_profile, allura pudete creà sè stessu cù u cumandimu touch. Dopu avè creatu un alias, riavvia u terminal, dopu chì puderete aduprà stu alias. In questu casu, l'ingressu di dui caratteri rimpiazza l'ingressu di più di trè decine di caratteri di u cumandamentu, chì hè destinatu à assemblee Pacchetti Python.

В ~/.bash_profile Pudete aghjunghje alias per qualsiasi cumandamenti usati friquenti.

▍Risultati

In questu articulu, avemu vistu 21 cumandamenti populari di Bash è avemu parlatu di creà alias di cumandamenti. Sè site interessatu in questu tema - eccu una seria di publicazioni dedicate à Bash. Pudete truvà una versione pdf di sti publicazioni. Inoltre, sè vo vulete ammaistrà Bash, ricordate chì, cum'è l'apprendimentu di qualsiasi altru sistema di software, a pratica hè chjave.

Beni, lettori! Chì cumandamenti aghjunghje à quelli coperti in questu articulu chì sò utili per i principianti per sapè?

Leghjite ancu a nostra serie di publicazioni di blog nantu à i script bash

[marcatu] Bash per i principianti: 21 cumandamenti utili

Source: www.habr.com

Add a comment