:sparkles: PWA :sparkles:
Logo

Piotr Kowalski

Organizator WarsawJS , Trener, YouTuber

Midnight Commander - narzędzie odporne na czas

Czy pamiętasz to narzędzie? Stare czasy, kiedy nie było popularnych graficznych rozwiązań tego typu. W sumie, kiedy zobaczyłem profil mc na Wikipedii to widzę, że ten fantastyczny projekt powstał 5 lat po moich urodzinach, czyli na chwilę 23 lata temu.

W tym momencie powinny pojawić się w Twojej głowie pytania:

  • co to jest mc?
  • po co zajmować się tak starym narzędziem?
  • oraz jak mi się przydaje?

Co to jest mc?

Midnight Commander - w skrócie mc - to prosty lecz wielofunkcyjny manager plików i katalogów, znany z czasów kiedy nie było Total Commandera, a jego protoplasta Norton Commander dopiero raczkował.

Gwoli ścisłości

Starszym programem tego typu jest Norton Commander, który był przeznaczony dla systemu MS-DOS. Program Midnight Commander to rozwiązania multi-platformowe.

Instalacja

W mojej obecnej konfiguracji sprzętowo-software-owej (używam macOS Sierra), najszybsza instalacja mc polega na uruchomieniu polecenia:

$ brew install mc

Konfiguracja

W systemach macOS, plik konfiguracyjny narzędzia dostępny jest w następującej lokalizacji:

~/.config/mc/ini

Dla przypomnienia

~ (tylda) znak ten odnosi się do katalogu domowego użytkownika

Katalog ze skórkami

Po instalacji za pomocą narzędzia brew (Homebrew), które instaluje paczki w katalogu:

/usr/local/Cellar/

katalog ze skórkami aplikacji znajduje się tutaj:

/usr/local/Cellar/midnight-commander/4.8.18/share/mc/skins

Po co to piszę? Ponieważ nigdzie nie jest powiedziane, że Twój file manager musi tak wyglądać:

Zrzut ekranu z głównego okna programu Midnight Commander wraz z domyślnym wyglądem.

Zmiana języka

Kto nie miał problemów z wyświetlaniem polskich znaków w programach unix-owych niech podniesie rękę.

Nie widzę żadnej, w takim razie poradźmy sobie z tym odwiecznym problemem raz na zawsze uruchamiając w taki sposób Midnight Commandera:

$ LANG=en_EN.UTF-8 mc

Oczywiście, nikt nie chce uruchamiać narzędzia wpisując tyle znaków z klawiatury, ale od czego są aliasy? Jeśli korzystasz z basha albo zsh to dodaj poniższą definicję do pliku z aliasami, np. .bash_aliases:

$ alias mc='LANG=en_EN.UTF-8 mc'

Od teraz wystarczy w terminalu wydać polecenie:

$ mc

aby uruchomić opisywane narzędzie.

Wskazówka

Pssst… Jeśli alias nie zadziałał należy przeładować shella. Z tym problemem można sobie poradzić na 2 sposoby:

  1. Otworzyć nowy terminal, np. skrót cmd + t
  2. Załadować plik konfiguracyjny dzięki poleceniu: source ~/.bash_aliases

Popularne operacje w mc

1) Kompresowanie katalogu

  1. Wejdź do katalogu, który chcesz kompresować.
  2. Ustaw się wewnątrz katalogu na wskaźniku wyżej, tj: ...
  3. Naciśnij klawisz F2, a potem wybierz tryb kompresji:
    • 3, jeśli chcesz stworzyć archiwum typu: tar.gz
    • 4, jeśli chcesz stworzyć archiwum typu: tar.bz2
    • 5, jeśli chcesz stworzyć archiwum typu: tar.7z
    • 6, jeśli chcesz stworzyć archiwum typu: tar.xz
  4. Po zakończeniu pakowania, archiwum zostanie stworzone w katalogu, który w strukturze katalogów znajduje się wyżej.

2) Zaznaczanie plików

Zaznaczanie odbywa się za pomocą klawisza ins (insert).

Jeśli brakuje takiego klawisza na klawiaturze (i używasz systemu macOS) to skorzystaj ze skrótu ctrl + t.

Interesujące może być też zaznaczanie według wzorca (np. chcesz zaznaczyć wszystkie pliki w folderze) w takim wypadku wykorzystaj skrót + (plus), aby wyświetlić dialog ze wzorcem.

Odznaczanie polega na wybraniu znaku - (minus), gdzie wyświetli się dialog ze wzorcem plików, które zostaną odznaczone.

Aby odznaczyć (albo zaznaczyć) całą zawartość katalogu wpisz *.

3) Kopiowanie plików na serwer

Gdy chcesz skopiować swoje pliki na serwer połącz się do niego wykorzystując protokół SSH (Secure Shell) wybierając opcję:

Wybranie opcji: "Right → Shell link" programu Midnight Commander.

Midnight Commander wykorzystuje protokół SSH, w komunikacji z serwerem, więc jeśli Twój serwer wspiera ten protokół, to przetestuj kopiowanie plików - zobaczysz jakie to proste. Nie trzeba instalować specjalnych programów, aby zarządzać plikami na serwerze w sposób: szybki oraz intuicyjny.

Osobiste przemyślenia

Kiedyś nie miałem pojęcia o istnieniu tak prostych narzędzi i zastanawiałem się jaki typ programu wybrać jako klient FTP. Przeczytaj co myślałem 6 lat temu.

Manager wykorzystuje protokół fish - Files transferred over shell protocol - który został specjalnie stworzony na potrzeby opisywanego narzędzia.

Opis protokołu "fish" w programie Midnight Commander.

Po co mi takie narzędzie?

Osobiście wykorzystuję mc podczas kopiowania pliku na serwer VPS - opisywałem tą możliwość powyżej. Nie chcę instalować programu do każdej operacji jaką wykonują na swojej maszynie. Uważam, że dobry inżynier wykorzystuje dostępne dla niego narzędzia (w danej sytuacji) zamiast instalować nowe.

Czasami wykorzystuję jeszcze Midnight Commandera do porządkowania plików i katalogów na dysku prywatnego komputera, bo przenoszenie folderów za pomocą touchbara nie zawsze jest najszybszym rozwiązaniem.

Bibliografia

Stan na dzień: 2017-04-17

Tagi: devops

2 dni wcześniej napisałem: Dziedziczenie obiektów w JavaScript (bez użycia klas) 2 dni później napisałem: Wygraj bilet na konferencję JS Poland 2017

Możesz osadzić kod wykorzystując: <pre><code class="{language}"></code></pre>