Feeds:
Wpisy
Komentarze

Posts Tagged ‘bash’

linux ls dziwna kolejność

tworzymy trzy pliki w katalogu ls_test

[ls_test]$ touch product_reviews_info.php
[ls_test]$ touch product_reviews.php
[ls_test]$ touch product_reviews_write.php

a następnie wyświetlamy zawartość
[ls_test]$ ls -l
razem 0
-rw-r--r-- 1 rofrol rofrol 0 kwi 3 15:32 product_reviews_info.php
-rw-r--r-- 1 rofrol rofrol 0 kwi 3 15:32 product_reviews.php
-rw-r--r-- 1 rofrol rofrol 0 kwi 3 15:32 product_reviews_write.php

i jak widać kropka i podkreślenie nie brane są w tym wypadku pod uwagę tylko następny znak za nimi. git status pokazuje w innej kolejności.

Uaktualnienie

brakkvatn z #linux na freenode dał mi wskazówkę aby używać
ls -lX

dzięki temu plik z kropką nie będzie pomiędzy tylko na końcu. Ale to jeszcze nie to.

Pojawia się pytanie według jakiego wzorca ls sortuje? Kropka w ascii ma numer 46 a podreślenie 96. Więc kropka powinna być pierwsza sortowana

Uaktualnienie2 Kilka linków:
http://www.gnu.org/software/coreutils/faq/coreutils-faq.html#The-ls-command-is-not-listing-files-in-a-normal-order_0021


http://www.gnu.org/software/libc/manual/html_mono/libc.html#String_002fArray-Comparison

http://www.opengroup.org/onlinepubs/009695399/utilities/ls.html

Uaktualnienie3
Rozwiązaniem tymczasowym mojego problemu jest stosowanie przełącznika -v który nie bierze pod uwagę ustawień LC_COLLATE.

http://ubuntuforums.org/showthread.php?t=718355

http://savannah.gnu.org/bugs/?1212

Uaktualnienie4
inne rozwiązanie to ustawić alias w ~/.bashrc
alias ls=”LC_COLLATE=C ls”

albo z kilkoma opcjami
alias ls="LC_COLLATE=C ls -xA1 --color=always"

-x wyświetla wierszami najpierw
-A wyświetla ukryte pliki oprócz . i ..
-1 wyświetla tylko jedną kolumnę (niepotrzebne wtedy -x)
-color=always trzeba to włączyć bo pewne opcje mogą wyłączyć

Read Full Post »

mysql

Uwaga! Należy zamienić cudzysłowy i apostrofy na znaki takie jakie wypisuje wasza klawiatura

logujemy się
mysql -u username -p

logujemy się i podajemy od razu hasło
mysql -u username -ppassword

logujemy się i podajemy od razu hasło i bazę danych do użycia
mysql -u username -ppassword databasename

logujemy się i podajemy od razu hasło i bazę danych do użycia oraz wczytujemy plik sql do bazy
mysql -u username -ppassword databasename < plik.sql

logujemy się i podajemy od razu hasło i bazę danych do użycia oraz wczytujemy plik sql do bazy oraz informujemy, że plik jest w kodowaniu utf-8 jeśli baza jest w innym kodowaniu
mysql -u username -ppassword --default_character_set utf8 databasename < plik.sql

logujemy się i podajemy od razu hasło oraz wyświetlamy bazy danych i wychodzimy
echo "show databases" | mysql -u username -ppassword | grep -v Database

Źródło:

http://blog.lxpages.com/2007/05/30/mysql-command-line-tips

http://www.sshhelp.com/shell-commands/

Read Full Post »