Il-materjal, li t-traduzzjoni tiegħu nippubblikaw illum, huwa maħsub għal dawk li jixtiequ jegħlbu l-linja tal-kmand tal-Linux. Il-ħila li tuża din l-għodda b'mod effettiv tista 'tiffranka ħafna ħin. B'mod partikolari, se nitkellmu dwar il-qoxra Bash u 21 kmandi utli hawn. Aħna ser nitkellmu wkoll dwar kif tuża bnadar tal-kmand u psewdonimi Bash biex tħaffef l-ittajpjar ta 'struzzjonijiet twal.
→
Termini
Hekk kif titgħallem taħdem mal-linja tal-kmand tal-Linux, se tiltaqa 'ma' ħafna kunċetti li huma ta' għajnuna biex tinnaviga. Xi wħud minnhom, bħal "Linux" u "Unix", jew "qoxra" u "terminal", xi drabi huma konfużi. Ejja nitkellmu dwar dawn u termini importanti oħra.
Issa li koprejna t-termini importanti, irrid nirrimarka li jien ser nuża t-termini "Bash", "qoxra" u "linja tal-kmand" b'mod interkambjabbli hawn, kif ukoll it-termini "direttorju" u "folder".
Standard stdin
), output standard (output standard, stdout
) u output ta’ żball standard (żball standard, stderr
).
Jekk fl-eżempju kmandi li se jingħataw hawn taħt, issib xi ħaġa simili my_whatever
- dan ifisser li dan il-framment jeħtieġ li jiġi sostitwit b'xi ħaġa tiegħek. Per eżempju, l-isem ta 'fajl.
Issa, qabel ma tipproċedi bl-analiżi tal-kmandi li dan il-materjal huwa ddedikat għalihom, ejja nagħtu ħarsa lejn il-lista tagħhom u d-deskrizzjonijiet qosra tagħhom.
21 Kmandi Bash
▍Ksib ta' informazzjoni
man
: Juri l-gwida għall-utent (għajnuna) għall-kmand.pwd
: juri informazzjoni dwar id-direttorju tax-xogħol.ls
: juri l-kontenut ta' direttorju.ps
: Jippermettilek tara informazzjoni dwar proċessi li qed jaħdmu.
▍Manipulazzjoni tas-sistema tal-fajls
cd
: tibdel id-direttorju tax-xogħol.touch
: toħloq fajl.mkdir
: toħloq direttorju.cp
: Ikkopja fajl.mv
: Ċaqlaq jew ħassar fajl.ln
: oħloq link.
▍I/O ridirezzjoni u pipelines
<
: direzzjoni mill-ġdidstdin
.>
: direzzjoni mill-ġdidstdout
.|
: wassal l-output ta 'kmand wieħed għall-input ta' kmand ieħor.
▍Qari tal-fajls
head
: aqra l-bidu tal-fajl.tail
: aqra t-tmiem tal-fajl.cat
: Aqra fajl u tipprintja l-kontenut tiegħu fuq l-iskrin, jew ikkonkatena fajls.
▍Tħassir ta 'fajls, twaqqaf il-proċessi
rm
: Ħassar fajl.kill
: waqqaf il-proċess.
▍Fittex
grep
: fittex informazzjoni.ag
: kmand avvanzat għat-tiftix.
▍Arkivjar
tar
: toħloq arkivji u taħdem magħhom.
Ejja nitkellmu dwar dawn il-kmandi f'aktar dettall.
Dettalji tat-Tim
Biex tibda, ejja nittrattaw il-kmandi, li r-riżultati tagħhom jinħarġu fil-forma stdout
. Normalment dawn ir-riżultati jidhru f'tieqa terminali.
▍Ksib ta' informazzjoni
man command_name
: uri l-gwida tal-kmand, jiġifieri informazzjoni ta’ għajnuna.
pwd
: turi l-mogħdija għad-direttorju tax-xogħol kurrenti. Fil-kors tal-ħidma mal-linja tal-kmand, l-utent ħafna drabi jeħtieġ li jiskopri eżattament fejn fis-sistema hu.
ls
: turi l-kontenut ta' direttorju. Dan il-kmand jintuża wkoll spiss.
ls -a
: uri fajls moħbija. bandiera applikata hawn -a
timijiet ls
. L-użu tal-bnadar jgħin biex tippersonalizza l-imġiba tal-kmandi.
ls -l
: Uri informazzjoni dettaljata dwar il-fajls.
Innota li l-bnadar jistgħu jingħaqdu. Per eżempju - bħal dan: ls -al
.
ps
: Ara l-proċessi li qed jaħdmu.
ps -e
: Uri informazzjoni dwar il-proċessi kollha li qed jaħdmu, mhux biss dawk assoċjati mal-qoxra tal-utent attwali. Dan il-kmand huwa spiss użat f'din il-forma.
▍Manipulazzjoni tas-sistema tal-fajls
cd my_directory
: ibdel id-direttorju tax-xogħol għal my_directory
. Biex titla 'livell wieħed fis-siġra tad-direttorju, uża my_directory
mogħdija relattiva ../
.
kmand cd
touch my_file
: ħolqien ta' fajls my_file
tul it-triq mogħtija.
mkdir my_directory
: toħloq folder my_directory
tul it-triq mogħtija.
mv my_file target_directory
: ċaqlaq il-fajl my_file
għal folder target_directory
. Meta tispeċifika d-direttorju fil-mira, trid tuża t-triq assoluta lejha (u mhux kostruzzjoni bħal ../
).
tim mv
jista 'jintuża wkoll biex tibdel l-isem ta' fajls jew folders. Per eżempju, jista 'jidher bħal dan:
mv my_old_file_name.jpg my_new_file_name.jpg
: toħloq kopja ta' fajl
cp my_source_file target_directorymy_source_file
u poġġih f'folder target_directory
.
ln -s my_source_file my_target_file
: toħloq rabta simbolika my_target_file
għal kull fajl my_source_file
. Jekk tibdel il-link, il-fajl oriġinali jinbidel ukoll.
Jekk il-fajl my_source_file
se titħassar, imbagħad my_target_file
se jibqa’. Bandiera -s
timijiet ln
jippermettilek toħloq links għal direttorji.
Issa ejja nitkellmu dwar I/O redirection u pipelines.
▍I/O ridirezzjoni u pipelines
my_command < my_file
: jissostitwixxi d-deskrittur standard tal-fajl tal-input (stdin
) għal kull fajl my_file
. Dan jista 'jkun utli jekk il-kmand ikun qed jistenna xi input mit-tastiera, u din id-data hija diġà ssejvjata f'fajl.
my_command > my_file
: jidderieġi mill-ġdid ir-riżultati tal-kmand, jiġifieri dak li normalment jidħol fih stdout
u output għall-iskrin, għal fajl my_file
. Jekk il-fajl my_file
ma teżistix - hija maħluqa. Jekk il-fajl jeżisti, jinkiteb fuqu.
Per eżempju, wara li tesegwixxi l-kmand ls > my_folder_contents.txt
se jinħoloq fajl ta' test li jkun fih lista ta' dak li hemm fid-direttorju tax-xogħol kurrenti.
Jekk minflok is-simbolu >
uża l-kostruzzjoni >>
, imbagħad, sakemm il-fajl li lejh jiġi ridirett l-output tal-kmand jeżisti, dan il-fajl mhux se jinkiteb fuqu. Id-data se tiżdied fl-aħħar ta 'dan il-fajl.
Issa ejja nagħtu ħarsa lejn l-ipproċessar tal-pipeline tad-dejta.
L-output ta 'kmand wieħed jiddaħħal fid-dħul ta' kmand ieħor. Huwa bħall-konnessjoni ta 'pajp ma' ieħor
first_command | second_command
: simbolu tal-conveyor, |
, jintuża biex jibgħat l-output ta 'kmand wieħed għal kmand ieħor. Dak li jibgħat il-kmand fuq in-naħa tax-xellug tal-istruttura deskritta stdout
, Waqgħa fi stdin
kmand fuq il-lemin tas-simbolu tal-pipeline.
Fuq Linux, id-data tista 'tiġi pipelined bl-użu ta' kważi kull kmand iffurmat tajjeb. Ħafna drabi jingħad li kollox fil-Linux huwa pipeline.
Tista' tikkatina diversi kmandi billi tuża s-simbolu tal-pipeline. Jidher bħal dan:
first_command | second_command | third_command
Pipeline ta 'diversi kmandi jistgħu jitqabblu ma' pipeline
Innota li meta l-kmand fuq ix-xellug tas-simbolu |
, joħroġ xi ħaġa għal stdout
, dak li hi outputs huwa immedjatament disponibbli bħala stdin
it-tieni tim. Jiġifieri, jirriżulta li, bl-użu tal-pipeline, qed nittrattaw eżekuzzjoni parallela ta 'kmandi. Xi drabi dan jista 'jwassal għal riżultati mhux mistennija. Dettalji dwar dan jistgħu jinqraw
Issa ejja nitkellmu dwar il-qari tad-dejta mill-fajls u l-wiri tagħhom fuq l-iskrin.
▍Qari tal-fajls
head my_file
: jaqra linji mill-bidu ta' fajl u jistampahom fuq l-iskrin. Tista 'taqra mhux biss il-kontenut tal-fajls, iżda wkoll dak li jikkmanda joħroġ fih stdin
tuża dan il-kmand bħala parti mill-pipeline.
tail my_file
: jaqra linji mill-aħħar tal-fajl. Dan il-kmand jista 'jintuża wkoll f'pipeline.
Ir-ras (ras) hija quddiem, u d-denb (denb) hija wara
Jekk qed taħdem mad-dejta billi tuża l-librerija tal-pandas, allura l-kmandi head
и tail
għandu jkun familjari għalik. Jekk dan mhux il-każ, agħti ħarsa lejn il-figura ta 'hawn fuq, u faċilment tiftakarhom.
Ikkunsidra modi oħra biex taqra l-fajls, ejja nitkellmu dwar il-kmand cat
.
Team cat
jew jistampa l-kontenut ta' fajl fuq l-iskrin, jew jikkonkatena fajls multipli. Jiddependi minn kemm fajls jiġu mgħoddija lil dan il-kmand meta tissejjaħ.
kmand tal-qtates
cat my_one_file.txt
: meta fajl wieħed jiġi mgħoddi lil dan il-kmand, joħroġha lil stdout
.
Jekk tagħtiha żewġ fajls jew aktar fajls, allura jġib ruħu b'mod differenti.
cat my_file1.txt my_file2.txt
: wara li rċieva diversi fajls bħala input, dan il-kmand jgħaqqad il-kontenut tagħhom u juri dak li ġara fih stdout
.
Jekk ir-riżultat tal-konkatenazzjoni tal-fajls jeħtieġ li jiġi ffrankat bħala fajl ġdid, tista 'tuża l-operatur >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Issa ejja nitkellmu dwar kif tħassar fajls u twaqqaf il-proċessi.
▍Tħassir ta 'fajls, twaqqaf il-proċessi
rm my_file
: ħassar il-fajl my_file
.
rm -r my_folder
: iħassar folder my_folder
u l-fajls u l-folders kollha li fih. Bandiera -r
jindika li l-kmand se jaħdem fil-mod rikorsiv.
Biex tevita li s-sistema titlob konferma kull darba li jitħassar fajl jew folder, uża l-bandiera -f
.
kill 012345
: Twaqqaf il-proċess tat-tħaddim speċifikat, u jagħtih iż-żmien biex jagħlaq bil-grazzja.
kill -9 012345
: Ittemm bil-forza l-proċess tat-tħaddim speċifikat. Ara l-bandiera -s SIGKILL
tfisser l-istess bħall-bandiera -9
.
▍Fittex
Tista 'tuża kmandi differenti biex tfittex dejta. Partikolarment - grep
, ag
и ack
. Ejja nibdew il-familjarità tagħna ma 'dawn il-kmandi ma' grep
. Dan huwa kmand affidabbli u ttestjat fil-ħin, li, madankollu, huwa aktar bil-mod minn oħrajn u mhux konvenjenti biex jintuża daqs kemm huma.
kmand grep
grep my_regex my_file
: tfittxijiet my_regex
в my_file
. Jekk tinstab taqbila, is-sekwenza kollha tiġi rritornata, għal kull taqbila. Default my_regex
trattat bħala espressjoni regolari.
grep -i my_regex my_file
: It-tfittxija ssir b'mod insensittiv għall-każ.
grep -v my_regex my_file
: jirritorna r-ringieli kollha li ma fihomx my_regex
. Bandiera -v
tfisser inverżjoni, tixbah lill-operatur NOT
, misjuba f'ħafna lingwi ta' programmar.
grep -c my_regex my_file
: Jirritorna informazzjoni dwar in-numru ta' logħbiet għall-mudell imfittex misjub fil-fajl.
grep -R my_regex my_folder
: iwettaq tfittxija rikorsisiva fil-fajls kollha li jinsabu fil-folder speċifikat u fil-folders imniżżla fih.
Issa ejja nitkellmu dwar it-tim ag
. Hija ġiet aktar tard grep
, huwa aktar mgħaġġel, huwa aktar konvenjenti li taħdem magħha.
kmand ag
ag my_regex my_file
: jirritorna informazzjoni dwar in-numri tal-linji, u l-linji nfushom, li fihom instabu taqbiliet magħhom my_regex
.
ag -i my_regex my_file
: It-tfittxija ssir b'mod insensittiv għall-każ.
Team ag
awtomatikament jipproċessa l-fajl .gitignore
u teskludi mill-output dak li jinstab fil-folders jew fajls elenkati f'dak il-fajl. Huwa komdu ħafna.
ag my_regex my_file -- skip-vcs-ignores
: kontenut ta' fajls ta' kontroll awtomatiku tal-verżjoni (bħal .gitignore
) ma titqiesx fit-tfittxija.
Barra minn hekk, sabiex tgħid lit-tim ag
fuq liema mogħdijiet tal-fajls trid teskludi mit-tfittxija, tista 'toħloq fajl .agignore
.
Fil-bidu ta 'din it-taqsima, semmejna l-kmand ack
. Timijiet ack
и ag
simili ħafna, nistgħu ngħidu li huma 99% interkambjabbli. Madankollu, it-tim ag
jaħdem aktar malajr, hu għalhekk li ddeskrivejtha.
Issa ejja nitkellmu dwar il-ħidma mal-arkivji.
▍Arkivjar
tar my_source_directory
: jikkonkatena fajls minn folder my_source_directory
f'fajl tarball wieħed. Fajls bħal dawn huma utli għat-trasferiment ta 'settijiet kbar ta' fajls lil xi ħadd.
kmand tal-qatran
Il-fajls tarball iġġenerati minn dan il-kmand huma fajls bl-estensjoni .tar
(Arkivju tat-tejp). Il-fatt li l-kelma "tape" (tejp) hija moħbija fl-isem tal-kmand u fl-estensjoni tal-ismijiet tal-fajls li toħloq jindika kemm ilu jeżisti dan il-kmand.
tar -cf my_file.tar my_source_directory
: joħloq fajl tarball jismu my_file.tar
bil-kontenut tal-folder my_source_directory
. Bandiera -c
stands għal "create" (ħolqien), u l-bandiera -f
bħala "fajl" (fajl).
Biex estratti fajls minn .tar
-file, uża l-kmand tar
bil-bnadar -x
("estratt", estrazzjoni) u -f
("fajl", fajl).
tar -xf my_file.tar
: estratti fajls minn my_file.tar
għad-direttorju tax-xogħol attwali.
Issa ejja nitkellmu dwar kif tikkompressa u dekompressa .tar
-fajls.
tar -cfz my_file.tar.gz my_source_directory
: hawn bl-użu tal-bandiera -z
("zip", algoritmu ta 'kompressjoni) jindika li l-algoritmu għandu jintuża biex jikkompressa fajls gzip
(GNuzip). Il-kompressjoni tal-fajls tiffranka l-ispazju tad-diska meta taħżen fajls bħal dawn. Jekk il-fajls huma ppjanati, pereżempju, li jiġu trasferiti lil utenti oħra, dan jikkontribwixxi għal tniżżil aktar mgħaġġel ta 'dawn il-fajls.
Unzip fajl .tar.gz
tista 'żżid bandiera -z
għall-kmand tal-kontenut tal-estratt .tar
-fajls, li ddiskutejna hawn fuq. Jidher bħal dan:
tar -xfz my_file.tar.gz
Ta’ min jinnota li t-tim tar
Hemm ħafna aktar bnadar utli.
Bash psewdonimi
Psewdonimi Bash (imsejħa wkoll psewdonimi jew abbrevjazzjonijiet) huma mfassla biex joħolqu ismijiet imqassra ta 'kmandi jew is-sekwenzi tagħhom, li l-użu tagħhom minflok kmandi regolari jħaffef ix-xogħol. Jekk għandek alias bu
, li jaħbi l-kmand python setup.py sdist bdist_wheel
, imbagħad biex isejjaħ dan il-kmand, huwa biżżejjed li tuża dan l-alias.
Biex toħloq tali alias, żid il-kmand li ġej mal-fajl ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Jekk is-sistema tiegħek m'għandhiex il-fajl ~/.bash_profile
, allura tista 'toħloq lilek innifsek billi tuża l-kmand touch
. Wara li toħloq l-alias, terġa 'tibda t-terminal, u wara tista' tuża dan l-alias. F'dan il-każ, id-dħul ta 'żewġ karattri jissostitwixxi l-input ta' aktar minn tliet tużżana karattri tal-kmand, li huwa maħsub għal
В ~/.bash_profile
tista 'żżid psewdonimi għal kwalunkwe kmandi użati ta' spiss.
▍Riżultati
F'din il-kariga, koprejna 21 kmand popolari Bash u tkellimna dwar il-ħolqien ta' psewdonimi tal-kmand. Jekk inti interessat f'dan is-suġġett -
Għeżież qarrejja! Liema kmandi li huma utli għal dawk li jibdew iżżid ma' dawk li ġew diskussi f'dan l-artikolu?
→
Sors: www.habr.com