linuxtero

Linuxtero

Okruhy příkazů, preferované aplikace a odkazy v jednom

Pokud víš, uprav a vylepši

Do každého skriptu přidávejte cestu k interpretu - nazývá se shebang\



Každý skript by měl nakonci vracet nějakou hodnotu, defaultně:\

exit 0

Cykly

for (( a=0 ; $a<8 ; a=$a+1 ))
do
  echo $a
done
for file in *.sh; do
  # Název adresáře může být i skripty.sh!
  if [ -f "$file" ]; then
    echo $file
  fi
done

i = 0
for i in 1 2 3 4 5 6 7 8 9 10; do
  echo $i
done
$i = 0
while [ "$i" -ne 100 ]; do
  # Konstrukci $(()) zavedl shell ksh a je rychlejší než příkaz expr
  i=$((i + 1))
  echo $i
done
$i = 0
until [ "$i" -eq 100 ]; do
  i=$((i + 1))
  echo $i
done

Funkce

### Může být v rozsahu (0-255), návarová hodnota 266 je rovna 0, 267=1, atd...
function ciselna_navratova_hodnota() {
 return $1
}

ciselna_navratova_hodnota 276
hodnota=$?
echo $hodnota
### Funkce neumí vracet řetezce, je nutno řešit přes globální proměnné
function vrat_retezec() {
 retezec=$1
}

vrat_retezec ahoj
echo $retezec

Příklady

Skript vygeneruje číselný řetězec, počet čísel se zadává argumentem. bash generator.sh 12

### generator.sh ###
function random_number() {
  NUMBER=$[ ( $RANDOM % 9 ) ]
  return $NUMBER
}

function generate_number() {
  for (( a=0 ; $a<$1 ; a=$a+1 ))
  do
    random_number
    CISLO="$CISLO$?"
  done
}

generate_number $1
echo "$CISLO"

Jak vytvořit v QT Program Co instalovat:

apt-get install qt4-designer qt4-doc

Jak složit program v QT4 do „spustitelného“ tvaru:\ 1) V QT4 designeru vytvořit formulář (jakýkoliv)\ 2) Pojmenovat a uložit formulář „formular.ui“\ 3) V terminálu přejít do složky se souborem „formular.ui“\ 4) Vytvořit soubor, kde bude hlavní vlákno. V souboru je důležité upravit inkludování hlavickovy soubor formuláře, vzniklého při budoucí kompilaci, ve spravnem tvaru „ui_formular.h“

gedit main.cpp
#include "ui_formular.h"
int main(int argv, char* argc[])
{
    QApplication app(argv, argc);
    CMainDlg* dlg = new CMainDlg;
    dlg->setupUi();
    dlg ->show();
    return app.exec();
}

5) Vytvoříme projekt, vytvoříme makefile a zkompilujeme

qmake -project
qmake -makefile
make

Output:

/usr/bin/uic-qt4 formular.ui -o ui_formular.h
g++ -c -pipe -fpermissive -g -Wall -W -D_REENTRANT -DQT_SHARED -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp
g++ -Wl,--no-undefined -o Program main.o    -L/usr/lib -lQtGui -lQtCore -lpthread

6) Spustíme

./Program

Win) Kompilace qmake -project qmake mingw32-make

Konzoloví klienti

  • Finch - konzolový klient Pidgin

Posílat SMS přes Jabber (njs.netlab.cz „SMS transport“) na GSM telefon, přidat kontakt ve tvaru:

+420_cislo_@sms.netlab.cz

Pidgin: Nový řádek = Shift + Enter

Příkaz/kombinace příkazůSpecifický popis P/kp.Odkazy na howto, návody
sudoPoužívá se k povýšení práva na roota pro konzolové aplikace.
gksudoPoužívá se k povýšení práva na roota pro grafické aplikace (wireshark).
passwd karlaNastaví heslo pro karla
aptitude removeOdstraní balík
aptitude purgeOdstraní balík i s konfigurákama (neodstraní konfiguráky v home adresáři)
aptitude clean
aptitude update
aptitude install dnstracer
aptitude dist-upgradeUpgrade distra (Dapper → Edgy)
apt-get autoremove
apt-get checkZjistí zda nejsou poškozené závislosti
apt-get cleanOdstraní archivní stáhnuté soubory
apt-get autocleanOdstraní staré archivní stáhnuté soubory
apt-get autoremoveOdstraní přebytečné balíky (kontroluje závislosti)
apt-get autoremove balíkOdstraní balík a jeho nepotřebné závislosti
apt-get updateAktualizace databáze dostupných balíčků
apt-get upgradeProvede upgrade balíčků
apt-get remove dnstracerOdstrané balík
apt-get install –reinstall dnstracerReinstaluje balík
apt-get installInstaluje balík včetně závislostí
apt-get -f installInstaluje násilím balík
apt-cache showpkg dnstracer
apt-cache search balikHledá zadaný balík.
apt-cache search balik –names-onlyHledá zadaný balík pouze podle názvu.
apt-cache show balikZobrazí informace o zadaném balíku.
update-manager -cVypíše novější verzi, pro upgrade
dpkg -iInstaluje samotný balík bez závislostí
dpkg -r dnstracer
dpkg-reconfigure xserver-xorgNastavit xorg.conf na default
Xorg -configure -config ~/Plocha/testXorg.confNejdříve je nutné ukončit Xka
dpkg –get-selectionsSeznam aktuálně nainstalovaných balíčků
scp user@ip:/remote/file.txt /local/file.txtKopírovat soubor ze vzdáleného serveru ssh přes terminál
scp /local/file.txt user@ip:/remote/file.txtKopírovat soubor do vzdáleného serveru ssh přes terminál
ssh user@ip 'bash -s' < local_script.shSpustit na vzdáleném ssh serveru lokální skript

Nainstalovat program

apt-get install bootchart

Po restartu mrknout do /var/log/bootchart/

Problémy Dlouhé bootování kvůli usplash:

apt-get --purge remove usplash

Dlouhé bootování při odpojeném internetu:\ Uprav soubor /etc/hostname\ pokud tam není řádka 127.0.0.1 název_tvého_stroje\ tak ji tam dopln, nazev tve masiny zjistis z prikazu uname -n

service lightdm restartRestart grafického prostředí
service apache2 restartRestart webového serveru apache

smb4k

curlftpfs -o allow_other ftp://login:password@site.cz /mnt/site.cz/

write, talk, mesg, wall - komunikace uživatelů přes terminál

Ctrl + RHledání příkazu v historii (velmi užitečné)
export HISTSIZE=10000Nastavení délky historie na 10000 řádek (po překročení platí pravidlo FIFO)
lynxtextový www prohlížeč
linkstextový www prohlížeč, může být spuštěn v grafickém režimu pro zobrazování obrázků
centericqIM komunikátor
nano, vimtextové editory
smbcsamba commander
fbgrabprintscreen i v terminálu
bittornadobittorent klient
screendokáže spustit programy a nechá je spuštěné i po odhlášeníOdkaz
screen -lsVypíše spuštěné terminály
screen -r 12735.pts-0.ubuntu-srvPřipojí se ke spuštěnému terminálu
Ctrl + A; DNechá puštěné programy na pozadí a přepne se zpět do terminálu

Posílání emailu přes program mailx (nedodelano):

echo "Dobry den, ..." | mailx dd@email.cz dd@centrum.cz dd@gmail.com
cat zprava.txt |mailx -s "predmet" -a X-Mailer: "mailx (ver 0.xx)" dd@email.cz
/etc/mailname

Několik způsobů jak se přihlásit jako root

su
su root
sudo su
sudo -i
sudo -s
sudo bash

Stažení internetových stránek pro offline prohlížení:

wget -r -k -p http://www.stranky.com/index.php
# -r rekurzivně (včetně odkazů)
# -k odkazy budou nastaveny na soubory stažené na disku (odkaz není směrovanej na inet)
# -p stažení všech věcí (obrázky, ...)
cp sites/default/default.settings.php sites/default/settings.php
chmod go+w sites/default/settings.php
mkdir sites/default/files
chmod go+w sites/default/files/

Prestashop

    *  PHP settings (modify via your PHP admin software):
    * PHP 5.0 or later is installed
    * Allowed to upload files
    * Allowed to create new files and folders
    * GD Library is installed
    * MySQL support is on
    * Write permissions on files and folders:
    * /config
    * /tools/smarty/compile
    * /sitemap.xml
    * Write permissions on folders and subfolders/recursively:
    * /img
    * /mails
    * /modules
    * /themes/prestashop/lang
    * /translations
    * /upload
    * /download
apt-get install php5-gd
/etc/init.d/apache2 restart
chmod go+w -R img/ mails/ modules/ themes/prestashop/lang/ translations/
chmod 777 -R config/ upload/ download/ tools/smarty/compile/ sitemap.xml
Tucan managerOkení manažer - ten jediný mě správně funguje
Rapidshare DownloadKonzolový klient
Udělátkodoplněk do Firefoxu

1) Stáhnout fonty (soubory *.tar.bz2) z ftp://ftp.gimp.org/pub/gimp/fonts/

2) Řídit se podle návodu http://maestric.com/doc/convert_pfb_pfm_font_to_otf

Instalovat fontforge

appt-get install fontforge

V adresáři s fonty (kde jsou soubory *.otf) vytvořit a editovat soubor: pfb2otf

Open($1);
Reencode("unicode");
Generate($fontname+".otf");
Quit(0);

Vytvořit a editovat soubor: convert

PATH=/usr/local/bin:$PATH
FONTFORGE_LANGUAGE=ff
export PATH FONTFORGE_LANGUAGE

if (test -f $1); then ./pfb2otf $1; fi

Nastavit spustitelný příznak souborů pfb2otf convert

chmod 755 pfb2otf convert

Začít konvertovat soubory *.pfb na *.otf

for i in *.[pP][fF][bB]; do ./convert $i; done

Zkopírovat soubory *.otf do adresáře ~/.fonts

mkdir ~/.fonts
cp *.otf ~/.fonts/

Vytvořit informační cache fontů?

sudo fc-cache -f

Audacious

mplayer -dumpaudio soubor.avi -dumpfile soubor.wavExtrahuje audio z filmu

Pokud nejde Amarok spustit a píše následující chyby:

Configuration file "/home/user/.kde/share/config/knotifyrc" not writable.
Please contact your system administrator.

Will not save configuration.
Configuration file "/home/user/.kde/share/config/kdeglobals" not writable.
Please contact your system administrator.

V terminálu to lze opravit takto:

sudo chown -R `whoami` ~/.kde
mkisofs -dvd-video -o movie.iso /path/to/dvd/directory/Vytvoří DVD video ISO z uloženého DVDfilmu na disku (cestu směrujeme do adresáře kde je VIDEO_TS)
Mplayer, VLCNejpoužívanější programy pro přehrávání videa
mplayer -vo helpVypíše drivery výstupu videa
mplayer -vo glPoužije pro přehrání videa driver gl
mplayer -subcp cp1250 -sub tituly.sub film.aviNastaví typ titulku na cp1250 (trvale nastaveni v souboru mplayer.conf → subcp=cp1250)
echo „vf=expand=0:-100:0:0“ » ~/.mplayer/configTitulky do černého pruhu
vlc -vvv test.mpg –sout rtp:192.168.1.10:8080Stream po sítiOdkaz
mencoder -ovc xvid -xvidencopts bitrate=500:pass=2 -oac mp3lame -lameopts mode=1:q=3 soubor.rm -o soubor.aviPřevod stream formátu rm na avi
mencoder -oac mp3lame -ovc lavc -vf scale=0:0:0:0:0:0:qpal vstup.mov -o vystup.aviKonverze mov na avi:
mencoder test.mpeg -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -o test.flvKonverze avi na flv
mencoder input.mkv -ovc lavc -oac mp3lame -o output.aviKonverze mkv na avi
flvtool2 -U test.flvPro posouvání videa
mencoder tv: -tv driver=v4l2:device=/dev/video0:width=640:height=480 -ovc lavc -nosound -o webcam-filename.avi|Nahrání videa z integrované kamery v notebooku bez zvuku(Lenovo S10e)| |mencoder tv: -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o filename.aviNahrání videa z integrované kamery v notebooku se zvukem - zatim nefunguje(Lenovo S10e)
ffmpeg -i OUTPUT.avi -vcodec libx264 libx264.aviKomprimace videa do kodeku libx264
ffmpeg -i input.mts -vcodec libxvid -b 18000k -acodec libmp3lame -ac 2 -ab 320k -deinterlace -s 1440×1080 output.aviPřevede MTS do avi, nutno zjistit rozlišení videa (ffmpeg -i input.mts) a zda video používá „interlaced frames“ > nutno „deinterlace“. Odkaz na zdroj
avimerge -o OUTPUT.avi -i INPUT1.avi INPUT2.aviSpojování Videa
mencoder -oac copy -ovc copy -o OUTPUT.wmv INPUT1.wmv INPUT2.wmvSpojování Videa

DocumentRoot /var/www/ubuntu document root </VirtualHost> <VirtualHost *:80> ServerName www.domena2.com DocumentRoot /var/www/domena2.cz document root </VirtualHost> </code>

Zabezpečení

nano /etc/apache2/apache2.confÚprava konfiguračního souboru
ServerSignature OffVypne podpis serveru
ServerTokens ProdMinimální informace o serveru

Zakázání zobrazení obsahu adresáře „Index of“

nano /etc/apache2/sites-available/default
...
        <Directory /var/www/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
...

Nezobrazí chybové hlášky „potenciální útočník neví na čem je“

nano /etc/php5/apache2/php.ini
...
        display_errors = Off
...

Restartujem službu

/etc/init.d/apache2 reload

Jak zapnout Clean Url (například pro Drupal)?

a2enmod rewrite
/etc/init.d/apache2 restart

Zkontrolujeme zda se zapnul přes příkaz apache2ctl -M

 ...
 rewrite_module (shared)
 ...

Editujeme konfigurační soubor Apache2:

nano /etc/apache2/apache2.conf

A vložíme na konec souboru text (upravime cestu!):

<Directory /var/www/domena.cz>
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

Chyba apache2:

Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

pak upravte soubor

gedit /etc/apache2/apache2.conf

a přidejte na konec souboru

ServerName localhost

Pokud Apache2 odkazuje na špatný adresář, musíte zeditovat soubor

gedit /usr/share/apache2/default

a soubory v adresáři /usr/share/apache2/allowed-sites/

0) Edituj repozitář /etc/apt/sources.list a přidej do něj text (změň název distribuce)

deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu karmic main

0) Přidej klíč

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51BB8E83EBA7BD49

0) Updatni a aktualizuj zdroje

apt-get -y update && apt-get -y upgrade

0) Nainstalujeme potřebné balíky, mysql-server bude vyžadovat heslo pro uživatele root, phpmyadmin bude vyžadovat vytvoření databáze přes dbconfig-common (zvolme ano):

apt-get install cherokee php5-cgi php5-mysql mysql-server mysql-client

0) V terminálu zadat:

cherokee-admin -b

0) Ve webovém prohlížeči se přihlásit na administrační rozhraní Cherokee (přihlašovací údaje vemte z terminálu - předchozí krok):

http://localhost:9090/

0) Povolíme php překlad: Virtual servers → default → záložka Behaviour → PHP\ V levo na stránce klikneme na tlačítko Save

0) Vytvoříme testovací soubor a ve webovém prohlížeči otestujeme zda funguje php překlad:

echo "<? phpinfo(); ?>" > /var/www/test.php

http://localhost/test.php

Návod není dokončen

ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin
chmod 0755 -R /usr/share/phpmyadmin/
chown -R www-data:www-data /var/www/

Jak rozběhat clean url pro drupal? http://svn.cherokee-project.com/browser/cherokee/trunk/doc/cookbook_drupal.txt?rev=2879\ http://lists.octality.com/pipermail/cherokee-dev/2009-August/002979.html\ http://www.cherokee-project.com/doc/modules_handlers_redir.html\ http://groups.google.com/group/cherokee-http/browse_thread/thread/e70cd846abdb1e19\ http://docs.huihoo.com/cherokee/0.98/cookbook_drupal.html\

Udělam upload (povolím ostatním uivatelům čtení/zápis), ale když tam něco nahraju, nelze to smazat → vlastník (nouser) skupina (nogroup)\ Řešení (přidat sebe „uživatele“ do skupiny nogroup) (edit.: asi nefunguje)\

adduser `whoami` nogroup

1) Nainstaluj balíček:

apt-get install dhcp3-server

2) Uprav konfigurační soubor /etc/default/dhcp3-server

INTERFACES="eth0"   ### Zde napiš pro na jakém zařízení bude rozdávat DHCP server IP adresy

3) Uprav konfigurační soubor /etc/dhcp3/dhcpd.conf, můžeš všechno vymazat a zkopírovat a upravit toto:

ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200; ### Rozsah přidělovaných IP adres
option domain-name-servers 192.168.1.1;
option domain-name "domain.name";
option routers 192.168.2.1; ### Zde má být IP tvojí síťovky která rozdává IP adresy (v mém případě eth0)
option broadcast-address 192.168.2.255;
option nntp-server 192.168.2.1;  ### pokud nemáš časový server (NTP) tuto řádku můžeš smazat
default-lease-time 600;
max-lease-time 7200;
}

# Nastaví statické IP adresy pro MAC adresu síťové karty uživatele
host fix0 # DuckD
{
        hardware ethernet 00:11:22:33:44:20;
        fixed-address 192.168.2.64;
}

host fix1 # Ondra
{
        hardware ethernet 00:11:75:33:44:c2;
        fixed-address 192.168.2.91;
}

i) Nezapomeň zadat do ip adresu síťového zařízení eth0

ip addr add 192.168.1.1/24 brd + dev eth0

jinak nastane:

No subnet declaration for eth0 (0.0.0.0).
** Ignoring requests on eth0.  If this is not what
    you want, please write a subnet declaration
    in your dhcpd.conf file for the network segment
    to which interface eth0 is attached. **

|crontab -e|Editace crontabu|

crontab -lVýpis crontabu
ps -ef grep crondOvěření zda běží CRON
/etc/rc.d/init.d/crond restartRestartovat službu
minutyhodinyden v měsíciměsícden v týdnuakce
1,2,3****echo „Každá 1,2,3minuta
*/2****echo „Každá sudá minuta
*10 echo „Každá minuta od 10 hodiny

Při editaci crontabu musí být ke konci prázdný řádek (za posledním záznamem od entrovat)! Jinak Cron nebude fungovat!

Package list Jak z Ubuntu udělat Ubuntustudio:

echo deb http://archive.ubuntustudio.org/ubuntustudio `lsb_release -c | awk '{print $2}'` main >> /tmp/sources.list
wget -q http://archive.ubuntustudio.org/ubuntustudio.gpg -O- | sudo apt-key add - && sudo apt-get update
apt-get install ubuntustudio-desktop ubuntustudio-audio ubuntustudio-audio-plugins ubuntustudio-graphics ubuntustudio-video linux-rt

Pro zvětšení plochy instalovat „Guest Extras“

set-uid a set-gid bitfunguje pouze na binárním souboru (nefunguje na skriptech)
set-uid bit: chmod u+s souborpřidá právo spuštění pro vlastníka souboru
set-gid bit: chmod g+s souborpřidá právo spuštění souboru pro skupinu
sticky bit: chmod o+t souborponechá soubor po doběhnutí v paměti pro rychlejší znovuspuštění
chmod 7777 souborMaximální oprávnění - první číslo popisuje set-Xid bit a sticky bit
socketje speciální soubor, přes který si dva lokálně běžící procesy vyměňují data
roura (pipe)speciální soubor používaný pro výměnu dat mezi procesy, ale na rozdíl od soketu je výměna jednosměrná

Notifikation area Pidgin (Jaunty) - vypnut odinstalováním pidgin-libnotify\

Trvalé povolení spuštění příkazu bez administrátorského práva (bez SUDO) [url=http://forum.ubuntu.cz/index.php?topic=13248.msg99039#msg99039]Odkaz[/url]

cp /etc/sudoers /etc/sudoers.backupzáloha nastavení
zjisti kde je umisten skript
bezpecna editace sudoers souboru
login_name ALL = NOPASSWD: /sbin/shutdowndoplnit login_name a cestu ke skriptu

příkaz je to samé jako $(příkaz)

Zaznamenat komunikaci terminálu:

script cmd_history

… příkazy …

exit
cat cmd_history

modprobe sk98lin

echo „brightness:4“ > /proc/acpi/toshiba/lcdpřidání brightnes na LCD
ls -l /dev/disk/by-uuid/dostane UID partitionu disku které lze zadat do fstabu
blkidzobrazí uuid disku
find ADRESAR_ODKUD_KOPIRUJES -type f -exec cp {} ADRESAR_KAM_KOPIRUJES \;Zkopíruje vše z adresáře a podadresářů do jednoho adresáře (nezachovává strukturu podadresářů)
ps auxvypíše seznam spuštěných procesů a jejich PID (podobně jako top)
echo $$zobrazení PID aktuálního shellu
echo „Ahoj“ &AND znamená že se spustí příkaz jako nový thread
var=$!do proměnné var se uloží PID předchozího spuštěného vlákna
echo $varvypíše se hodnota proměnné var
Ctrl+ZRučně pozastaví skript
fgOpět skript spustí
bgSkript pošle na pozadí
mknodVytvoří speciální soubor nebo pojmenovanou rouru
$ (tar xzf archiv.tgz ; echo $? > exit_code_pro_rozbaleni ) &Testuje zda se rozbaleni archivu provedlo korektně a návratovou hodnotu zapíše do souboru.
cp ~/.{.bashrc,.bash_history} /tmp/testKopíruje z uvedene cesty (domovska slozka ~/) vsechny soubory uvedené v závorce {} do /tmp/test
cat xorg.conf grep -Ev '#|;$'vypise xorg.conf bez komentaru a prazdnych radku
cat xorg.conf grep -E '[#;]'to same akorat opacnou metodou
cat xorg.conf sed -ne '/Section\ \“ServerLayout\“/,/EndSection/p'vypise sekci z xorg.conf
for x in ServerLayout Device; do cat xorg.conf sed -ne “/Section\ \„$x\“/,/EndSection/p„; donevypise nekolik sekci, v tomto pripade ServerLayout a Device !
cat test.txt tr ' ' '\n' sort uniq -cVypíše ze souboru jednotlivá slova abecedně a jejich počet (opakování)
find -name co_hledame -vvypíše cesty k nalezeným položkam
find /etc -name '*.txt' xargs grep -li textVyhledat všechny soubory co obsahují slovo text
locateVypíše soubory k nainstalovanému programu (rm -i locate realplayer)
/Hledání v manuálové stránce
Shift + NKlávesová zkratka pro hledání dalšího řetězce

  • Vytvořil: DuckD
  • Pomáhali: Kolegové z fóra :-) Díky!
  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)