Zima w Juszczynie
Trzy Lipki – Bielsko-Biała
Węzeł Browar – Żywiec
Jesień w Juszczynie
sudo bez hasła dla wybranych aplikacji
Dzisiaj uruchamiając ponownie serwer apache na swoim komputerze, musiałem po raz n-ty podać hasło użytkownika. Z racji, że robię to dość często, chciałem, aby ten proces odbywał się bez mojej dodatkowej autoryzacji. Dobrałem się więc do konfiguracji polecenia sudo.
Możemy ją znaleźć pod tą ścieżką:
/etc/sudoers
Zalecam edytowanie tego pliku za pomocą polecenia:
sudo visudo
Dodałem tam poniższy wpis:
wujku ALL=NOPASSWD: /usr/sbin/apachectl
Od tego momentu, mogę korzystać z polecenia:
sudo apachectl
Bez podawania za każdym razem mojego hasła.
Tworzenie tablicy z ciągu znaków – AppleScript
AppleScript pozwala na ustawienie separatora, po którym będzie dzielił tekst. Umożliwia także łączenie elementów tablicy w ciąg znaków. Domyślne separator jest ustawiony na {“”}, dzieląc tekst po każdym znaku.
W prosty sposób możesz go zmienić, przykładowo na spacje:
set AppleScript's text item delimiters to space
lub w innej formie:
set AppleScript's text item delimiters to {" "}
Wykonując teraz polecenie:
set exampleText to "AppleScript jest niesamowity!"
set array to exampleText's text items
array
-- {"AppleScript", "jest", "niesamowity!"}
Aby odwołać się do 2 elementu tablicy:
item 2 of array
-- "jest"
A co w przypadku, gdy chcesz złączyć elementy tablicy w pojedynczy ciąg znaków oddzielony przecinkami? Nic prostszego, definiujesz separator:
set AppleScript's text item delimiters to {", "}
Po czym wykonujesz prosty kod:
set exampleArray to {"ls", "cd", "cat", "cp", "mv", "ln"}
set shellCommands to exampleArray as string
shellCommands
-- "ls, cd, cat, cp, mv, ln"
Poniżej przedstawiam gotową funkcję split oraz jej wykorzystanie
on split(value, delimiter)
set delimiterBackup to AppleScript's text item delimiters
set AppleScript's text item delimiters to delimiter
set value to value's text items
set AppleScript's text item delimiters to delimiterBackup
return value
end split
set shellCommands to split("ls, cd, cat, cp, mv, ln", {", "})
shellCommands
-- {"ls", "cd", "cat", "cp", "mv", "ln"}
item 4 of shellCommands
-- "cp"
Zmienna PATH – dodawanie własnego katalogu
Chcąc uruchomić skrypt lub program, musisz przejść do katalogu w którym się znajduje:
cd ~/Documents/Skrypty
a później go uruchomić:
./clearTmp
Lepszym rozwiązaniem jest przeniesienie wszystkich często używanych przez ciebie skryptów do jednego katalogu, który dodasz do zmiennej środowiskowej PATH, przez co będziesz miał dostęp do swoich narzędzi w każdym miejscu.
Pierwsze stwórz katalog bin w głównym katalogu twojego użytkownika:
mkdir ~/bin
Będziesz tam przechowywał wszystkie swoje skrypty lub dowiązania do programów, w celu szybkiego dostępu do nich.
Jeżeli jeszcze nie posiadasz pliku ~/.bash_profile, utwórz go:
touch ~/.bash_profile
Plik ten jest wczytywany podczas każdego uruchomienia terminala. Zachowasz w nim instrukcję przypisana twojego katalogu ~/bin do zmiennej środowiskowej PATH. Skorzystaj z poniższego polecenia:
echo "PATH=$PATH:~/bin" >> ~/.bash_profile
Teraz uruchom ponownie terminal. Przenieś do ~/bin najczęściej wykorzystywane przez siebie skrypty, dla przykładu utworzę dowiązanie symboliczne do skryptu czyszczącego zawartość /tmp:
cd ~/bin
ln -s ~/Documents/Skrypty/clearTmp ./clearTmp
Wynik polecenia ls -l dla mojego katalogu ~/bin:
...
lrwxr-xr-x 1 wujku staff 39 16 sie 14:49 clearTmp -> /Users/wujku/Documents/Skrypty/clearTmp
...
Po wykonaniu polecenia:
clearTmp
Zostanie uruchomiony skrypt ~/Documents/Skrypty/clearTmp.
Bootowalny pendrive pod OS X
Nie raz spotykamy się z problemem utworzenia na naszej małej przenośnej pamięci, bootowalnego instalatora, przykładowo z systemem operacyjnym z rodziny Linuxa.
Pierwszym działaniem będzie konwersja pobranego obrazu systemu z .iso na .img posługując się wbudowanym w system narzędziem (po konwersji należy zmienić rozszerzenie pliku z .img.dmg na .img drugim poleceniem):
hdiutil convert obraz.iso -format UDRW -o obraz.img
mv obraz.img.dmg obraz.img
Po wykonaniu powyższych dwóch komend, możemy podłączyć pendrive do Mac`a (pamiętając, że zawartość przenośnej pamięci zostanie zastąpiona obrazem po wykonaniu wszystkich czynności).
Posługując się poleceniem:
diskutil list
Lokalizujemy nasz pendrive na liście i zapamiętujemy jego nazwę, pod którą widziany jest w systemie operacyjnym (np. /dev/diskX, gdzie X to numer).
Przed kopiowaniem obrazu, musimy odmontować naszą pamięć przenośną poleceniem (zamień X własnym numerem):
diskutil unmountDisk /dev/diskX
Wykonując poniższe polecenie, obraz.img zostanie skopiowany do Waszej pamięci przenośnej (zamień X własnym numerem):
sudo dd if=obraz.img of=/dev/rdiskX bs=1m
Kopiowanie może zająć kilka minut w zależności od prędkości pendrive`a.
Po zakończeniu, możemy odmontować naszą pamięć przenośną.
Nie odpowiadam za nieumiejętne korzystanie z konsoli oraz za utracone w ten sposób dane. W razie pytań, zostaw komentarz.
Klucze SSH
Generowanie klucza SSH:
ssh-keygen -t rsa -C "[email protected]"
Po wprowadzeniu komendy zostaniemy zapytani o nazwę pliku w którym będzie przechowywany nasz klucz, a krok dalej o hasło.
Klucz bez hasła przydatny przy synchronizacji danych poprzez rsync:
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -P ""
Kopiowanie klucza publicznego do schowka:
pbcopy < ~/.ssh/id_rsa.pub
Dodawanie klucza SSH do autoryzowanych kluczy na serwerze zdalnym.
W przypadku gdy plik nie istnieje:
touch ~/.ssh/authorized_keys chmod 0644 ~/.ssh/authorized_keys
Przerzucanie klucza ze schowka do utworzonego pliku:
pbpaste > ~/.ssh/authorized_keys