Командная строка Linux для новичков
Spisu treści:
- Zmienne środowiskowe i zmienne powłokowe
- Lista zmiennych środowiskowych
- Ustawianie zmiennych środowiskowych
- Trwałe zmienne środowiskowe
- Wniosek
W systemach Linux i Unix zmienne środowiskowe to zestaw dynamicznych nazwanych wartości, przechowywanych w systemie, używanych przez aplikacje uruchomione w powłokach lub podpowłokach. Krótko mówiąc, zmienna środowiskowa to zmienna o nazwie i powiązanej wartości.
Zmienne środowiskowe pozwalają dostosować sposób działania systemu i zachowanie aplikacji w systemie. Na przykład zmienna środowiskowa może przechowywać informacje o domyślnym edytorze tekstu lub przeglądarce, ścieżce do plików wykonywalnych lub ustawieniach regionalnych systemu i układu klawiatury.
W tym przewodniku wyjaśnimy, jak czytać i ustawiać zmienne środowiskowe i powłoki.
Zmienne środowiskowe i zmienne powłokowe
Zmienne mają następujący format:
KEY=value KEY="Some other value" KEY=value1:value2
- W nazwach zmiennych rozróżniana jest wielkość liter. Zgodnie z konwencją zmienne środowiskowe powinny mieć nazwy WIELKIE SPRAWY. Przy przypisywaniu wielu wartości do zmiennej należy je rozdzielić dwukropkiem
:
znak. Wokół znaku równości=
nie ma spacji.
Zmienne można podzielić na dwie główne kategorie, zmienne środowiskowe i zmienne powłoki.
Zmienne środowiskowe to zmienne dostępne w całym systemie i dziedziczone przez wszystkie odrodzone procesy potomne i powłoki.
Zmienne powłoki to zmienne, które dotyczą tylko bieżącej instancji powłoki. Każda powłoka, taka jak
zsh
i
bash
, ma swój własny zestaw wewnętrznych zmiennych powłoki.
Dostępnych jest kilka poleceń, które pozwalają wyświetlić i ustawić zmienne środowiskowe w systemie Linux:
-
env
- Polecenie pozwala na uruchomienie innego programu w środowisku niestandardowym bez modyfikowania bieżącego. Jeśli zostanie użyty bez argumentu, wydrukuje listę bieżących zmiennych środowiskowych.printenv
- Polecenie drukuje wszystkie lub określone zmienne środowiskowe.set
- Komenda ustawia lub usuwa zmienne powłoki. Jeśli zostanie użyta bez argumentu, wydrukuje listę wszystkich zmiennych, w tym zmiennych środowiskowych i zmiennych powłoki oraz funkcji powłoki.unset
- polecenie usuwa powłoki i zmienne środowiskowe.export
- polecenie ustawia zmienne środowiskowe.
Lista zmiennych środowiskowych
Najczęściej używanym poleceniem do wyświetlania zmiennych środowiskowych jest
printenv
. Jeśli nazwa zmiennej jest przekazywana jako argument do polecenia, wyświetlana jest tylko wartość tej zmiennej. Jeśli nie podano żadnego argumentu,
printenv
drukuje listę wszystkich zmiennych środowiskowych, po jednej zmiennej w wierszu.
Na przykład, aby wyświetlić wartość zmiennej środowiskowej
HOME
, należy uruchomić:
printenv HOME
Wyjście wyświetli ścieżkę aktualnie zalogowanego użytkownika:
/home/linuxize
Możesz także przekazać więcej niż jeden argument do polecenia
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
Dane wyjściowe będą wyglądać mniej więcej tak:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv
Poniżej znajdują się niektóre z najczęstszych zmiennych środowiskowych:
-
USER
- Bieżący zalogowany użytkownik.HOME
- katalog domowy bieżącego użytkownika.EDITOR
- Domyślny edytor plików do użycia. Jest to edytor, który będzie używany, gdy wpiszeszedit
w swoim terminalu.SHELL
- ścieżka powłoki bieżącego użytkownika, na przykład bash lub zsh.LOGNAME
- nazwa bieżącego użytkownika.PATH
- Lista katalogów do przeszukania podczas wykonywania poleceń. Po uruchomieniu polecenia system przeszuka katalogi w tej kolejności i użyje pierwszego znalezionego pliku wykonywalnego.LANG
- aktualne ustawienia regionalne.TERM
- bieżąca emulacja terminala.MAIL
- Miejsce przechowywania poczty bieżącego użytkownika.
Polecenia
printenv
i
env
drukują tylko zmienne środowiskowe. Jeśli chcesz uzyskać listę wszystkich zmiennych, w tym środowiska, powłoki i zmiennych oraz funkcji powłoki, możesz użyć polecenia
set
:
set
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()
Polecenie wyświetli dużą listę wszystkich zmiennych, więc prawdopodobnie chcesz przesłać dane wyjściowe do polecenia
less
.
set | less
Możesz także użyć polecenia echo, aby wydrukować zmienną powłoki. Na przykład, aby wydrukować wartość zmiennej
BASH_VERSION
, uruchomiłbyś:
echo $BASH_VERSION
Ustawianie zmiennych środowiskowych
Aby lepiej zilustrować różnicę między zmiennymi powłoki i zmiennymi środowiska, zaczniemy od ustawienia zmiennych powłoki, a następnie przejdziemy do zmiennych środowiska.
Aby utworzyć nową zmienną powłoki o nazwie
MY_VAR
i wartościować
Linuxize
po prostu wpisz:
MY_VAR='Linuxize'
Możesz sprawdzić, czy zmienna jest ustawiona, używając
echo $MY_VAR
filtrowania danych wyjściowych polecenia set za pomocą grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Użyj komendy
printenv
aby sprawdzić, czy ta zmienna jest zmienną środowiskową:
printenv MY_VAR
Dane wyjściowe będą puste, co oznacza, że zmienna nie jest zmienną środowiskową.
Możesz także spróbować wydrukować zmienną w podpowłoce, a otrzymasz pusty wynik.
bash -c 'echo $MY_VAR'
Polecenie
export
służy do ustawiania zmiennych środowiskowych.
Aby utworzyć zmienną środowiskową, po prostu wyeksportuj zmienną powłoki jako zmienną środowiskową:
export MY_VAR
Możesz to sprawdzić, uruchamiając:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
Możesz także ustawić zmienne środowiskowe w jednym wierszu:
export MY_NEW_VAR="My New Var"
Zmienne środowiskowe utworzone w ten sposób są dostępne tylko w bieżącej sesji. Jeśli otworzysz nową powłokę lub wylogujesz się, wszystkie zmienne zostaną utracone.
Trwałe zmienne środowiskowe
Aby zmienne środowiskowe były trwałe, musisz zdefiniować te zmienne w plikach konfiguracyjnych bash. W większości dystrybucji Linuksa po rozpoczęciu nowej sesji zmienne środowiskowe są odczytywane z następujących plików:
-
/etc/environment
- użyj tego pliku, aby skonfigurować ogólnosystemowe zmienne środowiskowe. Zmienne w tym pliku są ustawione w następującym formacie:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- Zmienne ustawione w tym pliku są ładowane za każdym razem, gdy wprowadzana jest powłoka logowania bash. Podczas deklarowania zmiennych środowiskowych w tym pliku należy użyć poleceniaexport
:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
Pliki konfiguracyjne specyficzne dla powłoki użytkownika. Na przykład, jeśli używasz Bash, możesz zadeklarować zmienne w
~/.bashrc
:export PATH="$HOME/bin:$PATH"
Aby załadować nowe zmienne środowiskowe do bieżącej sesji powłoki, użyj polecenia
source
:
Wniosek
W tym przewodniku pokazaliśmy, jak ustawić i wyświetlić zmienne środowiskowe i powłoki.
Jeśli masz jakieś pytania, zostaw komentarz.
terminalJak wyświetlić listę grup w systemie Linux
W systemie Linux grupa to zbiór użytkowników. W tym samouczku wyjaśniono, jak pokazać wszystkie grupy, których członkiem jest użytkownik. Wyjaśnimy również, jak wyświetlić listę wszystkich członków grupy.
Jak wyświetlić listę użytkowników w systemie Linux
Czy kiedykolwiek chciałeś wyświetlić listę wszystkich użytkowników w systemie Linux lub policzyć liczbę użytkowników w systemie? Istnieją polecenia, aby utworzyć użytkownika, usunąć użytkownika, wyświetlić listę zalogowanych użytkowników, ale jakie jest polecenie, aby wyświetlić listę wszystkich użytkowników w systemie Linux?
Jak wyświetlić / wyświetlić użytkowników w mysql
W tym samouczku wyjaśniono, jak wyświetlić listę wszystkich kont użytkowników na serwerze bazy danych MySQL za pomocą wiersza polecenia.