Bash

2018-02-20T13:02:00+01:00 bash.jpg

Příkazy pro Shell Bash na Ubuntu

Odkazy a zdroje GNU Bash manual

Adminer – instalace nebo aktualizace

mkdir -p /var/www/html && cd $_ && wget https://adminer.org/latest.php  -O adminer.php

Změní defaultní shell Dash na Bash

dpkg-reconfigure dash

Use dash as the default system shell (/bin/sh)? <- No

Výpis aktuálních firewall pravidel pomocí iptables

sudo iptables -L
sudo ip6tables -L

První varianta je pro IPv4, druhá pro IPv6.

Routovací tabulka

route
route -n

S parametrem -n se potlačí převod IP adres na doménová jména.

Možnost blokování útočících IP adres na server

Zablokování IP adresy
/sbin/route add -host 192.168.0.123 reject

Po restartu serveru je nutné znova nastavit.

Odblokování IP adresy
route del 192.168.0.123 reject

Hromadná úprava EXIF dat v JPEG obrázcích – nastavení data a času

Nastaví datum a čas, uložený v hlavičce Exif k tomu, co je uvedeno na příkazovém řádku. Čas musí být specifikován jako yyyy:mm:dd-hh:mm:ss
např. v adresáři s příslušnými fotkami spustíme:

jhead -ts2016:12:31-23:59:59 *.jpg

Parametr -ts<datetime> viz. dokumentace programu Jhead.

Pokud příkaz jhead vypíše: File xy.jpg contains no Exif timestamp to change a potřebujeme např. změnit hromadně datum velkého množství fotek před uploadem na photos.google.com, vystačíme si s příkazem touch, např.:

touch *.jpg -t 201612312359

Spojení pdf souborů

sudo apt-get install pdftk
pdftk 1.pdf 2.pdf 3.pdf cat output merged.pdf

Zálohování

Příklad vytvoření zálohy adresáře home s názvem home.tar.gz:

cd /
tar czf home.tar.gz home
S výpisem spotřebovaných časů na vytvoření zálohy

Před zálohovací příkaz stačí zapsat time:

time tar czf home.tar.gz home

===

===

===

===

===

===

===

Další používané příkazy

> hello.txt  # vymaže obsah souboru hello.txt
/sbin/route add -host 192.168.0.123 reject  # zablokování útočící IP adresy
a2dismod ssl
a2enmod ssl
a2enmod rewrite && service apache2 restart  # enable
apache2 -v  # verze
apache2ctl -M  # Dump a list of loaded Static and Shared Modules.
apt-cache search php7.0  # seznam dostupných PHP modulů
apt-get autoremove
apt-get install apt-show-versions
apt-get install openssh-server
apt-get install php5-sqlite  # (pokud php hlásí: could not find driver; poté se musí restartovat apache2)
apt-get install rhash  # umí SHA-3
apt-get install tcpdump # paketový analyzér
apt-get -f install # pokusí se opravit porušené závislosti
apt-get dist-upgrade # Povyšuje balíky, mající nové závislosti. Nedělá
 upgrade na novou verzi systému, to dělá do-release-upgrade
apt-get update
apt-get upgrade
apt-get update && apt-get upgrade
apt-show-versions -a nginx # zobrazí dostupné verze balíků v distribuci
blkid   # zjištění UUID všech svazků
cat ~/.ssh/id_rsa.pub  # zobrazí veřejný klíč
cat xa* > xxx.mkv  # spojí rozdělené soubory (viz. příkaz split)
cd      # změní aktuální adresář
convert -flatten img.png img-white.jpg  # nahradí v PNG transparentní pozadí v JPG bílým
cp      # kopíruje soubory a adresáře
chmod 750 index.php     # změna práv souboru
curl -I https://www.seznam.cz  # zobrazí HTTP hlavičku
curl -I -L http://seznam.cz # zobrazí HTTP(S) hlavičky všech přesměrování
curl http://wttr.in/  # počasí
dir
df -f   # místo na disku
dmidecode --type memory  # RAM info
do-release-upgrade      # upgrade verze systému
do-release-upgrade -d   # upgrade do vývojové verze systému
dovecot --version # verze Dovecot
dpkg -i xxx  # instaluje balíček xxx
dpkg --list | grep linux-image  # seznam starších verzí kernelů přítomných v systému
dpkg-query -S mysql-server  # zjištění verze MySQL
dpkg-reconfigure -plow unattended-upgrades  # automatická instalace stabilních aktualizací
dpkg-reconfigure dash # Dash je novější shell. Pokud chceme výchozí Bash, odpovíme No
dpkg-reconfigure mariadb-server-10.0  # rekonfigurace nainstalované DB, např. při ztrátě hesla
du -sh /etc # velikost adresáře /etc
dumpe2fs -h /dev/vda1   # informace o systému souborů
echo $SHELL  # vypíše aktuální shell
echo 'Hello, World!' > foo.txt  # vytvoří soubor foo.txt a zapíše Hello, World!
echo 'Hello, World!' >> foo.txt  # připíše do souboru foo.txt Hello, World!
echo -n hello | rhash --sha3-512 -  # SHA-3 hash
echo "test" | mail -s predmet jsmith@example.org
env  # výpis proměnných prostředí
ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4  # odstraní audio z mp4
find . -type f | wc -l  # spočítá počet souborů v aktuálním adresáři a všech podadresářích
find / -name "smtpd.key"
free  # zobrazí stav pamětí v systému (i swap)
git clone <adresa>
git add <file>
git commit -am "<description>"
git push <repo> <master>
git status
grep -l -R "text" /var/log/  # hledá a vypíše seznam souborů, obsahující "text"
hostname  # název hostitelského systému
htop  # monitor systému
htpasswd -c -B htpasswd.txt user # (systém se zeptá na heslo a vytvoří soubor)
iptables -L
iptables -L -n     # výpis aktuálních pravidel firewallu v numerickém formátu
ln original odkaz  # symlink - pevný odkaz
ln -s original odkaz  # symbolický odkaz
ln -s /usr/share/munin/plugins/ping_ping_google.com ping_na_Google
ls  # výpis obsahu adresáře
ls -a  # výpis včetně skrytých souborů
ls -l  # dlouhý formát výpisu (vypíše, kam vede symlink)
ls -la  # dlouhý formát výpisu včetně skrytých souborů
lsb_release -a  # výpis verze Ubuntu
lshw  # výpis hardware
lshw -html  # výpis hardware v html
lspci  # výpis čipů a karet připojených k základní desce
lsusb  # výpis zařízení připojených do portu USB
mailq  #Postfix - vypíše e-mailovou frontu (jako postqueue -p)
mc  # Midnight Commander
md5sum ubuntu-17.10.1-desktop-amd64.iso // pro ověření integrity po přenášení souboru
mkdir -p  # vytvoří adresář (ignoruje existující)
mkdir -p podadresar1/podadresar2  # vytvoří více podadresářů z aktuálního umístění
mkdir -p root-ca/{conf,private,public}
mv     # přejmenovává a přesouvá soubory a adresáře
mv staryNazev novyNazev  # pokud novyNazev již existuje, přepíše se!
mv soubor1 soubor2 /usr/bin  # přesune soubory do /usr/bin
mysql -u root -p  # přihlášení do databáze
mysqladmin -u root -p'stareheslo' password 'noveheslo' # změna root hesla MySQL
nano /etc/ssh/sshd_config
nano +100 /file  # otevře soubor s kurzorem na stém řádku souboru file
nano +100,5 /file  # otevře soubor s kurzorem na stém řádku a pátém sloupci
nano -c  # spustí se se zobrazováním polohy kurzoru
netstat --route
netstat --tcp --numeric  # výpis aktivních TCP spojení
netstat --tcp --listening --programs
netstat --statistics --raw
openssl version  ## verze openssl
passwd  # změna hesla (uživatel sám sobě)
sudo passwd <uživatel>  # správce někomu jinému
php -m  # vypíše seznam modulů obsažených v PHP
php -m |grep ssh2 # vypíše, jestli moduly obsahují modul ssh2
php -v # vypíše verzi PHP
postconf mail_version # verze Postfix
postsuper -d ALL  # Postfix - vymaže e-mailovou frontu
postqueue -p  # Postfix - vypíše e-mailovou frontu (jako mailq)
poweroff   # vypne počítač
pwd     # vypíše absolutní cestu do adresáře
reboot  # restart
route -n
rkhunter --propupd  # spustit po aktualizacích (jinak falešně pozitivní výsledky)
rkhunter -c    # provede prověření systému
rkhunter --update  # aktualizace
rm     # maže soubory
rm -r folderName  # smaže neprázdný adresář
rmdir   # maže adresáře
sass --watch a.scss:a.css --style compressed
scp -rC franta@192.168.1.103:/home/franta/fotky ./fotky #kopírování souborů ze vzdálené mašiny (-r rekurzivní, tj. včetně podadresářů, -C zapíná kompresi při přenosu)
service apache2 restart
service dovecot restart
service fail2ban restart
service postfix restart
service pure-ftpd-mysql restart
service ssh restart
sleep 8h && vlc alarm.mp3  # jednoduchý budík
split -n 4 xxx.mkv  # rozdělí soubor xxx.mkv na 2 menší (viz. příkaz cat)
ssh uzivatel@nekde.dalelo.tld  # vzdálené přihlášení
ssh-keygen -lf ~/.ssh/id_rsa.pub  # zjištění otisku (fingerprint) veřejného klíče
# dále dostupné
ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub  # md5 fingerprint
ssh-keygen -E sha1 -lf ~/.ssh/id_rsa.pub  # sha1 fingerprint
ssh-keygen -f "/home/user/.ssh/known_hosts" -R 23.75.345.200  # remove key
ssh-keygen -t rsa -C "$your_email"  # vytvoří pár klíčů typu rsa
sudo apt-cache search php7-*  # vyhledání dostupných modulů pro PHP 7
sudo nano +166,23 /etc/apache2/apache2.conf -c  # AllowOverride All - zapnutí rewrite na Apache2
sudo rm -r /path/to/folderName  ## smaže folderName s právy roota včetně obsahu
sudo su
sudo swapon -s  # Display swap usage summary by device. (viz free)
systemctl restart apache2
systemctl status apache2.service
systemctl status mariadb.service
tail /var/log/apache2/other_vhosts_access.log
tar -cjf archiv.tar.bz2 /cesta_co_archivovat/*   # archivace s komprimací bzip2
tar -xjf archiv.tar.bz2                       # extrahování tar s bzip2
tasksel    # základní výběr balíčků
top
touch        # vytvoří soubor (change file timestamps)
touch /forcefsck  # vynutí jednorázovou kontrolu disku po restartu
tune2fs -c 1 /dev/sda1      # nastaví kontrolu disku po každém restartu
ufw disable  # zastavení firewallu
ufw enable  # zapnutí firewallu
ufw status verbose  # výpis pravidel
uname -a     # výpis systémových informací
uname -r     # výpis verze aktuálního linuxového jádra
update.sh
users  # výpis přihlášených uživatelů
Souhlasím a Zavřít K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti bychom chtěli využít soubory cookie. Informace o tom, jak náš web budete používat či sdílet se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje budou moci zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby. Zobrazit podrobnosti