Linux alias – jak tworzyć aliasy i funkcje powłoki

Oskar Gajzler
Przez
Oskar Gajzler
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak...
11 min czytania

1. Co to jest alias w Linuxie?

Alias to mechanizm powłoki (bash, zsh itp.), który pozwala zastąpić krótką nazwę dłuższą komendą lub zestawem komend. Dzięki temu:

  • skracasz żmudne wpisywanie długich poleceń,
  • dodajesz domyślne opcje do istniejących komend,
  • minimalizujesz literówki i błędy.

Przykład idei:

alias kopia="cp"

Po wpisaniu w terminalu:

kopia plik.txt katalog/

powłoka zastąpi kopia komendą cp, więc realnie wykona:

cp plik.txt katalog/

Alias działa tylko w powłoce, w której jest zdefiniowany. Nie zmienia samego programu cp, tylko sposób, w jaki powłoka interpretuje wprowadzane polecenia.

2. Jak sprawdzić istniejące aliasy?

Aby zobaczyć, jakie aliasy są dostępne w Twojej bieżącej sesji, wpisz:

alias

To polecenie bez argumentów wypisze wszystkie aktualnie zdefiniowane aliasy w powłoce. Aby sprawdzić konkretny alias, użyj:

alias ll

Przykładowy wynik:

alias ll='ls -alF'

3. Tymczasowe aliasy (na czas jednej sesji)

Najprostszy sposób tworzenia aliasu wygląda tak:

alias nazwa="komenda z opcjami"

Zasady składni: nie wstawiaj spacji przed i po znaku =; całe polecenie po = umieszczaj w cudzysłowach lub apostrofach (szczególnie, jeśli zawiera spacje, |, ;, &, * itd.).

Przykłady prostych aliasów

Poniżej znajdziesz cztery przydatne skróty wraz z gotowymi definicjami:

  1. Skrócony listing:

    alias ll="ls -alF"

  2. Kolorowy grep:

    alias grep="grep --color=auto"

  3. Alias do git status:

    alias gs="git status -sb"

  4. Wyszukiwanie plików .py:

    alias pf='ls -l | grep -E "\.py$"'

Po utworzeniu aliasu możesz go od razu używać – jest aktywny do końca sesji (zamknięcia okna terminala).

4. Stałe aliasy (dostępne po każdym zalogowaniu)

Alias zapisany komendą alias jest tymczasowy – znika po zamknięciu terminala. Aby alias był dostępny zawsze, dopisz go do pliku konfiguracyjnego powłoki.

Najczęściej używane miejsca: Bash – ~/.bashrc (najpopularniejsze miejsce na aliasy użytkownika) i opcjonalnie ~/.bash_aliases (jeśli jest dołączany z .bashrc); Zsh – ~/.zshrc.

4.1. Dodanie aliasu do ~/.bashrc

Wykonaj poniższe kroki, aby dodać stałe aliasy:

  1. Otwórz plik konfiguracyjny:

    nano ~/.bashrc

  2. Dodaj alias na końcu pliku, na przykład:

    alias ll="ls -alF"
    alias update="sudo apt update && sudo apt dist-upgrade -y"

  3. Zapisz plik i wyjdź (w nano: Ctrl+O, Enter, potem Ctrl+X).

  4. Przeładuj konfigurację, aby aliasy działały od razu:

    source ~/.bashrc

Od teraz aliasy ll i update będą dostępne przy każdym nowym otwarciu terminala.

4.2. Plik ~/.bash_aliases

W wielu dystrybucjach Bash ma w .bashrc fragment odpowiedzialny za wczytywanie pliku z aliasami. Przykładowy blok wygląda tak:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Jeśli masz taki blok, możesz trzymać aliasy w osobnym pliku. Postępuj według kroków:

  1. Utwórz plik, jeśli nie istnieje:

    touch ~/.bash_aliases

  2. Dodaj alias ręcznie, np. uruchamiając edytor i wpisując treść:

    nano ~/.bash_aliases

Przykład zawartości aliasu w tym pliku:

alias pf='ls -l | grep -E "\.py$"'

Po zapisaniu możesz też dodać prosty alias bezpośrednio z terminala:

echo "alias ll='ls -alF'" >> ~/.bash_aliases

Na koniec przeładuj plik (bez zamykania terminala):

source ~/.bash_aliases

Jeśli w Twoim .bashrc nie ma bloku z ~/.bash_aliases, możesz go dodać ręcznie, jak w pokazanym fragmencie.

5. Usuwanie aliasów

Masz dwa poziomy usuwania: w bieżącej sesji i na stałe.

5.1. Usunięcie aliasu w aktualnej sesji

Użyj komendy unalias, aby skasować konkretny skrót:

unalias nazwa_aliasu

Przykład usunięcia aliasu ll:

unalias ll

Aby usunąć wszystkie aliasy w bieżącej sesji, wpisz:

unalias -a

5.2. Usunięcie aliasu na stałe

Otwórz plik, w którym alias został zapisany (np. ~/.bashrc lub ~/.bash_aliases), a następnie usuń lub zakomentuj właściwą linię.

Przykład zakomentowania aliasu:

# alias ll="ls -alF"

Po modyfikacji przeładuj konfigurację:

source ~/.bashrc # lub: source ~/.bash_aliases

6. Złożone aliasy – kilka komend naraz

Alias może zawierać więcej niż jedną komendę. Rozdzielaj je średnikiem ; lub operatorami logicznymi &&, ||:

  1. Przejście do katalogu domowego i wylistowanie zawartości:

    alias home_files='cd ~; ls -l'

  2. Aktualizacja systemu (APT):

    alias update="sudo apt update && sudo apt dist-upgrade -y"

  3. Szybka kopia katalogu z zachowaniem uprawnień:

    alias bk='cp -a'

Zawsze ujmuj złożone polecenia w cudzysłowy lub apostrofy, aby nie wykonały się w momencie definiowania aliasu.

7. Alias vs funkcja powłoki – kiedy co stosować?

Alias jest świetny do:

  • skracania pojedynczej komendy,
  • prostego dodawania opcji,
  • prostych sekwencji typu „zrób A, potem B”.

Alias ma ograniczenia – nie nadaje się do bardziej rozbudowanej logiki (warunki, pętle) ani do zaawansowanego przetwarzania argumentów. W takich przypadkach lepsze są funkcje powłoki.

8. Co to jest funkcja powłoki?

Funkcja powłoki to nazwana sekwencja poleceń z możliwością użycia:

  • argumentów ($1, $2, …),
  • instrukcji sterujących (if, case, pętle),
  • lokalnych zmiennych.

W powłoce Bash funkcja może wyglądać tak:

nazwa_funkcji() {
# treść funkcji
}

Równoważna forma zapisu:

function nazwa_funkcji {
# treść funkcji
}

Aby jej użyć, wywołaj ją jak zwykłe polecenie z argumentami:

nazwa_funkcji arg1 arg2

9. Tworzenie prostych funkcji powłoki

9.1. Funkcja w bieżącej sesji

Aby zdefiniować prostą funkcję w aktualnej sesji, wpisz:

hello() {
echo "Witaj w powłoce, $USER!"
}

Następnie wywołaj ją jak komendę:

hello

Funkcja działa tylko w tej sesji – zniknie po zamknięciu terminala, podobnie jak tymczasowy alias.

9.2. Funkcja z argumentami

Poniższy przykład liczy pliki w podanym katalogu i zwraca błąd przy braku argumentu:

count_files() {
if [ -z "$1" ]; then
echo "Użycie: count_files KATALOG"
return 1
fi
ls -1 "$1" | wc -l
}

Przykład użycia funkcji:

count_files /var/log

10. Funkcje powłoki na stałe (w .bashrc lub osobnym pliku)

Podobnie jak aliasy, funkcje warto mieć dostępne w każdej sesji. Postępuj według kroków:

  1. Otwórz ~/.bashrc:

    nano ~/.bashrc

  2. Dodaj na końcu definicję funkcji, na przykład:

    mkcd() {
    mkdir -p "$1" && cd "$1"
    }

  3. Zapisz i przeładuj konfigurację:

    source ~/.bashrc

Możesz też trzymać funkcje w osobnym pliku (np. ~/.bash_functions) i dołączać go z .bashrc, analogicznie jak ~/.bash_aliases.

11. Praktyczne przykłady aliasów i funkcji

11.1. Alias do „bezpiecznego” usuwania

Zamiast ryzykownego rm użyj wariantu z potwierdzeniem:

alias rm='rm -i'

Dzięki opcji -i powłoka będzie pytać o potwierdzenie usuwania.

11.2. Aliasy do częstych komend ls

Dodaj poniższe aliasy, by przyspieszyć przeglądanie plików:

alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'

Wiele dystrybucji ma takie aliasy domyślnie w .bashrc.

11.3. Aliasy do git

Przykładowy zestaw skrótów dla systemu Git:

alias gs='git status -sb'
alias ga='git add'
alias gc='git commit'
alias gco='git checkout'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'

11.4. Funkcja do szybkiego wyszukiwania w plikach

Ta funkcja wyszukuje wzorzec w plikach rekurencyjnie w podanym katalogu:

fsearch() {
if [ $# -lt 2 ]; then
echo "Użycie: fsearch WZORZEC KATALOG"
return 1
fi
grep -RIn --color=auto "$1" "$2"
}

Przykład użycia:

fsearch "hasło" /etc

11.5. Funkcja do archiwizacji katalogu

Prosta funkcja kompresująca katalog do archiwum .tar.gz:

tarzip() {
if [ -z "$1" ]; then
echo "Użycie: tarzip KATALOG"
return 1
fi
tar -czf "$1.tar.gz" "$1"
}

12. Dobre praktyki przy tworzeniu aliasów i funkcji

  1. Nie nadpisuj ważnych poleceń bez powodu. Zamiana cp, rm, mv na coś innego może być myląca – rób to świadomie, np. z dodatkową flagą bezpieczeństwa (-i).

  2. Stosuj spójne nazewnictwo. Krótkie aliasy do prostych zadań (np. ll, gs, up, .., ...), a funkcje do rzeczy bardziej złożonych (np. mkcd, fsearch, backup_home).

  3. Unikaj spacji wokół znaku = w aliasach: alias ll="ls -alF" jest poprawne, a alias ll = "ls -alF" spowoduje błąd.

  4. Dobieraj cudzysłowy świadomie. Używaj '...', jeśli nie chcesz, by powłoka rozwijała zmienne w momencie definicji; używaj "...", jeśli alias ma korzystać ze zmiennych środowiskowych dynamicznie.

  5. Dbaj o przenośność konfiguracji. Jeśli używasz kilku maszyn, trzymaj aliasy i funkcje w jednym repozytorium lub plikach (~/.bash_aliases, ~/.bash_functions) i synchronizuj je, np. przez Git.

13. Diagnostyka – dlaczego alias/funkcja nie działa?

Jeśli alias lub funkcja „nie działa”, sprawdź poniższe punkty:

  1. Czy powłoka to Bash lub Zsh, a nie np. sh (który może wczytywać inny plik niż .bashrc).
  2. Czy odpowiedni plik (~/.bashrc, ~/.bash_aliases) na pewno jest wczytywany przy starcie powłoki.
  3. Czy po edycji pliku wykonałeś przeładowanie konfiguracji:

source ~/.bashrc

  1. Czy nie ma literówek (np. aliass) lub spacji wokół =.
  2. Czy nazwa aliasu nie koliduje z nazwą funkcji lub binarki – sprawdzisz to poleceniem:

type nazwa

Powłoka wypisze, czy nazwa to alias, funkcja czy program.

14. Podsumowanie praktyczne – szybki „starter pack”

Jeśli chcesz mieć na swojej maszynie podstawowy zestaw aliasów i funkcji, wykonaj kroki poniżej:

  1. Otwórz .bashrc:

    nano ~/.bashrc

  2. Dodaj na końcu proponowane aliasy i funkcje:

    # Aliasy
    alias ll="ls -alF"
    alias la="ls -A"
    alias l="ls -CF"
    alias grep="grep --color=auto"
    alias rm="rm -i"
    alias update="sudo apt update && sudo apt dist-upgrade -y"

    # Funkcje
    mkcd() {
    mkdir -p "$1" && cd "$1"
    }

    fsearch() {
    if [ $# -lt 2 ]; then
    echo "Użycie: fsearch WZORZEC KATALOG"
    return 1
    fi
    grep -RIn --color=auto "$1" "$2"
    }

  3. Zapisz i przeładuj konfigurację:

    source ~/.bashrc

Udostępnij ten artykuł
Obserwuj
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak bezpiecznie korzystać z sieci i jak dobierać sprzęt oraz oprogramowanie. Prywatnie tropi nowinki technologiczne i testuje je, zanim opisze.
Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *