Kõige kasulikum arvutiteaduse tund, mida te ilmselt kunagi pole käinud
OÜks asi, mida ma olen kogu oma karjääri jooksul pidevalt täheldanud, on see, et kõige produktiivsematel andmeteadlastel ja inseneridel on tavaliselt üks ühine joon: nad on käsurea viisardid. Nad saavad navigeerida oma arvuti failisüsteemis, otsida logifailidest mustreid ning hallata töid, lähtekoodi ja versioonijuhtimist – kõike seda käsurealt, ilma hiire ja graafiliste kasutajaliidestega aeglasele navigeerimisele tuginemata.
Ometi ei kuulu see käsurea „võlus”, nagu võib kestatööriistadega tuttavale inimesele tunduda, tavaliselt standardsete arvutiteaduse õppekavade osaks. An MIT kursus käsurea valdamise ümber on tabav nimi "Teie CS-hariduse puuduv semester".
See postitus on minu isiklik, 10 õppetunniga "käsurea viisardi 101" klass, mis on suunatud lugejatele, kes soovivad töötada rohkem käsureaga ja vähem graafiliste kasutajaliidestega. Käsitleme põhitõdesid kesta ja teemuutujate, varjunimede, failiõiguste, voogesituse ja torustike, tõhusa tööhalduse, tmuxi, ssh-i, giti ja vimi kohta.
Alustame. Tere tulemast CLW 101-sse.
1. Kest
Kui avate oma terminali, vaatate a koor, nt bash (taaskantav kest) või ZSH (z-shell). Kest on tõesti täielik programmeerimiskeel, millel on juurdepääs teatud standardprogrammidele, mis võimaldavad failisüsteemis navigeerimist ja andmetega manipuleerimist. Saate teada saada, millist kest te kasutate, tippides:
kaja $ SHELL
Bashis laadib kest iga kord uue kesta käivitamisel käsujada, mis on määratud .bashrc
fail, mis on tavaliselt teie kodukataloogis (kui kasutate Maci, on seal tavaliselt a .bash_profile
faili asemel). Selles failis saate määrata kasulikke asju, nagu oma teemuutuja või varjunimed (millest leiate lähemalt allpool).
2. Tee muutuja
Kui sisestate oma kesta teatud programmide nimed, nt python
, cat
või ls
, kuidas kest teab, kust seda programmi hankida? See on selle eesmärk tee muutuja. See muutuja salvestab koolonitega eraldatud loendi kõigist teedest, kus kest programme otsib. Oma teemuutujat saate kontrollida, tippides:
kaja $ PATH
Ja saate oma teemuutujale lisada täiendavaid katalooge selle käsuga:
eksport PATH="minu_uus_tee:$PATH"
Parim on lisada see käsk oma bashrc-faili, nii et teie täiendav kataloog oleks uue kesta käivitamisel alati teie teel.
3. Varjunimed
varjunimed on kohandatud käsud, mida saate määratleda, et vältida pikkade käskude ikka ja jälle tippimist, näiteks:
alias ll="ls -lah"
alias gs="git status"
alias gp="git push origin master"
Varjunimesid saab kasutada ka teie arendustöövoo kaitsemeetmete loomiseks. Näiteks määratledes
alias mv="mv -i"
teie terminal hoiatab teid, kui teisaldatav fail on uues kataloogis juba olemas, et te ei kirjutaks kogemata üle faile, mida te ei kavatsenud üle kirjutada.
Kui lisate need varjunimed oma bashrc-faili, on need alati saadaval, kui käivitate uue kesta.
4. Failide õigused ja sudo
Kui masinat jagavad mitu kasutajat, on oluline seadistada faili õigused mis määravad, milline kasutaja saab milliste andmetega milliseid toiminguid teha. Kui sisestate ls -l
, näete oma praeguses kataloogis olevaid faile koos nende õigustega järgmisel kujul:
-rwxrwxrwx
Siin
rwx
tähistavad vastavalt lugemis-, kirjutamis- ja täitmisõigusi- 3
rwx
plokid on mõeldud (1) kasutajale, (2) kasutajarühmale ja (3) kõigile teistele. Antud näites on kõigil kolmel olemil nii lugemis-, kirjutamis- kui ka täitmisõigused. - kriips näitab, et see on fail. Mõttekriipsu asemel on näha ka a
d
kataloogi võil
sümboolse lingi jaoks.
Saate faili õigusi redigeerida chmod
. Näiteks kui soovite faili enda jaoks käivitatavaks muuta, tippige
chmod u+x my_program.py
👉 Kui fail on käivitatav, siis kuidas kest teab, kuidas seda käivitada? See on määratud faili esimeses reas 'hashbang'iga, näiteks
#!/bin/bash
bash-skripti jaoks või#!/bin/python
pythoni skripti jaoks.
Lõpuks on olemas spetsiaalne "superkasutaja", kellel on kõigi failide jaoks kõik õigused. Superkasutaja kirjutamisel saate käivitada mis tahes käsu sudo
selle käsu ees. Käivitades saate käivitada ka iseseisva sudo-shelli
sudo su
⚠️ Kasutage sudot ettevaatlikult. Sudo abil saate teha muudatusi arvuti riistvara kontrollivas koodis ja viga võib muuta teie masina kasutuskõlbmatuks. Pidage meeles, et suure jõuga kaasneb suur vastutus.
5. Voogedastus ja torustik
. streaming operaator >
suunab väljundi programmist faili. >>
teeb sama asja, kuid see lisab olemasolevale failile selle ülekirjutamise asemel, kui see on juba olemas. See on kasulik teie enda programmide logimiseks, näiteks:
python my_program.py > logifail
Teine kasulik kontseptsioon on torustik: x | y
käivitab programmi x ja suunab x väljundi programmi y. Näiteks:
cat log.txt | tail -n5
: prindib failist log.txt viimased 5 ridacat log.txt | head -n5
: prindib failist log.txt esimesed 5 ridacat -b log.txt | grep error
: näitab faili log.txt kõiki ridu, mis sisaldavad stringi „error” koos reanumbriga (-b)
6. Töökohtade juhtimine
Kui käivitate programmi oma käsurealt (nt. python run.py
), töötab programm vaikimisi rakenduses esiplaanja takistab teil midagi muud tegemast, kuni programm on lõpetatud. Kui programm töötab esiplaanil, saate teha järgmist.
- tüüpi juht+C, mis saadab programmile signaali SIGINT (signaali katkestus), mis käsib masinal programm kohe katkestada (kui programmil pole võimalust neid signaale sisemiselt käsitleda).
- tippige juht+Z, mis peatab programmi. Pärast peatamist saab programmi jätkata, tuues selle esiplaanile (
fg
) või saates selle taustale (bg
).
Selleks, et käivitada käsk kohe taustal, kasutage &
operaator:
python run.py &
👉 Kuidas sa tead, millised programmid hetkel taustal töötavad? Kasutage käsku
jobs
. See kuvab töötavate tööde nimed ja nende protsessi ID-d (PID).
Lõpukskill
on programm signaalide saatmiseks taustal töötavatele programmidele. Näiteks,
kill -STOP %1
saadab STOP signaali, peatades programmi 1.kill -KILL %1
saadab KILL signaali, lõpetades programmi 1 jäädavalt.
7. tmux
tmux
("terminali multiplekser") võimaldab teil hõlpsasti uusi terminale luua ja nende vahel navigeerida. See võib olla väga kasulik, näiteks saate failisüsteemis navigeerimiseks kasutada ühte terminali ja tööde täitmiseks teist terminali. Tmuxi abil saate need mõlemad kõrvuti kasutada.
👉 Teine põhjus tmuxi õppimiseks on kaugarendus: kui logite kaugmasinast välja (kas tahtlikult või kogemata), lõpetatakse automaatselt kõik programmid, mis teie kestas aktiivselt töötasid. Teisest küljest, kui käivitate oma programme tmuxi kestas, võite lihtsalt eemaldada tmuxi akna, logida välja, sulgeda arvuti ja naasta hiljem selle kesta juurde, nagu poleks teid kunagi välja logitud.
Siin on mõned põhikäsud, mis aitavad teil tmuxiga alustada:
tmux new -s run
loob uue terminaliseansi nimega 'run'- control-BD: eemaldage see aken
tmux a
: lisa uusimale aknaletmux a -t run
: lisage aknale nimega "run"- Control-B“: lisage alla veel üks terminalipaan
- Control-B% : lisage paremale teine terminalipaan
- Control-B➡️ : liikuge terminalipaanile paremale (sarnane vasakule, üles, alla)
8. SSH ja võtmepaarid
ssh
on kaugmasinatesse sisselogimise programm. Kaugmasinatesse sisselogimiseks peate sisestama kas kasutajanime ja parooli või kasutama võtmepaari, mis koosneb avalikust võtmest (millele on juurdepääs mõlemal masinal) ja privaatvõtmest (mis on ainult teie enda masin on juurdepääs).
ssh-keygen
on programm sellise võtmepaari genereerimiseks. Kui jooksed ssh-keygen
, loob see vaikimisi avaliku võtme nimega id_rsa.pub
ja privaatvõti nimega id_rsa
ja asetage mõlemad oma sisse ~/.ssh
kataloog. Peate kaugmasinale lisama avaliku võtme, mida, nagu peaksite praegu teadma, saate teha torude ühendamise teel cat
, ssh
ja voogedastusoperaator:
kass .ssh/id_rsa.pub | ssh user@remote 'kass >> ~/.ssh/authorized_keys'
Nüüd saate ssh-d kaugjuhtimispuldis kasutada, esitades oma privaatvõtme:
ssh remote -i ~/.ssh/id_rsa
Veelgi parem tava on faili loomine ~/.ssh/config
mis sisaldab kõiki teie ssh autentimise seadistusi. Näiteks kui teie config
fail on järgmine:
Host dev
HostName kaugjuhtimispult
Identiteedifail ~/.ssh/id_rsa
Seejärel saate kaugjuhtimispulti sisse logida, lihtsalt tippides ssh dev
.
9. git
git
on versioonihaldussüsteem, mis võimaldab teil käsurealt tõhusalt navigeerida oma koodi versioonide ajaloos ja harudes.
👉 Pange tähele
git
ei ole sama mis GitHub:git
on iseseisev programm, mis saab hallata teie koodi versioonimist teie kohalikus sülearvutis, samas kui GitHub on koht, kus saate koodi eemalt majutada.
Siin on mõned olulised git-käsud:
git add
: määrab, millised failid soovite järgmisse sissekandmisse kaasatagit commit -m 'my commit message'
: viib sisse koodi muutmisegit checkout -b dev
: loob uue haru nimega "dev" ja kontrollige seda harugit merge dev
: liidab dev praeguse haruga. Kui see tekitab liitmise konflikte, peate need konfliktid käsitsi parandama ja seejärel käivitamagit add file_that_changed; git merge --continue
git stash
: tühistab kõik muudatused jagit stash pop
toob nad tagasi. See on kasulik, kui tegite põhiharus muudatusi ja otsustate seejärel, et soovite, et need muudatused oleksid eraldi harus.git reset --hard
: ennistab jäädavalt kõik muudatused
Ja siin on mõned olulised git-käsud kaughostiga (nt GitHub) töötamiseks:
git clone
: kloonib koodi repo koopia teie kohalikku masinassegit push origin master
: lükkab muudatused kaughosti (nt GitHub)git pull
: tõmbab kaugjuhtimispuldist uusima versiooni. (See on sama, mis jooksminegit fetch; git merge;
).
👉 Enne käsu käivitamist, näiteks
git push origin master
, peate autentima ssh-klahvipaariga (vt õppetund 8). Kui kasutate GitHubi, saate avaliku võtme lihtsalt oma profiili seadete alla kleepida.
10. vim
Vim on võimas käsureapõhine tekstiredaktor. Hea mõte on õppida selgeks vähemalt põhilised vimi käsud:
- aeg-ajalt peate võib-olla kaugmasinasse sisse logima ja seal koodi muutma. vim on standardprogramm ja seetõttu tavaliselt saadaval igas masinas, millega töötate.
- joostes
git commit
, vaikimisi avab git vimi kinnitussõnumi kirjutamiseks. Nii et vähemalt soovite teada, kuidas faili kirjutada, salvestada ja sulgeda.
Kõige olulisem asi, mida vimi puhul mõista, on see, et seal on erinevad töörežiimid. Kui olete vimi käivitanud, olete sees navigeerimisrežiim, mida kasutate failis navigeerimiseks. Tüüp i
algusesse redigeerimisrežiim, milles saate failis muudatusi teha. Sisestage Esc
muutmisrežiimist lahkumiseks ja navigeerimisrežiimi naasmiseks.
Navigeerimisrežiimi kasulik on see, et saate failis kiiresti navigeerida ja seda klaviatuuriga manipuleerida, näiteks:
x
kustutab tähemärgidd
kustutab terve reab
(tagasi) läheb eelmisele sõnale,n
(järgmine) läheb järgmise sõna juurde:wq
salvestab muudatused ja sulgeb faili:q!
ignoreerib teie muudatusi ja sulgeb faili
Rohkemate (palju rohkem!) vim-klaviatuuri otseteid leiate siit see vim-petuleht.
Lõplik mõtted
Õnnitleme, olete lõpetanud käsurea viisardi 101. Siiski oleme siin ainult pinda kriimustanud. Inspiratsiooni saamiseks kaaluge järgmist probleemi:
"Antud tekstifail ja täisarv
k
, printigek
failis levinumad sõnad (ja nende esinemiste arv) väheneva sagedusega.
Andmeteadlasena võib minu esimene impulss käivitada jupyteri märkmik, laadida andmed võib-olla pandadesse ja seejärel kasutada mõnda funktsiooni, nagu pandad. agg
. Kogenud käsureaviisardi jaoks see on ühekihiline:
tr -cs A-Za-z '' | tr A-Z a-z | sorteerida | unikaalne -c | sort -rn | sed ${1}q
See ei tundu liiga erinev selle artikli alguses näidatud Stable Diffusioni ettekujutusest. Võlur, tõepoolest.
Kuidas saada käsurea viisardiks Avaldatud uuesti allikast https://towardsdatascience.com/how-to-become-a-command-line-wizard-5d78d75fbf0c?source=rss—-7f60cf5620c9—4 https://towardsdatascience'i kaudu. com/feed
<!–
->
- Bitcoin
- bizbuildermike
- blockchain
- plokiahela vastavus
- blockchain konverents
- Blockchaini konsultandid
- coinbase
- coingenius
- üksmeel
- krüptokonverents
- krüpto mineerimine
- cryptocurrency
- Detsentraliseeritud
- Defi
- Digitaalsed varad
- ethereum
- masinõpe
- mitte vahetatav märk
- Platon
- plato ai
- Platoni andmete intelligentsus
- Platvormplokk
- PlatoData
- platogaming
- hulknurk
- tõend osaluse kohta
- W3
- sephyrnet