Gradivo, katerega prevod objavljamo danes, je namenjeno tistim, ki želijo obvladati ukazno vrstico Linux. Zmožnost učinkovite uporabe tega orodja lahko prihrani veliko časa. Predvsem bomo govorili o lupini Bash in 21 uporabnih ukazih. Govorili bomo tudi o tem, kako uporabiti ukazne zastavice in vzdevke Bash za pospešitev tipkanja dolgih navodil.
→
pogoji
Ko se boste učili delati z ukazno vrstico Linuxa, boste naleteli na številne koncepte, ki vam bodo v pomoč pri navigaciji. Nekateri od njih, kot sta "Linux" in "Unix" ali "shell" in "terminal", so včasih zamenjani. Pogovorimo se o teh in drugih pomembnih izrazih.
Zdaj, ko smo obravnavali pomembne izraze, želim poudariti, da bom tukaj izmenično uporabljal izraze "Bash", "lupina" in "ukazna vrstica", pa tudi izraza "imenik" in "mapa".
Standard stdin
), standardni izhod (standardni izhod, stdout
) in izhod standardne napake (standardna napaka, stderr
).
Če v primeru ukazov, ki bodo podani spodaj, boste našli nekaj podobnega my_whatever
- to pomeni, da je treba ta fragment nadomestiti z nečim vašim. Na primer ime datoteke.
Zdaj, preden nadaljujemo z analizo ukazov, ki jim je posvečeno to gradivo, si oglejmo njihov seznam in njihove kratke opise.
21 Bash ukazi
▍Pridobivanje informacij
man
: Prikaže uporabniški priročnik (pomoč) za ukaz.pwd
: prikaže informacije o delovnem imeniku.ls
: prikaže vsebino imenika.ps
: omogoča ogled informacij o tekočih procesih.
▍Manipulacija datotečnega sistema
cd
: spremenite delovni imenik.touch
: ustvarite datoteko.mkdir
: ustvarite imenik.cp
: kopirajte datoteko.mv
: premaknite ali izbrišite datoteko.ln
: ustvarite povezavo.
▍V/I preusmeritev in cevovodi
<
: preusmeritevstdin
.>
: preusmeritevstdout
.|
: prevedel izhod enega ukaza v vhod drugega ukaza.
▍Branje datotek
head
: preberite začetek datoteke.tail
: preberi konec datoteke.cat
: preberite datoteko in natisnite njeno vsebino na zaslon ali združite datoteke.
▍Brisanje datotek, zaustavitev procesov
rm
: izbrišite datoteko.kill
: ustavite postopek.
▍Išči
grep
: iskanje informacij.ag
: napredni ukaz za iskanje.
▍Arhiviranje
tar
: ustvarjanje arhivov in delo z njimi.
Pogovorimo se o teh ukazih podrobneje.
Podrobnosti ekipe
Za začetek se ukvarjajmo z ukazi, katerih rezultati so izdani v obrazcu stdout
. Običajno se ti rezultati prikažejo v terminalskem oknu.
▍Pridobivanje informacij
man command_name
: prikaže vodnik za ukaze, tj. informacije o pomoči.
pwd
: prikaže pot do trenutnega delovnega imenika. Pri delu z ukazno vrstico mora uporabnik pogosto natančno ugotoviti, kje v sistemu se nahaja.
ls
: prikaže vsebino imenika. Tudi ta ukaz se uporablja precej pogosto.
ls -a
: prikaži skrite datoteke. tukaj uporabljena zastava -a
ukazi ls
. Uporaba zastavic pomaga prilagoditi vedenje ukazov.
ls -l
: prikaz podrobnih informacij o datotekah.
Upoštevajte, da je zastavice mogoče kombinirati. Na primer - takole: ls -al
.
ps
: Oglejte si tekoče procese.
ps -e
: Prikaži informacije o vseh tekočih procesih, ne le o tistih, ki so povezani s trenutno uporabniško lupino. Ta ukaz se pogosto uporablja v tej obliki.
▍Manipulacija datotečnega sistema
cd my_directory
: spremeni delovni imenik v my_directory
. Če se želite premakniti eno raven navzgor v drevesu imenikov, uporabite my_directory
relativna pot ../
.
ukaz cd
touch my_file
: ustvarjanje datoteke my_file
po dani poti.
mkdir my_directory
: ustvarite mapo my_directory
po dani poti.
mv my_file target_directory
: premakni datoteko my_file
v mapo target_directory
. Ko podajate ciljni imenik, morate uporabiti absolutno pot do njega (in ne konstrukcije, kot je ../
).
ekipa mv
lahko uporabite tudi za preimenovanje datotek ali map. Na primer, lahko izgleda takole:
mv my_old_file_name.jpg my_new_file_name.jpg
: ustvarite kopijo datoteke
cp my_source_file target_directorymy_source_file
in ga dajte v mapo target_directory
.
ln -s my_source_file my_target_file
: ustvarite simbolično povezavo my_target_file
na datoteko my_source_file
. Če spremenite povezavo, se bo spremenila tudi izvirna datoteka.
Če datoteka my_source_file
bo potem izbrisano my_target_file
bo ostal. Zastava -s
ukazi ln
omogoča ustvarjanje povezav za imenike.
Zdaj pa se pogovorimo o V/I preusmeritvi in cevovodih.
▍V/I preusmeritev in cevovodi
my_command < my_file
: nadomesti standardni deskriptor vhodne datoteke (stdin
) na datoteko my_file
. To je lahko koristno, če ukaz čaka na vnos s tipkovnice in so ti podatki že shranjeni v datoteki.
my_command > my_file
: preusmeri rezultate ukaza, tj. kaj bi običajno šlo v stdout
in izhod na zaslon, v datoteko my_file
. Če datoteka my_file
ne obstaja – je ustvarjeno. Če datoteka obstaja, je prepisana.
Na primer po izvedbi ukaza ls > my_folder_contents.txt
ustvarjena bo besedilna datoteka s seznamom tega, kar je v trenutnem delovnem imeniku.
Če namesto simbola >
uporabite konstrukcijo >>
, potem pod pogojem, da datoteka, v katero je preusmerjen izhod ukaza, obstaja, ta datoteka ne bo prepisana. Podatki bodo dodani na konec te datoteke.
Zdaj pa si poglejmo obdelavo podatkovnega cevovoda.
Izhod enega ukaza se vnese v vhod drugega ukaza. To je kot povezovanje ene cevi z drugo
first_command | second_command
: simbol tekočega traku, |
, se uporablja za pošiljanje izhoda enega ukaza drugemu ukazu. Kaj pošilja ukaz na levi strani opisane strukture stdout
, Padec v stdin
ukaz desno od simbola cevovoda.
V sistemu Linux je mogoče podatke posredovati po cevovodu s skoraj katerim koli dobro oblikovanim ukazom. Pogosto se reče, da je vse v Linuxu cevovod.
S simbolom cevovoda lahko povežete več ukazov. Videti je takole:
first_command | second_command | third_command
Cevovod več ukazov lahko primerjamo s cevovodom
Upoštevajte, da ko ukaz levo od simbola |
, izpiše nekaj v stdout
, kar izdaja, je takoj na voljo kot stdin
druga ekipa. Se pravi, izkaže se, da imamo z uporabo cevovoda opravka z vzporednim izvajanjem ukazov. Včasih lahko to privede do nepričakovanih rezultatov. Podrobnosti o tem lahko preberete
Zdaj pa se pogovorimo o branju podatkov iz datotek in njihovem prikazu na zaslonu.
▍Branje datotek
head my_file
: prebere vrstice od začetka datoteke in jih natisne na zaslon. Preberete lahko ne samo vsebino datotek, ampak tudi, kaj izpišejo ukazi stdin
z uporabo tega ukaza kot dela cevovoda.
tail my_file
: bere vrstice s konca datoteke. Ta ukaz je mogoče uporabiti tudi v cevovodu.
Glava (glava) je spredaj, rep (rep) pa zadaj
Če delate s podatki s knjižnico pandas, potem ukazi head
и tail
bi vam moralo biti znano. Če temu ni tako, si oglejte zgornjo sliko in zlahka si jih boste zapomnili.
Razmislite o drugih načinih branja datotek, pogovorimo se o ukazu cat
.
Ekipa cat
natisne vsebino datoteke na zaslon ali združi več datotek. Odvisno je od tega, koliko datotek je posredovanih temu ukazu ob klicu.
mačji ukaz
cat my_one_file.txt
: ko je ena datoteka posredovana temu ukazu, jo izpiše v stdout
.
Če mu daste dve datoteki ali več datotek, se obnaša drugače.
cat my_file1.txt my_file2.txt
: ko kot vhod prejme več datotek, ta ukaz združi njihovo vsebino in prikaže, kaj se je zgodilo v stdout
.
Če je treba rezultat združevanja datotek shraniti kot novo datoteko, lahko uporabite operator >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Zdaj pa se pogovorimo o tem, kako izbrisati datoteke in ustaviti procese.
▍Brisanje datotek, zaustavitev procesov
rm my_file
: izbriši datoteko my_file
.
rm -r my_folder
: izbriše mapo my_folder
ter vse datoteke in mape, ki jih vsebuje. Zastava -r
označuje, da se bo ukaz izvajal v rekurzivnem načinu.
Če želite preprečiti, da bi sistem zahteval potrditev vsakič, ko je datoteka ali mapa izbrisana, uporabite zastavico -f
.
kill 012345
: Ustavi navedeni tekoči proces in mu da čas, da se elegantno zaustavi.
kill -9 012345
: Prisilno prekine podani tekoči proces. Ogled zastave -s SIGKILL
pomeni isto kot zastava -9
.
▍Išči
Za iskanje podatkov lahko uporabite različne ukaze. Še posebej - grep
, ag
и ack
. Začnimo spoznavanje teh ukazov z grep
. To je časovno preizkušen, zanesljiv ukaz, ki pa je počasnejši od drugih in ni tako priročen za uporabo kot oni.
ukaz grep
grep my_regex my_file
: iskanja my_regex
в my_file
. Če se najde ujemanje, se vrne celoten niz za vsako ujemanje. Privzeto my_regex
obravnavati kot regularni izraz.
grep -i my_regex my_file
: Iskanje se izvaja na način, ki ne razlikuje med velikimi in malimi črkami.
grep -v my_regex my_file
: vrne vse vrstice, ki ne vsebujejo my_regex
. Zastava -v
pomeni inverzijo, spominja na operator NOT
, ki ga najdemo v številnih programskih jezikih.
grep -c my_regex my_file
: vrne informacije o številu ujemanj, najdenih v datoteki za iskalni vzorec.
grep -R my_regex my_folder
: izvaja rekurzivno iskanje v vseh datotekah, ki se nahajajo v navedeni mapi in v mapah, ki so v njej ugnezdene.
Zdaj pa se pogovoriva o ekipi ag
. Prišla je kasneje grep
, je hitrejši, z njim je bolj priročno delati.
ag ukaz
ag my_regex my_file
: vrne informacije o številkah vrstic in samih vrsticah, v katerih so bila najdena ujemanja my_regex
.
ag -i my_regex my_file
: Iskanje se izvaja na način, ki ne razlikuje med velikimi in malimi črkami.
Ekipa ag
samodejno obdela datoteko .gitignore
in iz izhoda izključi, kar je najdeno v mapah ali datotekah, navedenih v tej datoteki. Je zelo udobno.
ag my_regex my_file -- skip-vcs-ignores
: vsebina datotek za samodejni nadzor različic (npr .gitignore
) se pri iskanju ne upošteva.
Poleg tega, da bi povedali ekipi ag
na katerih poteh datotek želite izključiti iz iskanja, lahko ustvarite datoteko .agignore
.
Na začetku tega razdelka smo omenili ukaz ack
. Ekipe ack
и ag
zelo podobni, lahko rečemo, da so 99% zamenljivi. Vendar ekipa ag
deluje hitreje, zato sem ga opisal.
Zdaj pa se pogovorimo o delu z arhivi.
▍Arhiviranje
tar my_source_directory
: združuje datoteke iz mape my_source_directory
v eno datoteko tarball. Takšne datoteke so uporabne za prenos velikih naborov datotek nekomu.
ukaz tar
Datoteke tarball, ki jih ustvari ta ukaz, so datoteke s pripono .tar
(ARhiv kasete). Dejstvo, da se beseda "trak" (trak) skriva v imenu ukaza in v končnicah imen datotek, ki jih ustvari, pove, kako dolgo ta ukaz obstaja.
tar -cf my_file.tar my_source_directory
: ustvari datoteko tarball z imenom my_file.tar
z vsebino mape my_source_directory
. Zastava -c
pomeni "create" (ustvarjanje) in zastavo -f
kot "datoteka" (datoteka).
Za ekstrahiranje datotek iz .tar
-file, uporabite ukaz tar
z zastavami -x
("izvleček", ekstrakcija) in -f
("datoteka", datoteka).
tar -xf my_file.tar
: ekstrahira datoteke iz my_file.tar
v trenutni delovni imenik.
Zdaj pa se pogovorimo o tem, kako stisniti in raztegniti .tar
-datoteke.
tar -cfz my_file.tar.gz my_source_directory
: tukaj z uporabo zastave -z
("zip", algoritem stiskanja) označuje, da je treba algoritem uporabiti za stiskanje datotek gzip
(GNUzip). Stiskanje datotek prihrani prostor na disku pri shranjevanju takih datotek. Če so datoteke načrtovane, na primer, za prenos drugim uporabnikom, to prispeva k hitrejšemu prenosu takih datotek.
Razpakirajte datoteko .tar.gz
lahko dodate zastavico -z
na ukaz ekstrahiranja vsebine .tar
-datoteke, o katerih smo razpravljali zgoraj. Videti je takole:
tar -xfz my_file.tar.gz
Treba je opozoriti, da ekipa tar
Uporabnih zastavic je veliko več.
Bash vzdevki
Bash vzdevki (imenovani tudi aliasi ali okrajšave) so namenjeni ustvarjanju skrajšanih imen ukazov ali njihovih zaporedij, katerih uporaba namesto običajnih ukazov pospeši delo. Če imate vzdevek bu
, ki skrije ukaz python setup.py sdist bdist_wheel
, potem je za klic tega ukaza dovolj, da uporabite ta vzdevek.
Če želite ustvariti tak vzdevek, samo dodajte naslednji ukaz v datoteko ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Če vaš sistem nima datoteke ~/.bash_profile
, potem ga lahko ustvarite sami z ukazom touch
. Ko ustvarite vzdevek, znova zaženite terminal, nato pa lahko uporabite ta vzdevek. V tem primeru vnos dveh znakov nadomesti vnos več kot treh ducatov znakov ukaza, ki je namenjen
В ~/.bash_profile
lahko dodate vzdevke za vse pogosto uporabljene ukaze.
▍Rezultati
V tej objavi smo obravnavali 21 priljubljenih ukazov Bash in govorili o ustvarjanju vzdevkov ukazov. Če vas ta tema zanima -
Drage bralke in bralci! Katere ukaze, ki so uporabni za začetnike, bi dodali tistim, ki so bili obravnavani v tem članku?
→
Vir: www.habr.com