{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Pomocnik początkujących i zapominalskich

Poniżej kilka komend, których znajomość pozwola napisać mały skrypt lub ułatwić pracę z powłoką.

Ogólnie, dla systemów Unix, nie tylko dla FreeBSD.

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 –l plik
# Wyświetl liczbę plików .c w bieżącym katalogu
     $ ls *.c | wc -l

Autor: 
Alex
Porozmawiaj o tym artykule na forum: 

quex, pon., 25/02/2008 - 01:30