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.
→
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.
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 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
<
: ridirezzionestdin
.>
: ridirezzionestdout
.|
: 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 ../
.
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
: Crea una copia di u schedariu
cp my_source_file target_directorymy_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.
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
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
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 stdin
utilizendu 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.
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.
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.
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à.
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.
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 à
В ~/.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 -
Beni, lettori! Chì cumandamenti aghjunghje à quelli coperti in questu articulu chì sò utili per i principianti per sapè?
→
Source: www.habr.com