Uživatelské nástroje

Nástroje pro tento web


navody:zaklady_linux

Základní UNIXové příkazy

Seriál o unixových nástrojích na AbcLinuxu

adduser

příkaz pro vytvoření uživatele

adduser -d <domácí adresář> -m -g <skupina> -s <shell> <jméno uživatele>

blkid

příkaz vypíše diskové oddíly jejich UUID a typ souborového systému

blkid

pro uživatele hezčí výpis i s mount adresáři

blkid -o list

cal

vytiskne na stdout kalendář aktuálního měsíce

cal

cat

spojí soubory do jednoho

cat soubor1.txt soubor2.txt soubor3.txt > soubory.txt

chmod

umožní vlastníkovi spouštět soubor

chmod u+x <soubor>

rekurzivně odebere veškerá práva skupině a ostatním

chmod -R go-rwx <adresář>

chown

změní vlastníka souboru

chown <uživatel> <soubor>

změní rekurzivně vlastníka a skupinu adresáře a všeho co obsahuje

chown -R <uživatel>:<skupina> <adresář>

date

vypíše aktuální datum ve formátu RRRR-MM-DD

date "+%F"

dd

vytvoří 100 bytový náhodný soubor myrandom

dd if=/dev/random of=myrandom bs=100 count=1 iflag=fullblock

kopíruje disk /dev/sdc do souboru clone_file po blokách velkých 512 bytů, přeskočí prvních 9440 bloků a zobrazí progress

dd if=/dev/sdc of=clone_file bs=512 skip=9440 status=progress

zobrazí text jednoho bloku, ve kterém se nachází byte číslo 12303962404

dd if=/dev/sda1 count=1 skip=$(expr 12303962404 / 512)

deluser

smaže uživatele ze skupiny (ze systému ne)

deluser <uživatel> <skupina>

df

zobrazí volné a zaplněné místo na discích

df -h

diff

vytvoří patch pro dva adresáře

diff -ruN <adresar1> <adresar2> > patch

vytvoři patch souboru

cp <soubor> <soubor>.orig
# zmena souboru
diff -u <soubor>.orig <soubor> > <soubor>.patch

dmidecode

vytiskne informace o RAM

dmidecode --type 17

du

zobrazí velikost adresáře a všech jeho podadresářů v čitelné podobě

du -h <adresář>

zobrazí velikost adresáře (nezobrazuje rozepsané podadresáře) v čitelné podobě

du -sh <adresář>

zobrazí nakonec i součet velikostí adresářů

du -ch <adresář> <adresář>

e2label

zobrazí label disku

e2label /dev/sda1

enca

Program se pokouší detekovat kódování souboru podle znaků které obsahuje. Detekce může selhat.

vypíše ve kterém kódování je <soubor>

enca <soubor>

převede na defaultní kódování systému

enca -c <soubor>

převede soubor na UTF-8 kódování

enca -x utf-8 <soubor>

fdisk

zobrazí všechny oddíly

su -c "fdisk -l"

vypíše nalezené disky

fdisk -l | grep '^Disk'

file

vypíše mime souboru

file --mime-type <soubor>

find

ve všech *.java souborech v aktuálním adresáři nebo podadresářích najde řádky, kde se vyskytuje backgroundColor (vypíše soubor a číslo řádku)

find . -name "*.java" -exec grep --color -Hn backgroundColor {} \;

pro každý soubor txt vypíše řádek soubor <nalezený soubor>

find . -name '*.txt' -printf "soubor %p\n"

nalezne soubory *.c a *.h

find . \( -name "*.c" -o -name "*.h" \)

k názvu všech adresářů, které začínají 0 přidá na začátek 20

find . -maxdepth 1 -type d -name "0*" -exec sh -c 'mv "${0}" "20${0/.\/}"' {} \;

smaže soubory, které nalezne

find . -type f -name "FILE-TO-FIND" -exec rm -f {} \;

najde soubory s příponou py (neřeší valikost písmen), který nemají v cestě adresář temp

find . -type f -iname '*.py' ! -path '*/temp/*'

najde všechny soubory s příponou py, krome těch, které končí .generated.py

find . -type f -iname '*.py' ! -iname '*.generated.py'

finger

vytiskne informace o uživateli

finger <uživatel>

free

vypíše stav použité a volné paměti

free -h

fsck

kontrola souborového systému (hledá špatné bloky, vynutí kontrolu a je upovídaný)

fsck -cfv <zarizeni>

grep

pro všechny soubory cpp v poadresáři vypíše řádky, ve kterých se nachází main; -n zobrazí čísla řádků

grep -n main */*.cpp

hledá rekurzivně ve všech souborech

grep -rn _date *

vypíše názvy souborů, které obsahují text Main

grep -l Main *.java

vypíše názvy souborů, které neobsahují text Main

grep -L Main *.java

vypíše řádky, které neobsahují slovo main

grep -v main *.java

hledá buď pattern1 nebo pattern2

grep -E 'pattern1|pattern2' <soubor>

hledá text v celém oddíle a při nálezu vypíše pozici - vhodné pro hledání obsahu smazaného souboru

sudo grep -a -b "# text" /dev/sda1

groupadd

přidá skupinu

groupadd <skupina>

groupdel

smaže skupinu

groupdel <skupina>

groupmod

změní identifikátor skupiny

groupmod -g 1000 <skupiny>

groups

vypíše skupiny do kterých uživatel patří

groups <uživatel>

gunzip

rozbalí a smaže soubor <soubor.gz>

gunzip <soubor.gz>

gzip

zabalí <soubor> do <soubor.gz> a smaže ho

gzip <soubor>

ze soubor1.txt vezme 100 řádků a uloží je do soubor2.txt

head -100 soubor1.txt > soubor2.txt

id

zobrazí uid, gid, a skupiny uživatele

id <uživatel>

ip

addr

zobrazí adresy všech rozhraních

ip addr show

zobrazí informace o všech rozhraních

ip link show

route

zobrazí routovací tabulku

ip route

nastaví defultní bránu

ip route add default via 192.168.100.254

kill

zabije proces signálem SIGKILL (nelze odmítnout)

kill -9 <pid>

ldd

vypíše dynamické knihovny, které program používá

ldd </cesta/k/programu>

ln

vytvoří symbolický odkaz

ln -s <jméno_cíle> [<jméno_sym_odkazu>]

locale

vypíše aktuální nastavení lokalizace

locale

locate

Příkaz locate hledá soubory v databázi mlocate, kterou lze aktualizovat příkazem updatedb. Oproti příkazu find je locate hodně rychlý. Databáze je uložena v souboru /var/lib/mlocate/mlocate.db.

nalezne všechny soubory v jejichž cestě se nachází libudev

locate libudev

ls

vypíše soubory do jednoho sloupce

ls -w 1
# nebo
ls -1

lsb_releas

vypíše informace o distrubuci

lsb_release -a

lscpu

vypíše informace o procesoru

lscpu

lsusb

vypíše podrobné informace o USB zařízení s hodnotou <vendorId>

lsusb -v -d <vendorId>:

man

sekce

  1. Obecné/uživatelské příkazy
  2. Systémová volání
  3. Funkce knihovny jazyka C
  4. Speciální soubory - (obvykle zařízení nacházející se v /dev) a ovladače
  5. Formáty konfiguračních souborů a obecné zásady
  6. Hry spořiče obrazovky
  7. Různé
  8. Příkazy systémové administrace a démoni

příklady

zobrazí manuálovou stránku pro printf ze sekce 3

man 3 printf

vypíše umístění souboru manuálové stránky

man -w 3 printf

vypíše manuálovou stránku uloženou v souboru

man -l /usr/share/man/man3/printf.3.gz

mkdir

vytvoří všechny rodičovské adresáře, které neexistují

mkdir -p "/cesta/k/adresari"

mkfs.

noformátuje /dev/sda1 na ext4

mkfs.ext4 /dev/sda1

mount

namountuje zařízení /dev/sdb1 do adresáře /media/flash/

mount /dev/sdb1 /media/flash/

namountuje sdílený dresář z Windows (pokud neuvedete heslo, tak na něj budete dotázáni)

su
mkdir /media/<mount adresář>
mount -t cifs -o user=<uživatel>,password=<heslo>,uid=1000,gid=1000 //<IP adresa>/<sdílený adresář> /media/<mount adresář>

namountuje souborový systém, který nemá zařízení

mount -t <typ> none <adresář>

namountuje iso soubor

mount -o loop <soubor iso> <adresář>

namountuje všechno z /etc/fstab

mount -a

netstat

vypíše služby na jakých portech poslouchají s jejich PID

netstat -tlpn

nohup

program běží i po ukončení terminálu

nohup wget <url>

passwd

dotáže se na nové heslo uživatele

passwd <uživatel>

patch

změní soubory v adresáři podle souboru patch

patch -p1 -N < ../patch

změni soubory v opačném pořadí (z novějšího na starší)

patch -p1 -N -R < ../patch

pgrep

vypíše pid procesů, které mají součástí názvu krusa

pgrep krusa

pkill

zabije procesy, které mají součástí názvu krusa

pkill krusa

pwd

vypíše aktuální adresář

pwd

rm

smaže rekurzivně celý adresář i s obsahem

rm -rf <adresář>

screen

otevře samostatnou obrazovku ze kterého je možné se odpojit a zase se k němu připojit.

screen

připojí se na běžící obrazovku

screen -r

vypíše existující obrazovky

screen -ls

zkratky

  • Ctrl + a d - odpojí se od obrazovky
  • Ctrl + d - ukončí obrazovku

sed

vypíše padesátý řádek souboru

sed -n '50p' < file.txt

ve všech txt souborech přepíše stary za novy

sed -i 's/stary/novy/g' *.txt

sfdisk

nutné spuštět jako root

zazálohuje MBR

sfdisk -d /dev/sda > /tmp/sda.bak

obnoví MBR

sfdisk /dev/sda < /tmp/sda.bak

sleep

  • s - sekundy
  • m - minuty
  • h - hodiny
  • d - dny

po pěti hodinách se vypne

sleep 5h; poweroff

sort

seřadí soubor.csv podle druhého sloupce a pak podle třetího (sloupec je oddělen ;)

sort -t ";" -k2 -k3 soubor.csv

split

rozdělí soubor na 3 stejně velké části, které se jmenují prefixa prefixb a prefixc

split -n 3 soubor prefix

rozdělí soubor na soubory, které obsahují maximálně 10000 řádků

split -l 10000 soubor

sync

Vynutí zápis změněných bloků na disk, aktualizuje superblok.

sync

tail

zobrazí posledních deset řádků ze souboru

tail <soubor>

tar

spojí adresář a jeho podadresáře do tar souboru bez komprese

tar -cf soubor.tar <adresář>

spojení soborů včetně komprese pomocí gzip

tar -czf <soubor>.tar.gz <sobory pro kompresi>

extrakce souborů z archívu

tar -xf <soubor archívu>

záloha systému (ukecaná, bez jiných souborových systémů)

tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /

extrahuje soubor etc/fstab z archívu backup.tar.gz

tar -zxvf backup.tar.gz etc/fstab

extrahuje všechny soubory z tar.gz archívu

tar -xzf <soubor tar.gz archívu>

tree

vytiskne strom souborů do hloubky 2 (unicode znaky se tisknou normálně)

tree -NL 2 <adresář>

umount

odmountuje zařízení

umount /media/flash/

uname

vytiskne všechny informace o systému

uname -a

update-alternatives

nastaví defalutní editor v příkazové řádce (symbolické odkazy /usr/bin/editor → /etc/alternatives/editor → editor)

update-alternatives --config editor

userdel

smaže uživatele

userdel <uživatel>

usermod

změní uid uživatele

usermod -u 1000 <uživatel>

přidá existujícího uživatele do doplňující skupiny a nezruší ho z jiné

usermod -a -G <skupina> <uživatel>

wc

vypíše délku nejdelšího řádku souboru

wc -L <soubor>

spočítá počet řádků všech souborů s příponou py

(find . -type f -iname '*.py' -print0 | xargs -0 cat) | wc -l

which

vypíše úplnou cestu k programu mail

which mail

whoami

zobrazí moje uživatelské jméno

whoami

xargs

pošle standardní vstup (seznam souborů) jako argumenty programu wc -l

ls | xargs wc -l

xrandr

vypíše informace o připojených monitorech

xrandr

zip

zkomprimuje všechny *.JPG obrázky do souboru fotky.zip; zeptá se na heslo

zip -e fotky.zip *.JPG

rekurzivně zabalí adresáře

zip -r <zip soubor> <adresář1> <adresář2>
navody/zaklady_linux.txt · Poslední úprava: 2020/11/10 22:55 autor: jules