Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Nowe ciekawe polecenia linuksowej powłoki (3)

Autor: Piotr Karpiuk o piątek 17. Wrzesień 2010

Pełna lista poleceń w Księdze Czarów.

comm -3 a.txt b.txt
wypisuje zmerge'owaną i posortowaną wierszami zawartość obu plików z pominięciem tych wierszy które występują w obydwu plikach; pliki muszą być posortowane wierszami
recode ..HTML < page.txt > page.html
konwertuje plik tekstowy do formatu HTML (znaki poza ASCII zostaną zakodowane jako encje)
whois www.example.com
sprawdza domenę w bazie Whois (właściciel domeny i jego dane teleadresowe)
strace -c ls >/dev/null
wywołania systemowe wywołane i otrzymane przez proces
strace -f -e open ls >/dev/null
wywołania biblioteczne wykonane przez proces
chsh
pozwala zmienić domyślną powłokę dla bieżącego konta; chsh --list-shells zwraca listę dostępnych powłok
xmlwf file.xml
czy plik XML jest poprawny (ang. well formed)
wtf imho
wyjaśnia (rozwija) wskazany akronim, spotkany np. w rozmowie IRCa lub na grupie dyskusyjnej
eject
wysuwa CD-ROM
mpstat -P ALL
statystyki rdzeni procesora
setleds -D +caps
włącza diodę CapsLock na klawiaturze
export CDPATH=.:..:../..:~/:~/katalog_dowiazan
Zmienna $CDPATH przechowuje listę rozdzielanych znakami dwukropka nazw katalogów, które są przeszukiwane przez wbudowane polecenie cd. Pełni ona taką samą funkcję dla instrukcji cd, jak zmienna $PATH dla uruchamianych skryptów. W przykładzie często używane nazwy katalogów w wartości zmiennej; katalog_dowiązań oznacza katalog przechowujący jedynie dowiązania symboliczne do innych często wykonywanych katalogów

cd
przejście do katalogu domowego
cd ~piotrek
przechodzi do katalogu domowego użytkownika piotrek
cd –
przejście do poprzedniego katalogu (sprzed poprzedniego wykonania cd)
pushd nowy_katalog
zapisanie dotychczasowego katalogu na stosie i przejście do nowego katalogu
dirs -v
wyświetla aktualny stos katalogów
pushd +2
przeniesienie na szczyt stosu wpisu o numerze 2 i jednoczesna zmiana bieżącego katalogu na odpowiadający temu wpisowi
!-4
powtórz czwarte polecenie od końca
!string
powtórz najświeższe polecenie rozpoczynające się łańcuchem string
!?string?
powtórz najświeższe polecenie zawierające (gdziekolwiek) łańcuch string
^napis1^napis2^
powtórz ostatnie polecenie z podmienionym napis1 na napis2
!20:p
tylko wyświetla polecenie o nrze 20, bez wykonywania go
history -c
czyści całą historię
shopt -s histappend
wymusza dopisywanie historii użytych poleceń na końcu pliku historii przy kończeniu pracy interaktywnej sesji Basha
export HISTTIMEFORMAT='%Y-%m-%d_%H:%M:%S '
(od Basha 3.0) powoduje że wraz z poleceniem w historii będzie pamiętany (i zapisywany do pliku historii) czas jego wykonania; polecenie history wyświetli czas wydania każdego polecenia w podanym formacie
{ pwd; ls; cd ../gdzies; pwd; ls; } > /tmp/wszystko.txt
Nawiasy klamrowe muszą być otoczone znakami spacji, a na końcu ostatniego grupowanego polecenia musi być średnik. Opcjonalnie można wykorzystać znaki nawiasu okrągłego, nakazując interpreterowi wykonanie poleceń w podpowłoce.
echo opcja $OPTSTR >&5
wypisanie wyniku na 5ty deskryptor
skrypt 3>&1 1>&2 2>&3-
zamienia deskryptory 1 i 2 przy użyciu pomocniczego deskryptora 3 (usuwanego potem)
skrypt 3>&1 1>dziennik.stdout 2>&3- | tee -a dziennik.stderr
zamienia stderr i stdout tak aby można było kierować dane ze strumienia stdout do pliku dziennika, a informacje ze strumienia stderr zarówno na ekran jak i do pliku
diff <(ls /etc/rc2.d) <(ls /etc/rc3.d)
przykład na wstawienie wyników poleceń tam gdzie program oczekuje nazw plików; sprawdź z ciekawości wynik polecenia echo <(/bin/true)
type identyfikator
określa czy identyfikator jest poleceniem wbudowanym, funkcją, aliasem, czy zewnętrznym programem; pokazuje również czy polecenie jest zhaszowane (bash najpierw sięga do hasza, a dopiero w następnej kolejności szuka w katalogach określonych w zmiennej PATH)
builtin echo
uruchamia polecenie wbudowane (bez względu na to czy istnieje funkcja, alias lub polecenie zewnętrzne o tej samej nazwie)
command echo
uruchamia polecenie zewnętrzne ignorując aliasy i funkcje o tej samej nazwie
echo
uruchamia na pewno nie alias
shopt -s dirspell
tabulacja przy wprowadzaniu ścieżki do katalogu próbuje poprawiać pisownię katalogu jeśli użytkownik zrobił literówkę
shopt -q -s cdspell
automatyczna korekta prostych błędów w użyciu polecenia cd
shopt -s nocaseglob
podczas podmiany wartości ścieżek dostępu ignorowana jest wielkość liter
shopt -s globstar
od tej pory ** oznacza pełną listę plików i ścieżek poniżej bieżącego katalogu (począwszy od Bash 4)
set -e
kończy pracę powłoki po zwróceniu przez jakiekolwiek zwykłe polecenie niezerowego kodu zakończenia
set -o vi
edycja poleceń w trybie Vi (zamiast domyślnego trybu Emacs)
set +h
powoduje że polecenia shella nie będą haszowane
set -u
powoduje traktowanie odwołań do nieistniejących zmiennych jako błąd
set -v
powoduje wypisywanie poleceń na stdout w miarę ich wykonywania
unalias -a
usuwa wszystkie aliasy (nawet jeśli jakiś chitrusek zrobił alias dla polecenia unalias)
hash -r
usuwa wszystkie wpisy w tablicy odwzorowań plików wykonywalnych (aby przyspieszyć kolejne wywołania poleceń, powłoka zapamiętuje położenia plików wykonywalnych najczęściej wykonywanych instrukcji; jeden ze sposobów oszukania użytkowników polega na zatruciu tablicy)
ulimit -H -c 0 --
uniemożliwia tworzenie plików core'a (w których mogą być np. hasła)
stty/reset/tset
przywraca poprawne ustawienia terminala (po np. próbie wyświetlenia pliku binarnego); reset i tset mogą być zbyt drastyczne, zwykle stty działa poprawnie
chsh /bin/bash
powoduje że domyślną powłoką na bieżącym koncie UNIXowym będzie Bash; lista dopuszczalnych powłok jest podana w pliku /etc/shells
getopts
polecenie wbudowane shella do użycia przez skrypty do parsowania parametrów wywołania skryptu
mkdir -p ~/misio/pysio/{old,new,dist,bugs}
tworzy od razu wiele katalogów, opcja -p powoduje tworzenie katalogów misio i pysio jeśli jeszcze nie istnieją
getconf -a
wyświetla wartości różnych ograniczeń, np. max. długość polecenia w wierszu wprowadzania (ARG_MAX), max. długość loginu (LOGIN_NAME_MAX), itp.
find katalog -name '*z*' -print0 | xargs -0 program
rozwiązanie problemu ograniczenia długości wiersza wprowadzania; poszczególne argumenty będą rozdzielone znakiem NULL (nie może występować w nazwie pliku), polecenie program będzie wykonane raz lub więcej razy w zależności od ilości parametrów wygenerowanych przez find
logger -p local0.notice „moj komunikat”
pozwala zalogować komunikat do logu systemowego
nc
program NetCat pozwala logować komunikaty przez sieć
(cat tresc_wiadomosci; uuencode /plik_zalacznika nazwa_zalacznika) | mail -s „Temat” odbiorca1@host.pl odbiorca2@host.pl
wysyła maila z treścią i załącznikiem (działanie zależne dość mocno od konfiguracji)
date -d '+4 days' '+%a %Y-%m-%d %H:%M:%S %z'
wyświetla wskazaną datę w podanym formacie
nohup skrypt &
demonizowanie skryptu tak aby działał po wylogowaniu się użytkownika (patrz też screen)
source skrypt
wykonuje w tej samej powłoce polecenia zawarte we wskazanym skrypcie (zwykłe wywołanie skryptu uruchomiłoby go w podpowłoce)
time polecenie
wykonuje polecenie i dodatkowo wypisuje informacje o czasie jego wykonania
ulimit
pozwala odczytywać i ustawiać ograniczenia dla zasobów dostępnych dla procesów uruchamianych z Basha (np. max. rozmiar stosu, max. ilość czasu procesora, wątków, otwartych plików itp.); twardy limit po ustawieniu może być modyfikowany wyłącznie przez administratora; limit miękki może być co najwyżej tak wysoki jak twardy limit
Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

1 Komentarz do “Nowe ciekawe polecenia linuksowej powłoki (3)”

  1. moja stronka napisał(a):

    Witam, czy jest opcja zapisania się do newslettera?

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>