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áltozatKövetkező változatKövetkező változat mindkét oldalon | ||
linux [2020/06/25 12:00] – [Terminál doboz rajzolás] admin | linux [2023/03/29 09:34] – [Reboot, ha nem megy a szabályos reboot] admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
===== Linux okosságok ===== | ===== Linux okosságok ===== | ||
+ | |||
+ | ==== 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 57: | ||
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 88: | ||
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 113: | ||
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 154: | ||
# 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 171: | ||
</ | </ | ||
- | ==== 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 doboz rajzolás ==== | + | |
- | + | char *error; | |
- | env printf ' | + | |
- | + | if ((error | |
- | Karakterek: https:// | + | |
- | + | exit(1); | |
- | ==== Terminál kurzor pozícionálás ==== | + | } |
- | + | } | |
- | - Position the Cursor: | + | |
- | \033[< | + | |
- | | + | |
- | | + | |
- | 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 284: | Sor 263: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// |