meta data for this page
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
| Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
| linux [2020/05/19 10:05] – admin | linux [2024/03/12 16:57] (aktuális) – admin | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| ===== Linux okosságok ===== | ===== Linux okosságok ===== | ||
| + | |||
| + | ==== Dátum figyelés ==== | ||
| + | |||
| + | function date_diff() | ||
| + | { | ||
| + | date=' | ||
| + | epoch=$(date -d " | ||
| + | if [ " | ||
| + | #[[ " | ||
| + | echo At least 3 days ago | ||
| + | else | ||
| + | echo Too recent | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | |||
| + | ==== Reboot, ha nem megy a szabályos reboot ==== | ||
| + | |||
| + | # echo s > / | ||
| + | # echo u > / | ||
| + | # echo s > / | ||
| + | # echo b > / | ||
| + | |||
| + | This requests the kernel to do: | ||
| + | |||
| + | emergency sync of the block devices; | ||
| + | mount readonly of all filesystems; | ||
| + | again a sync; | ||
| + | force an immediate boot; (you can also use o for poweroff) | ||
| + | |||
| + | ==== dm-* device-ok felderítése ==== | ||
| + | |||
| + | find /dev/ -name " | ||
| + | ==== SCSI (re)scan ==== | ||
| + | |||
| + | #!/bin/sh | ||
| + | for I in `ls -d / | ||
| + | echo ${I} | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | #!/bin/sh | ||
| + | for I in `ls -d / | ||
| + | echo ${I} | ||
| + | echo "- - -" > ${I}/scan | ||
| + | done | ||
| + | |||
| + | |||
| + | ==== Yum-mal telepített csomagok listázása log fájlból ==== | ||
| + | |||
| + | cat / | ||
| + | ==== Disk perf. teszt DD-vel ==== | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | echo -n "Fajl nev: " | ||
| + | read FNEV | ||
| + | echo -n "Blokk meret (Byte): " | ||
| + | read BS | ||
| + | echo -n "Fajl meret (MByte): " | ||
| + | read FS | ||
| + | COUNT=$((FS*1024*1024 / $BS)) | ||
| + | COUNT=$(echo $COUNT | sed ' | ||
| + | echo -n "Diszk irasa (dd if=/ | ||
| + | SEC=$(timex dd if=/ | ||
| + | echo " | ||
| + | </ | ||
| ==== BOOT probléma ==== | ==== BOOT probléma ==== | ||
| Sor 5: | Sor 72: | ||
| GRUB menüben a " | GRUB menüben a " | ||
| + | ==== ~/.vimrc ==== | ||
| + | |||
| + | set number background=dark | ||
| + | syntax on | ||
| + | highlight Comment | ||
| + | highlight Identifier ctermfg=99AA00 | ||
| + | set ts=4 sw=4 | ||
| + | undolevels=1000 | ||
| ==== RAID megoldások ==== | ==== RAID megoldások ==== | ||
| Sor 28: | Sor 103: | ||
| lvdisplay -C -S lv_role=snapshot | lvdisplay -C -S lv_role=snapshot | ||
| - | ==== SSH kilép aciklusból az első futás után ==== | + | ==== sudo jog másik userhez |
| + | |||
| + | non-root-user ALL = (appuser) NOPASSWD: ALL | ||
| - | ssh -n ... | ||
| ==== NMON adatgyűjtés ==== | ==== NMON adatgyűjtés ==== | ||
| Sor 52: | Sor 128: | ||
| nmon -f -s $INTERVAL -c $SAMPLES | nmon -f -s $INTERVAL -c $SAMPLES | ||
| </ | </ | ||
| - | |||
| - | ==== Ismétlődő sorok számolása ==== | ||
| - | |||
| - | cat file | sed ' | ||
| - | |||
| - | ==== User input default értékkel ==== | ||
| - | |||
| - | DEFAULT=" | ||
| - | read -e -p "Mit akarsz?" | ||
| - | VALTOZO=" | ||
| - | ==== /dev/stdin üres-e? (Van-e adat a pipe-ban?) ==== | ||
| - | |||
| - | [ ! -t 0 ] | ||
| - | |||
| - | ==== Bekezdésre greppelés Linux alatt (AIX: grep -p) ==== | ||
| - | |||
| - | awk ' | ||
| ==== Email címek extraktálása AIX alatt ==== | ==== Email címek extraktálása AIX alatt ==== | ||
| Sor 110: | Sor 169: | ||
| # Get current swap usage for all running processes | # Get current swap usage for all running processes | ||
| # Erik Ljungstrom 27/05/2011 | # Erik Ljungstrom 27/05/2011 | ||
| + | echo " | ||
| SUM=0 | SUM=0 | ||
| OVERALL=0 | OVERALL=0 | ||
| Sor 126: | Sor 186: | ||
| </ | </ | ||
| - | ==== Sztringek hexa értelmezésének kiküszöbölése ==== | ||
| - | |||
| - | Pl: | ||
| - | $((10#`date +%H`)) | ||
| - | |||
| - | ==== A grep " | ||
| - | |||
| - | perl -lne '/ | ||
| ==== Törölt fájlok, amik nem szabadították még fel a helyet ==== | ==== Törölt fájlok, amik nem szabadították még fel a helyet ==== | ||
| lsof |(sed 1q; grep deleted) | lsof |(sed 1q; grep deleted) | ||
| - | ==== BASH változó manipulációk | + | |
| + | ==== Hosszú processz végeztéről értesítő email ==== | ||
| - | ^Syntax^Meaning^ | + | < |
| - | |${#var} | String length (number of characters in $var).| | + | #!/bin/bash |
| - | |${var%%^%%} | Uppercase first alphanumeric character in $var.| | + | MAILTO=" |
| - | |${var%%^^%%} | Uppercase alphanumeric characters in $var.| | + | SSH=" |
| - | |${var%%^^%%[p,g]} | Uppercase alphanumeric characters in $var matching p or g.| | + | while [ $($SSH "ps -ef | awk '{print $2}'" |
| - | |${parameter? | + | sleep 60 |
| - | |${parameter-default}, | + | done |
| - | |${parameter=default}, | + | echo Lefutott |
| - | |${parameter+alt_value}, | + | </file> |
| - | |${var# | + | |
| - | |${var## | + | |
| - | |${var%Pattern} | Remove from $var the shortest part of $Pattern that matches the back end of $var.| | + | |
| - | |${var%%%%Pattern} | Remove from $var the longest part of $Pattern that matches the back end of $var.| | + | |
| - | |${var:pos} | Variable var expanded, starting from offset pos.| | + | |
| - | |${var: | + | |
| - | |${var/Pattern/ | + | |
| - | |${var%%// | + | |
| - | |${var/# | + | |
| - | |${var/ | + | |
| - | |${!varprefix*}, | + | |
| - | forrás: [[http:// | + | ==== processz elrejtése a PS kimenetből ==== |
| - | ==== Gyakori BASH RC kódok ==== | ||
| - | ^Exit Code Number ^Meaning ^Example ^Comments^ | + | < |
| - | |1 |Catchall for general errors |let "var1 = 1/0" | + | /* https://unix.stackexchange.com/ |
| - | |2 |Misuse of shell builtins (according to Bash documentation) |empty_function() {} |Missing keyword or command| | + | * capture calls to a routine and replace with your code |
| - | |126 |Command invoked cannot execute |/dev/null |Permission problem or command is not an executable| | + | * gcc -Wall -O2 -fpic -shared -ldl -o shim_main.so shim_main.c |
| - | |127 |" | + | * LD_PRELOAD=/ |
| - | |128 |Invalid argument | + | */ |
| - | |128+n |Fatal error signal " | + | #define _GNU_SOURCE /* needed to get RTLD_NEXT defined |
| - | |130 |Script terminated by Control-C |Ctl-C |Control-C is fatal error signal 2, (130 = 128 + 2, see above)| | + | #include < |
| - | |255* |Exit status out of range |exit -1 |exit takes only integer args in the range 0 - 255| | + | #include < |
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| - | ==== Hiba csatorna színezése ==== | + | typedef int (*pfi)(int, char **, char **); |
| + | static pfi real_main; | ||
| - | $ parancs 2> >(while read line; do echo -e "\e[01;31m$line\e[0m"; | + | /* copy argv to new location */ |
| - | + | char **copyargs(int argc, char** argv){ | |
| - | ==== Bash színkódok törlése szövegből ==== | + | char **newargv = malloc((argc+1)*sizeof(*argv)); |
| + | char *from,*to; | ||
| + | int i,len; | ||
| - | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | + | for(i = 0; i<argc; i++){ |
| + | from = argv[i]; | ||
| + | len = strlen(from)+1; | ||
| + | to = malloc(len); | ||
| + | memcpy(to, | ||
| + | memset(from,'\0', | ||
| + | newargv[i] = to; | ||
| + | argv[i] = 0; | ||
| + | } | ||
| + | newargv[argc] = 0; | ||
| + | return newargv; | ||
| + | } | ||
| - | ==== Dátumos prompt képernyőmentéses dokumentáláshoz ==== | + | static int mymain(int argc, char** argv, char** env) { |
| + | fprintf(stderr, | ||
| + | return real_main(argc, | ||
| + | } | ||
| - | export PS1=' | + | int __libc_start_main(pfi main, int argc, |
| + | char **ubp_av, void (*init) (void), | ||
| + | void (*fini)(void), | ||
| + | void (*rtld_fini)(void), | ||
| + | static int (*real___libc_start_main)() = NULL; | ||
| - | ==== Terminál kurzor pozícionálás ==== | + | |
| - | + | char *error; | |
| - | - Position the Cursor: | + | |
| - | \033[< | + | if ((error |
| - | | + | |
| - | | + | exit(1); |
| - | puts the cursor at line L and column C. | + | } |
| - | - Move the cursor up N lines: | + | } |
| - | \033[< | + | |
| - | - Move the cursor down N lines: | + | |
| - | \033[< | + | |
| - | - Move the cursor forward N columns: | + | |
| - | \033[< | + | |
| - | - Move the cursor backward N columns: | + | |
| - | \033[< | + | |
| - | + | ||
| - | - Clear the screen, move to (0,0): | + | |
| - | \033[2J | + | |
| - | - Erase to end of line: | + | |
| - | \033[K | + | |
| - | + | ||
| - | - Save cursor position: | + | |
| - | \033[s | + | |
| - | - Restore cursor position: | + | |
| - | \033[u | + | |
| - | + | ||
| - | ==== " | + | |
| - | v1: | + | |
| - | < | + | |
| - | a=1 | + | |
| - | sp="/-\|" | + | |
| - | echo -n ' ' | + | |
| - | while true | + | |
| - | do | + | |
| - | printf | + | |
| - | done | + | |
| - | </ | + | |
| - | v2: | + | |
| - | < | + | |
| - | spinner() | + | |
| - | { | + | |
| - | local pid=$1 | + | |
| - | local delay=0.75 | + | |
| - | local spinstr=' | + | |
| - | while [ "$(ps a | awk ' | + | |
| - | | + | |
| - | | + | |
| - | local spinstr=$temp${spinstr%" | + | |
| - | sleep $delay | + | |
| - | printf " | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| - | </ | ||
| - | |||
| - | ==== Színkódok és sorvég karakterek kivágása szövegből ==== | ||
| - | |||
| - | A ^M-et így: CTRL+V, CTRL+M !! | ||
| - | sed -i -e ' | ||
| - | |||
| - | ==== Parancsok csoportosítása ==== | ||
| - | |||
| - | Új shellben: | ||
| - | (parancs1) | ||
| - | | ||
| - | Aktuális shellben: | ||
| - | { parancs1; } | ||
| - | | ||
| - | ==== Hosszú processz végeztéről értesítő email ==== | ||
| - | |||
| - | < | ||
| - | #!/bin/bash | ||
| - | MAILTO=" | ||
| - | SSH=" | ||
| - | while [ $($SSH "ps -ef | awk ' | ||
| - | sleep 60 | ||
| - | done | ||
| - | echo Lefutott | mail -s " | ||
| </ | </ | ||
| Sor 278: | Sor 278: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||