Linux naredbe – drugi dio

Nakon što ste se upoznali s Linuxom i naučili kako koristiti neke osnovne naredbe, možda se pitate gdje možete krenuti odatle. Ovaj članak će pokriti još nekoliko naredbi i programa koji se često koriste pri radu s Linux bashom prije nego što vas uvede u koncept spajanja naredbi i preusmjeravanja njihovih ulaza i izlaza koji će vam omogućiti još učinkovitiji rad.

Kako kopirati datoteke između računala

Scp

Scp označava sigurnu kopiju. Kao što ime sugerira, ovaj program vam omogućuje prijenos datoteka s lokalnog stroja na udaljeno računalo i obrnuto. Sljedeća naredba kopira lokalnu datoteku na udaljeno računalo:

scp <local_file> <remote_user> @ <remote_machine>: <remote_path>

Koristite sljedeću sintaksu za prijenos datoteke s udaljenog računala na vaš stroj:

scp <remote_user> @ <remote_machine>: <remote_path> <local_path>

Ova je naredba nevjerojatno korisna kada radite s razvojnim pločama poput Raspberry Pi ili BeagleBone.

Wget

Naredbu wget možete koristiti ako želite preuzeti datoteku s poslužitelja na vaše lokalno računalo:

Naredba će pokušati preuzeti izvor koji ste unijeli i automatski će otkriti ekstenziju datoteke. Na primjer: Ako ga usmjerite na web mjesto, on će preuzeti HTML datoteku. Ako prenosite veliku datoteku, jednostavno se odjavite i alat će zadatak dovršiti u pozadini.

Kako se koristi upravljanje procesima

ps/top

Naredbe ps / top omogućuju vam popis procesa koji se izvode na vašem računalu:

ps -aux

Imajte na umu da će ovo stvoriti samo snapshot. Međutim, možete dobiti popis koji se osvježava pomoću naredbe top:

Kill

Naredba kill može se upotrijebiti za „ubijanje“ zadatka koji se izvodi (engl. running task). Možda želite prekinuti program koji ili ne reagira ili se izvodi u pozadini. U svakom slučaju, morat ćete saznati PID procesa/programa (to možete učiniti naredbama ps ili top):

Servis

Naredba service može se koristiti za upravljanje servisima na vašem računalu. To je prilično svestran način za pokrenutanje, zaustavljanje i restart servisa kao i ispis detalja i popis svih dostupnih usluga na računalu. Za popis statusa servisa koristite sljedeću naredbu:

<imeservisa> –status-all

Za ispis detaljnog stanja određenog servisa koristite:

service <imeservisa> status

Na primjer:

Kao što vidite, servis je trenutno pokrenut. To znači da ga možemo zaustaviti ili restartati. Da biste ga restartali, upišite:

sudo service bluetooth restart

Za zaustavljanje servisa zamijenite riječ restart sa rječju stop.

Kako mountati ili demountati USB driveove

lsblk / fdisk

Naredbe lsblk i fdisk možete koristiti za ispis block uređaja (lsblk) i za prikaz i manipuliranje particijama diska (fdisk). Obje naredbe će raditi za ovaj zadatak.

Kao što vidite, pokrenuo sam naredbu prije i nakon umetanja USB drive-a. Zatim uzmite u obzir particiju koju želite mountati. U mom slučaju to je sda2.

Mount

Pomoću ove naredbe montirate datotečni sustav (engl. file system) vanjskog pogona u vaš lokalni datotečni sustav (engl. mount the filesystem of an external drive in your local file system). To će vam omogućiti rad s datotekama na uređaju za pohranu.

sudo mount <partition_to_mount> <local_mounting_point>

Na primjer:

sudo mount /dev/sda2 /mnt

Zatim možete pristupiti datotekama na mountanoj particiji tako da otvorite mapu /mnt.

Unmount

Nakon što završite s USB pogonom, morate ga izbaciti (engl. eject), odnosno demontirati ga. To možete učiniti pomoću naredbe unmount zajedno s točkom montiranja, koju ste prethodno definirali.

sudo umount <local_mounting_point>

Ove su naredbe samo mali postotak onoga što Linux bash može ponuditi. Međutim, smatram da su ove naredbe posebno korisne u svakodnevnom životu, posebno kada radim na udaljenom računalu putem SSH-a ili headless sustavu.

Kako koristiti naredbe za spajanje (engl. concatenating commands)

Prava snaga Linuxa ne potiče iz upotrebe jednostavnih naredbi i programa. Još uvijek možete puno toga napraviti, ali da biste radili još učinkovitije i brže, možete kombinirati naredbe umjesto da čekate da se jedna završi prije nego što ručno upišete sljedeću. Nadalje, možete filtrirati ili pohraniti rezultate u datoteku koja može biti korisna na više načina.

Kako filtrirati rezultate

Neke naredbe, poput ps ili ls, mogu vam dati vrlo dugačak popis rezultata. Obično vas zanima samo određeni unos ili skup unosa (na primjer, sve .py datoteke u mapi). Naredba koja vam omogućava traženje određenih znakova u nizu naziva se grep. Jednostavno će ispisati sve retke na kojima se pojavljuje niz koji ste tražili.

Sada ćete samo trebati unijeti izlaz programa, na primjer, echo ili ls, u naredbu grep kao ulaz i filtrirat ćete sve nebitno. Kao što vidite, operater cijevi koristi se za to. Uzmimo ls kao primjer:

Zanimaju me samo datoteke koje završavaju s .py. Da bih primijenio filtar, izlaz ls upamćujem u grep s dotičnim pravilnim izrazom:

Kako izvoditi program u pozadini

Ponekad želite pokrenuti program koji bi mogao potrajati neko vrijeme, ali ne želite čekati da se završi. Možete koristiti ampersand u tu svrhu.

imeprograma &

To će se pokrenuti u programu u pozadini. Kada započne, PID novog postupka otiskuje se na konzolu i sve što program izlazi na stdout također će se ispisati na konzoli.

Kako pisati i čitati iz datoteka

Rezultati svih programa koji izlaze na stdout stream mogu se zapisati u druge programe ili datoteke. Na primjer, ako želim pohraniti popis python skripti u datoteku, mogao bih to učiniti tako da upišem:

ls -l | grep “. *. py$”> python-scriptpts.txt

Ovo će stvoriti (ili prebrisati) datoteku pod nazivom python-scriptpts.txt koja sadrži rezultate naredbe ls filtrirane grep-om. Ako ne želite prebrisati sadržaj postojeće datoteke, možete koristiti >> da biste postojećoj datoteci dodali novi tekst. Kada koristite >>, tekst se u postojeću datoteku upisuje na kraj datoteke (počevši od kraja datoteke pa nadalje, „produbljujući“ kraj).

Ako želite unijeti sadržaj datoteke u program, možete upotrijebiti simbol <.

Ovi operatori će pisati u standardni input stream (hrv. ulazni tok) i čitati sa standardnog outputa (hrv. izlaza) programa.

Kako pokrenuti više naredbi odjednom

Pretpostavimo da želite pokrenuti više naredbi koje bi mogle potrajati neko vrijeme. Ali ne želite sjediti za računalom i čekati da završe kako biste mogli nastaviti s unošenjem sljedećih naredbi. Srećom, možete unijeti gomilu instrukcija odjednom i one će se izvoditi jedna za drugom dok vi možete uživati ​​u pauzi za kavu.

Da biste to postigli, napišite sve naredbe u jedan redak i razdvojite ih točka-zarezima:

Ali što ako naredba faila? Ili želite izvršiti naredbu samo kad budete mogli biti sigurni da je prethodna naredba bila uspješna? Ne brinite, ti su slučajevi također obuhvaćeni.

A || B

Ovo će pokrenuti naredbu A, a ako ne uspije, izvršit će B. Sljedeći isječak čini suprotno.

A&&B

To znači da će se naredba B izvršiti tek ako je naredba A bila uspješno izvršena. Na taj način možete povezati prilično složene naredbe koje gotovo djeluju poput samih malih aplikacija.

find py-files.txt && rm py-files.txt; touch py-files.txt && ls -a | grep “.*.py$” >> py-files.txt && echo “Datoteka je stvorena! Sadržaj je:” && cat py-files.txt

Navedeni izraz će proizvesti sljedeći rezultat:

Tekst je nastao na temelju originalnog članka s portala Maker Pro te je djelomično preveden. Iz originalnog članka izdvojeni su najbitniji dijelovi kako bi budućim čitateljima skratili vrijeme čitanja i učenja. Moguće je da su neki dijelovi teksta parafrazirani te da su neke teme detaljnije ili drugačije objašnjene unutar teksta. Referenca na originalnu edukaciju: https://maker.pro/linux/tutorial/intermediate-linux-commands Također, ovaj članak je moguće koristiti u vlastite komercijalne i nekomercijalne svrhe. Ukoliko je članak javno dostupan, obavezno je navođenje izvora uz objavu loga na početku i kraju članka.

Komentiraj