SeeM Napisano Marzec 10, 2013 Zgłoszenie Share Napisano Marzec 10, 2013 Ostatnio pracuję trochę więcej w gnome-terminalu i w związku z tym wymyślam i kopiuję sobie aliasy. Na razie z fajnych pomysłów wymyśliłem tyle: alias 'dir'='ls --sort=extension --color -h -al' alias '..'='cd ..' alias 'clr'='clear' alias 'top'='htop --user=mojlogin --sort=PERCENT_CPU --delay=25' alias 'x'='exit' alias 'yumi'='yum install ' alias 'yuml'='yum list ' alias 'yumu'='yum update' Prompt roota jest wypisany na czerwono (przydatne, bo czasami się zapomni o ctrl+d): PS1="$(tput setaf 1)[\\u@\\h \\w]# $(tput sgr0)" a prompt usera na zielono: PS1="$(tput setaf 2)[\\u@\\h \\w]$ $(tput sgr0)" co pomaga przy przewijaniu i odnajdywaniu miejsc ostatnio wpisywanych poleceń, jeśli output jest większy niż jeden ekran tekstu. Macie jakieś swoje patenty na wygodniejszą pracę? Głównie chodzi mi o zamienniki typu top -> htop. Przydałby mi się jakiś lepszy program do pokazywania modułów kernela niż zwykły lsmod i coś lepszego niż chkconfig, najlepiej działające podobnie jak stare inity pozwalające bardzo szybko zrestartować demona. Niby można do każdego osobno zrobić alias, ale może jest coś eleganciejszego. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 10, 2013 Zgłoszenie Share Napisano Marzec 10, 2013 chkconfig czy restarty usług załatwia systemctl. Opcje praktycznie takie jak dla starych service czy /etc/init.d/[nazwa serwisu]: start, stop, restart, status, enable, disable, hide, unhide. Czy warto robić aliasy? Wg mnie nie warto, chyba że jakiś alias np. do sprawdzenia co działa a co nie: systemctl --full | grep \.service | grep " active" systemctl --full | grep \.service | grep inactive Podobnie coś z grepem dla polecenia lsmod. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
andrew Napisano Marzec 10, 2013 Zgłoszenie Share Napisano Marzec 10, 2013 Może się przydać? alias 'grub_update'='grub2-mkconfig -o /boot/grub2/grub.cfg' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 10, 2013 Zgłoszenie Share Napisano Marzec 10, 2013 alias 'top'='htop --user=mojlogin --sort=PERCENT_CPU --delay=25' Tak bardziej uniwersalnie: alias 'top'="htop --user=$USER --sort=PERCENT_CPU --delay=25" Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Scorpion Napisano Marzec 13, 2013 Zgłoszenie Share Napisano Marzec 13, 2013 Jak używam kill -9, to mnie akurat przydaje się alias kl='kill -9' I jak edytuję nano, lubię widzieć numer linii alias nano='nano -c' Oprócz yumi i yumu jak w pierwszym poście alias yumc='yum clean all'alias yume='yum remove' I takie inne udziwnienia jak: alias tfd='tail -f /var/log/dhcpd.log' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 13, 2013 Zgłoszenie Share Napisano Marzec 13, 2013 alias yumc='yum clean all'No i jeszcze jak się używa dużo aliasów toalias a='alias' No offence... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Marzec 14, 2013 Zgłoszenie Share Napisano Marzec 14, 2013 Zainstalować bash-completion (auto uzupełniania argumentów poleceń). Łatwo można rozszerzyć dla własnych skryptów export HISTSIZE=99999 # rozmiar historii: duuuuuuży export HISTTIMEFORMAT="| %Y.%m.%d | %T | " # historia z datą export HISTIGNORE="&:ls:[bf]g:exit" # ignorowane w historii history(){ # Użycie: # history # domyślnie pokazuj ostatnie 500 linii # history 10 # pokazuj ostatnie 10 linii # history all # pokazuj całą historię LINES=${1:-500} if [ "$1" == "all" ] ; then command history else command history | tail -${LINES} fi } alias +='sudo yum install' alias ?='yum search' alias yu='sudo yum update --skip-broken' -(){ # usuwa paczkę na podstawie polecenia sudo yum remove -C --noplugins $(rpm -qf $(type -P $@)) } --(){ # usuwa paczkę na podstawie polecenia ze śmieciami sudo yum remove -C --noplugins --enableplugin="remove-with-leaves" --remove-leaves $(rpm -qf $(type -P $@)) } ... alias grep='grep --color=auto' alias mkdir='mkdir -pv' alias mutt-local='mutt -f /var/spool/mail/lucas' alias reload='. ~/.bashrc' alias ssh='/usr/bin/ssh -Y -C' alias todo='cat >> $HOME/todo.txt' # notes, aby wyjść Ctrl+D alias xo='xdg-open' shopt -s autocd # wejdź do katalogu bez cd #edytory export EDITOR=vim export VISUAL='geany -i' # Must enable globstar, otherwise ** doesn't work. shopt -s globstar # nie pomijaj ukrytych shopt -s dotglob # obsługa błędów err_handle(){ echo -ne "\033[37;43;1m ;( >> $?\e[0m" tput cuf $(( $(tput cols) -42)) ; echo -e "\e[5;37;1m\e[5;41m[ ERROR! ]\e[0m" } trap 'err_handle' ERR experymenty ze znakiem zgłoszenia w konsoli hg_branch() { # wpisanie nazwy brancha hg/git jeśli bierzący katalog to repo which hg 2>/dev/null 1>&2 && ref=$(hg branch 2> /dev/null) && echo " hg:${ref#refs/heads/}" which git 2>/dev/null 1>&2 && { #parent=$(git reflog show --all | grep from | cut -d' ' -f6 ) branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/') #~ echo -n "($parent / $branch)" echo -n "$branch" } } # ------------------------------------------------------------------------------ set_ps1(){ # http://www.thegeekstuff.com/2008/09/bash-shell-ps1-10-examples-to-make-your-linux-prompt-like-angelina-jolie/ # \e[ -- indicates the beginning of color prompt # x;ym -- indicates color code. Use the color code values mentioned below. # \e[m -- indicates the end of color prompt # \u -- username # \h -- hostname # \w -- the current working directory, with $HOME abbreviated with a tilde # \W -- the basename of the current working directory, with $HOME abbreviated with a tilde case $(whoami) in root) # kolorowy znak zgłoszenia [czerwony@pomarańczowy] PS1='\[\033[31m\]\u@\H \[\033[33m\]\w\[\033[0m\]' ;; oracle) # kolorowy znak zgłoszenia [niebieski@zielony]$ PS1= PS1+='\[\033[38;05;9m\]\u' # user PS1+='\[\033[38;05;4m\]@' # @ PS1+='\[\033[38;05;9m\]\H' # $(hostname) PS1+=' \[\033[32m\]\w' # /folder/ PS1+='\[\033[0m\]' # reset ;; *) # kolorowy znak zgłoszenia [niebieski@zielony]$ PS1='\[\033[34m\]\u@\H \[\033[32m\]\w\[\033[0m\]' ;; esac #~ PS1+='[$(who | awk "{print \$1;}" | grep -v "^root$" | sort | uniq | wc -l)] ' # hg branch PS1+='\[\033[31m\]$(hg_branch)\[\033[0m\]' # domknięcie #~ PS1+=']\#\$ ' #~ PS1+=']\w\$ ' PS1+=' \$ ' # ------------------------------------------------------------------------------ # Unicode: http://panmental.de/symbols/info.htm # echo "♊" | hexdump -C # 00000000 e2 99 8a 0a |....| # 00000004 # [email protected] ~ $ $ PS1=$'\xe2\x99\x8a >' # ♊ > # ♊ > # ♊ >PS1=$'\xe2\x99\x8a \n>' # ♊ # > # ♊ # > } set_ps1 najczęściej wykorzystywana funkcja w skryptach dla innych: yes_no(){ local thisX='' while : ; do read -p "$@ (y/n): " thisX case "$thisX" in [tT] | [tT][aA][kK] | [yY] | [yY][eE][sS] ) return 0 ;; [nN] | [nN][iI][eE] | [nN][oO] ) return 1 ;; * ) echo -ne "$@ (y/n): " ;; esac done } if yes_no "Czy lubisz bratki?" then echo coś robimy else echo czegoś nie zrobimy fi Szybkie przestawianie wersji programów na przykładzie maven. $ ls -l /usr/local/share/maven/ total 8 drwxrwxrwx 6 lucas lucas 4096 Oct 18 21:29 apache-maven-2.2.1 drwxrwxrwx 6 lucas lucas 4096 Sep 16 09:42 apache-maven-3.0.5 lrwxrwxrwx 1 lucas lucas 27 Mar 14 20:40 default -> /usr/local/share/maven/mvn2 lrwxrwxrwx 1 lucas lucas 20 Oct 18 21:29 mvn2 -> ./apache-maven-2.2.1 lrwxrwxrwx 1 lucas lucas 18 Oct 18 21:26 mvn3 -> ./apache-maven-3.0.5 env.jetty (){ _JAVA_OPTIONS=' '; _JAVA_OPTIONS+=' -Dawt.useSystemAAFontSettings=on '; _JAVA_OPTIONS+=' -Duser.language=pl -Duser.country=PL -Dfile.encoding=UTF-8 '; _JAVA_OPTIONS+=' -Xms2048m -Xmx2048m'; _JAVA_OPTIONS+=' -XX:PermSize=256m -XX:MaxPermSize=512m'; export _JAVA_OPTIONS } env.mvn(){ rm -f /usr/local/share/maven/default ln -s /usr/local/share/maven/mvn${1:-2} /usr/local/share/maven/default export M2_HOME=$(readlink -f /usr/local/share/maven/default) export MAVEN_HOME=$M2_HOME export M2=$M2_HOME/bin export PATH=$M2_HOME/bin:$PATH export MAVEN_OPTS+=' -Dcom.sun.management.jmxremote' alias mvn='env.jetty ; mvnDebug' } # jak potrzebuje użyć wersji 2 wpisuje env.mvn 2 # a jak wersji 3 env.mvn 3 Poza tym mnóstwo skryptów. Kiedyś szukałem jakiegoś notatnika dla programistów, gdzie można by było zapisywać fragmenty kodu, ale to jakoś nigdy nie działało. Dla każdego ciekawego fragment kodu poprostu robie skrypt z zastosowaniem. Niezawsze praktycznym, ale czasami ciekawe rzeczy wychodzą. Podobnie jest z aliasami. Nie pamiętam długich poleceń, niepamiętam nawet jak je składać. Każdą nową konstrukcję wpisuje do bashrc 1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 20, 2013 Zgłoszenie Share Napisano Marzec 20, 2013 Pobieranie zewnętrznego IP. alias getExternalIP='wget -qO - http://checkip.dyndns.com:8245/ | egrep --color=never -o "([0-9]{1,3}\.){3}[0-9]{1,3}"' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
SeeM Napisano Październik 12, 2014 Autor Zgłoszenie Share Napisano Październik 12, 2014 Mój nowy patent na dir: export LC_COLLATE=C alias 'dir'='ls -A -C --format=single-column --group-directories-first' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się