Mały pomocnik.

17 lutego 2006, 22:38:41
Pomocnik spisany przez: Anatole Olczak ISBN=093573922x Tytuł: Bourne Shell Quick Reference Guide

# Wykonanie wielu komend w jednym ciągu

$ pwd ; ls tmp ; echo "Hello world"

# Uruchamianie find w tle

$ find . -name tmp.out -print &

# Łączenie wyjścia who z grep'em

$ who | grep fred

# Rozmawiaj z fredem jeśli jest zalogowany

$ { who | grep fred ;  } && talk fred

# Wyślij wynik ls do ls.out

$ ls > ls.out

# Dołącz wynik ls do ls.out

$ ls >> ls.out

# Wyślij zaporoszenie.txt do jasia, kasi, krzysia

$ mail jas kasia krzys < zaproszenie.txt

# Wyślij standartowy błąd xsend do stderr.out

$ xsend file 2>stderr.out

# Wyświetl nazwy plików zaczynających się na z

$ ls z*

# Wyświetl dwu-, trój- oraz czteroliterowe nazwy plików

$ ls ?? ??? ????

# Wyświetl nazwy plików zaczynające się na a, b lub c

$ ls [a-c]*

# Wyświetl nazwy plików, które nie kończą się na .c

$ ls *[!.c]

# Przyporządkuj zmiennej NU liczbę zalogowanych użytkowników

$ NU=`who | wc -l`

# Ustaw zmienną TOTAL do wartości sumy 4 + 3

$ TOTAL=`expr 4 + 3`

# Ustaw i wyeksportuj zmienną LBIN

$ LBIN=/usr/lbin; export LBIN

# Usuń zmienną LBIN

$ unset LBIN

# Ustaw zmienną SYS do nazwy komputera (jeśli nie ustawiona), wyświetl

$ echo ${SYS:=`uuname -l`}

# Wyświetl informację o błędzie jeśli zmiennaXBIN nie jest ustawiona

$ : ${XBIN:?}

# Wyświetl $HOME ustawione na /home/anatole

$ echo '$HOME ustawione na' $HOME

# Wyświetl wartość $TERM

$ echo $TERM

# Przywróć na pierwszy plan pracę numer 3, będącą w tle

$ fg %3

# Zatrzymaj pracę find

$ stop %find

# Wyświetl liczbę parametrów pozycyjnych

$ echo "There are $# positional parameters"

# Wyświetl wartość drugiego parametru pozycyjnego

$ echo $2

# Wyświetl wszystkie informacje dotyczące bieżących prac

$ jobs -l

# Zakończ pracę 5

$ kill %5

# Zwiększ zmienną X

$ X=`expr $X + 1`

# Ustaw zmienną X na 20 modulo 5

$ X=`expr 20 % 5`

# Ustaw tryb diagnostyczny

$ set -x

# Uruchom skrypt dbscript w trybie noexec

$ sh -n dbscript

# Sprawdzaj, czy masz nowe listy co 2 minuty

$ MAILCHECK=120; export MAILCHECK

# Ustaw podstawowy znak zachęty

$ PS1='Witaj!'; export PS1

# Sprawdź, czy zmienna VAR jest ustawiona na 0

$ [-z "$VAR"] && echo "VAR jest ustawiona na 0"

# Sprawdź, czy zmienna VAR jest ustawiona na ABC

$ ["$VAR" = ABC ]

# Sprawdź, czy plik xfile jest pusty

$ test ! -s xfile

# Sprawdź, czy tmp to katalog

$ [ -d tmp ]

# Sprawdź, czy plik file ma atrybuty odczytu i zapisu

$ test -r file -a -w file

# Wyświetl informację o błędzie, piknij w głośniczek

$ echo "Nieoczekiwany błąd!\007"

# Wyświetl informację na standardowym wyjściu błędu

$ echo "To idzie do stderr" >&2

# Wyświetl znak zachęty i czytaj odpowiedź do ODPOWIEDZ

$ echo "Wpisz odpowiedź: \c"; read ODPOWIEDZ

# Zrób funkcję md, która tworzy katalog i wchodzi do niego

$ md() { mkdir $1 && cd $1 ; pwd ; }

# Ustaw pułapkę tak, aby zignorować sygnały 2 i 3

$  trap "" 2 3

# Ustaw zmienną X na 1, ale w trybie tylko do odczytu

$ X=1 ; readonly X

# Ustaw zmienną VAR na 1, następnie wyeksportuj

$ VAR=1 ; export VAR

# Ustaw parametr pozycyjny na A B C

$ set A B C

# Ustaw limit tworzenia nowych plików do 1000 bloków

$ ulimit 1000

# Wyłącz zrzuty core

$ ulimit -c 0

# Dodaj zezwolenie zapisu grupy do maski tworzonego pliku

$ umask 013

# Wyświetl pierwsze oraz trzecie pola z pliku

$ awk '{print $1, $3}' plik

# Wyświetl siedem pierwszych znaków każdej linii z tplik

$ cut –c1–7 tplik

# Wyświetl pierwsze i trzecie pola z pliku /etc/passwd

$ cut –f1,3 –d":" /etc/passwd

# Wyświetl linie w imiona zaczynające się na A, B, C lub Z

$ egrep '[A–C,Z]*' imiona

# Wyświetl linie z dict zawierające czteroznakowe wyrazy

$ egrep '....' dict

# Wyświetl wpisy dla użytkowników używających powłoki Korn'a

$ grep ":/bin/ksh$' /etc/passwd

# Wyświetl liczbę linii w uplik zawierających unix; zignoruj wielkość liter

$ grep –c 'unix' uplik

# Wyświetl długości pierwszego pola z pliku

$ nawk'{TMP=length($1);print $TMP}' plik

# Wyświetl pierwsze 10 linii tpliku

$ nawk '{for (i=1; i<10; i++) \
     printf "%s\n", getline}' tplik

# Wyświetl zawartość bieżącego katalogu w trzech kolumnach

$ ls | paste d" " – – –

# Wyświetl plik ze wszystkimi wystąpieniami nie zamienionymi na tak

$ sed 's/nie/tak/g' plik

# Wyświetl tylko nazwę użytkownika

$ id | sed 's/).*//' | sed 's/.*(//'

# Wyświetl plik z liniami zawierającymi wymazany wyraz unix

$ sed '/unix/d' plik

# Wyświetl pierwsze 50 linii pliku

$ sed 75q plik

# Posortuj /etc/passwd na podstawie id grup.

$ sort -t":" -n +3 -4 /etc/passwd

# Zmień małe litery w pliku na duże

$ cat plik | tr a-z A-Z

# Wyświetl sąsiednie, powtórzone linie w pliku

$ uniq –d file

# Wyświetl liczbę znaków i słów w pliku

$ wc –cw plik

# Wyświetl liczbę plików .c w bieżącym katalogu

$ ls *.c | wc -l

Mam nadzieje, ze okaza sie przydatne.

Powerupgrade 0.2 released.

09 lutego 2006, 13:11:19
Niedługo otwieram Qbik BSD Labs, co będzie to będzie - ale nie o tym chciałem pisać. Anonsuje właśnie wydanie nowej wersji skryptu Powerupgrade, służącego do w pełni automagicznej aktualizacji systemu FreeBSD. Oczywiście dla tych 'mniej zaawansowanych użytkowników'. Skrypt niedługo będzie dostępny w 'laboratorium'.