Linux Debian – przydatne komendy w poznawaniu systemu

type -a

Polecenie type z opcją -a (dzięki tej opcji pokazane zostaną wszystkie znaczenia komendy, a nie tylko jedno) wskazuje czym jest jakieś polecenie w danym shellu. Najlepiej pokazać to na przykładzie.

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

Widać więc, że wydając komendę ls nie wywołujemy bezpośrednio programu ls, a używamy aliasu dla polecenia ls --color=auto, ponieważ alias jest przed plikiem /bin/ls. To dlatego nazwy plików i katalogów mają różne kolory w konsoli. Jeśli ktoś chce wywołać tylko samo ls (bez kolorów) musi w tym wypadku użyć pełnej ścieżki, czyli /bin/ls, albo zmienić swoje aliasy.

$ type -a type
type is a shell builtin

Czyli samo polecenie type jest wbudowanym poleceniem shella (basha) i może nie być dostępne, gdy używa się innego shella.

$ type -a cp
cp is /bin/cp

Używane do kopiowania plików polecenie cp jest plikiem, znajdującym się w katalogu /bin. Czyli jest jednym z kluczowych programów, ponieważ katalog /bin (i podobny /sbin) służy zwyczajowo do przechowywania najważniejszych programów dystrybucji Linuksa.

dpkg -S

Tym poleceniem można sprawdzić do jakiego pakietu należy dany plik.

$ dpkg -S /bin/cp
coreutils: /bin/cp

Program cp jest dostarczany w pakiecie coreutils.

dpkg -L

Polecenie to wyświetla listę plików należących do danego pakietu. Na przykład

$ dpkg -L coreutils

wyświetli długą listę plików, ale można ją skrócić tylko do tych, należących do katalogów z plikami wykonywalnymi (biblioteki i pliki zasobów czasami mogą nas nie obchodzić):

$ dpkg -L coreutils |grep bin/

Powinniśmy tu otrzymać listę plików w katalogach /bin, /sbin, /usr/bin i /usr/sbin.

echo $PATH

Wyświetla katalogi (oddzielone dwukropkiem) w których szukane są programy gdy wpisze się nazwę programu bez całej ścieżki do niego.

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Polecenie może pokazać inne katalogi, w zależniości od usera i shella. Na przykład gdy polecenie wpiszę jako root

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

mam dodatkowo katalogi typu sbin, a nie mam games. Programy w katalogach sbin są przeznaczone dla roota, a granie w gry jako root nie jest dobrym pomysłem. Zwykły user może uruchomić programy z sbin, wpisując choćby /sbin/cfdisk, ale i tak nie będzie mógł ich normalnie używać z różnych innych powodów (prawa dostępu do plików w /dev czy innych katalogów).

 aptitude show

Wyświetla informacje o pakiecie, m.in. to czy jest zainstalowany, jaka jest jego wersja, jakie ma zależności i konflikty, ile zajmują pliki po rozpakowaniu. Jest też krótki opis czym dany pakiet w ogóle jest.

$ aptitude show coreutils 
Package: coreutils                       
Essential: yes
State: installed
Automatically installed: no
Multi-Arch: foreign
Version: 8.21-1.2
Priority: required
Section: utils
Maintainer: Michael Stone <mstone@debian.org>
Architecture: amd64
Uncompressed Size: 13.9 M
PreDepends: libacl1 (>= 2.2.51-8), libattr1 (>= 1:2.4.46-8), libc6 (>= 2.17), libselinux1 (>=
            1.32)
Conflicts: timeout
Replaces: mktemp, timeout
Description: GNU core utilities
 This package contains the basic file, shell and text manipulation utilities which are expected to
 exist on every operating system. 
 
 Specifically, this package includes: arch base64 basename cat chcon chgrp chmod chown chroot
 cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false
 flock fmt fold groups head hostid id install join link ln logname ls md5sum mkdir mkfifo mknod
 mktemp mv nice nl nohup nproc od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
 runcon sha*sum seq shred sleep sort split stat stty sum sync tac tail tee test timeout touch tr
 true truncate tsort tty uname unexpand uniq unlink users vdir wc who whoami yes
Homepage: http://gnu.org/software/coreutils

aptitude -s

Opcja -s w komendach programu aptitude sprawia, że instalacja albo usunięcie programu będzie tylko symulowane. Stosuję to, gdy nie chce mi się dowiadywać innymi sposobami co zostanie automatycznie doinstalowane, usunięte i jakie może to powodować konflikty i zapytania. Nie wymaga logowania się jako root.

Przykładowe komendy:

$ aptitude -s install gnome
$ aptitude -s purge coreutils

 

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s