User Tools

Site Tools



en:linux:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:linux:start [2021/10/31 13:10] – created franken:linux:start [2024/04/07 19:40] (current) – [LVM] frank
Line 1: Line 1:
 +====== Linux ======
 +https://wiki.debian.org/NetworkConfiguration
 +
 +https://wiki.debian.org/InstallingDebianOn/Allwinner
 +
 +  * [[Kernel]]
 +  * [[ubuntu18.4]] [[ubuntu20.4]]
 +  * [[LXC]]
 +  * [[Docker]]
 +  * [[virtualbox]]
 +  * [[GIMP]]
 +  * [[multimedia]]
 +  * [[wifi]]
 +===== Preferences =====
 +==== Titlebar-Icons ====
 +
 +  gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
 +==== Terminal-Width ====
 +  stty rows 50 cols 150
 +
 +if linebreak does not work this can help in ~/.bashrc:
 +
 +  shopt -s checkwinsize
 +  #if [ $(tty) == '/dev/ttyS0' ]; then
 +  #  trap resize DEBUG
 +  #fi
 +  #resize-befehl in xterm
 +  export PROMPT_COMMAND="resize &>/dev/null ; $PROMPT_COMMAND"
 +===== ppp ifup-script =====
 +
 +Script in /etc/ppp/ip-up.d must not have extension [[https://unix.stackexchange.com/questions/208343/vpn-script-at-etc-ppp-ip-up-d-not-autoexecuting-on-pptp-connection-establishe|Quelle]]
 +
 +example: ppp-default-route in separate routing-Table:
 +<code>
 +PPP_LOCAL=$4
 +PPP_REMOTE=$5
 +PPP_IFACE=$1
 +
 +ip route flush table telekom
 +ip route add $PPP_REMOTE/32 dev $PPP_IFACE src $PPP_LOCAL table telekom
 +ip route add default dev $PPP_IFACE table telekom
 +ip route show table telekom
 +exit 0
 +</code>
 +===== apt-get force ipv4 =====
 +
 +  apt-get -o Acquire::ForceIPv4=true update
 +
 +[[https://www.vultr.com/docs/force-apt-get-to-ipv4-or-ipv6-on-ubuntu-or-debian|Quelle]]
 +
 +permanent (as root):
 +
 +  echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99force-ipv4
 +
 +[[https://unix.stackexchange.com/a/100887|Quelle]]
 +===== basic x-server =====
 +
 +  apt-get install --no-install-recommends xserver-xorg xinit openbox policykit-1 xterm xfonts-base
 +
 +===== simple Mailserver =====
 +
 +as Relay-Server (sending Mails over external Mailserver) for System-purposes (infos, backup,...)
 +
 +https://linuxundich.de/gnu-linux/system-mails-ohne-einen-mail-server-mit-ssmtp-verschicken/
 +
 +===== screen =====
 +http://fractio.nl/2008/09/29/setting-session-name-in-screen/
 +
 +  screen -S Sessionname command
 +
 +===== wget =====
 +
 +
 +-P download in dir
 +
 +  wget <file.ext> -P /path/to/folder
 +
 +-O download as file
 +
 +  wget <file.ext> -O /path/to/folder/file.ext
 +
 +
 +===== processinfo =====
 +
 +  ps -o pid,args -C tcpdump
 +
 +===== ls =====
 +
 +full timestamps:
 +
 +  ls -l --time-style="+%Y-%m-%d %H:%M"
 +
 +deactivate colors:
 +
 +  ls -l --color=none
 +
 +===== bashrc / alias =====
 +
 +  alias cp="rsync -av --partial --progress"
 +  alias pynano="nano -ET4"
 +  alias catconf='find . -type f -exec grep -Iq . {} \; -printf "\n\n%p:\n" -exec cat {} \;'
 +===== nano =====
 +
 +Jump to line: Ctrl+Shift+- (Ctrl+_)
 +
 +Replace: Alt+R
 +
 +==== settings ====
 +
 +  sudo nano /etc/nanorc
 +
 +=== Cursorposition ===
 +
 +  ## Constantly display the cursor position in the status bar.  Note that
 +  ## this overrides "quickblank".
 +  set constantshow #temporär strg+C, 
 +
 +
 +=== linenumbers ===
 +
 +  ## Display line numbers to the left of the text.
 +  set linenumbers  # alt+# to disable temporarily
 +
 +=== TAB-width ===
 +
 +  #/etc/nanorc
 +  set tabsize 4
 +  #temporary setting it (e.g. for Patches)
 +  nano -T 8 datei
 +====== storage check ======
 +
 +  #filesystem:
 +  sudo fsck -f /dev/sdb1
 +  #check for bad sectors
 +  sudo badblocks -nsv /dev/sdb
 +
 +http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?t=2346
 +====== NTP ======
 +
 +  apt-get install ntp
 +  #nano /etc/ntp.conf # need restart after change
 +  service ntp status
 +  #show state of servers
 +  ntpq -p
 +
 +manual update:
 +
 +  service ntp stop
 +  ntpdate ptbtime1.ptb.de
 +  service ntp start
 +
 +====== set time ======
 +
 +  #timedatectl --help
 +  timedatectl set-timezone CET #timezone (CET/CEST)
 +  date -s "2020-10-29 19:14" #time
 +  hwclock -w #set RTC if there is any, else time will be wrong after next reboot
 +====== update-alternatives ======
 +
 +  sudo apt-get install gcc-8-arm-linux-gnueabihf
 +  sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 50
 +  sudo update-alternatives --config arm-linux-gnueabihf-gcc
 +  arm-linux-gnueabihf-gcc --version
 +
 +  #to create update-alternatives in a loop you can use this
 +  for i in $(ls /usr/bin/arm-linux-gnueabihf-gcc-{9..12});do sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc $i 50;done
 +
 +other example
 +
 +  sudo update-alternatives --install /usr/bin/calc calc /usr/bin/gnome-calculator 10
 +====== renaming ======
 +
 +File test will be renamed into test.bak (same directory)
 +
 +  mv /home/frank/test{,.bak}
 +
 +====== gunzip ======
 +
 +on-the-fly decompress and write to disk
 +
 +  gunzip -c bpi-r3_sdmmc_bullseye.img.gz | sudo dd bs=1M status=progress conv=notrunc,fsync of=/dev/sdX
 +
 +====== tar ======
 +
 +  tar -xzf file.tar.gz --strip-components 1 -C DESTINATION
 +
 +====== sed ======
 +
 +extract text between patterns:
 +
 +https://stackoverflow.com/questions/38972736/how-to-print-lines-between-two-patterns-inclusive-or-exclusive-in-sed-awk-or
 +
 +example (extract frequencies from iw command):
 +
 +  iw list | sed -n '/Frequencies/,/Band\|Supported commands/{/Band\|Supported commands/!p;}'
 +====== irssi ======
 +
 +===== config =====
 +
 +Server+nick:
 +
 +  irssi -n NICK #start irssi with nickname
 +
 +  /network add -nick NICK -autosendcmd "/msg nickserv IDENTIFY *******" fn
 +  /server add -auto -ssl -network fn chat.freenode.net 7070 #ports 6697, 7000 and 7070 for SSL-encrypted connections.
 +
 +  /SET nick xxx
 +  /SET alternate_nick xxx
 +  
 +  /nick alternatenick
 +  /msg NickServ IDENTIFY mainnick password
 +  /msg NickServ GROUP
 +
 +https://freenode.net/kb/answer/registration
 +
 +  /alias nick_recover msg NickServ GHOST $0 $1; wait 2000; msg NickServ RELEASE $0 $1; wait 2000; nick $0; wait 2000; msg NickServ IDENTIFY $1
 +  /network modify -autosendcmd "/nick_recover NICK PASSWORD" fn
 +  /SET server_reconnect_time 300
 +
 +https://irssi.org/documentation/startup/
 +===== switch windows =====
 +
 +  /window 1-x #1=server-window
 +
 +Ctrl+P (previous)/ctrl+N (next)
 +
 +  /win list #shows open windows in the Server-Status (1)
 +
 +===== Away mode =====
 +
 +  /away grund #start awaymode (Nachrichten shown in Server-window #1)
 +  /away #stop away mode
 +
 +
 +====== udev ======
 +
 +same serial-adapter with Symlink based on USB-Ports (behind Hub)
 +
 +https://askubuntu.com/questions/49910/how-to-distinguish-between-identical-usb-to-serial-adapters
 +
 +  udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0
 +
 +/etc/udev/rules.d/11-ttyusb.rules:
 +<code>
 +#r2 (first port) roothub-port.hubport
 +#    KERNELS=="1-3.1:1.0"
 +#    KERNELS=="1-3.1"
 +#r64 (second port=3)
 +#    KERNELS=="1-3.3:1.0"
 +#    KERNELS=="1-3.3"
 +KERNEL=="ttyUSB*", KERNELS=="*-*.1*", SYMLINK+="ttyUSB_R2"
 +KERNEL=="ttyUSB*", KERNELS=="*-*.3*", SYMLINK+="ttyUSB_R64"
 +</code>
 +
 +my current config splitting by serial
 +<code>
 +#ch340 KERNELS=="1-3.3" no serial
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="tty_r2pro"
 +#cp2102 KERNELS=="1-3.2"
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="010CB6FA", SYMLINK+="tty_r3"
 +#cp2104 KERNELS=="1-3.1"
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="0001", SYMLINK+="tty_r2"
 +</code>
 +
 +this udev rules i use for ftdi 4xuart adapter (FT4232H Quad RS232-HS)
 +<code>
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="ftdi_r2"
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ENV{ID_USB_INTERFACE_NUM}=="01", SYMLINK+="ftdi_r64"
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="ftdi_r3"
 +SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ENV{ID_USB_INTERFACE_NUM}=="03", SYMLINK+="ftdi_r4"
 +</code>
 +
 +easier way to get the main-properties of a device
 +
 +  udevadm info /dev/sdb1
 +====== sshd ======
 +===== qnap (entware) =====
 +
 +  nano /opt/etc/ssh/sshd_config #ggf. optionen anpassen (hostkey ecdsa/ed.../...)
 +  ps | grep ssh
 +  kill PID #PID= pid von /opt/sbin/sshd
 +  /opt/sbin/sshd -E /tmp/sshd.log -o LogLevel=DEBUG3
 +  tail -f /tmp/sshd.log
 +  #bei Fehler "Bad ownership":
 +  chmod go-w ~/;chmod 700 ~/.ssh;chmod 600 ~/.ssh/authorized_keys
 +  #wenn fertig
 +  /opt/etc/init.d/S40sshd restart
 +
 +====== kernel kernelconfig (/proc/config.gz) ======
 +
 +<code>
 +# modprobe configs
 +# zcat /proc/config.gz | grep -i hwmon
 +CONFIG_HWMON=y
 +# CONFIG_HWMON_DEBUG_CHIP is not set
 +# CONFIG_SENSORS_IIO_HWMON is not set
 +CONFIG_THERMAL_HWMON=y
 +</code>
 +====== mv-alternative ======
 +
 +  rsync -avh --progress --remove-source-files source target/
 +  #delete empty directories (not done by rsync)
 +  find source/ -type d -empty -delete
 +
 +====== other ======
 +===== force fsck =====
 +
 +in kernel-cmdline:
 +
 +  fsck.mode=force
 +
 +===== smartctl / hdparm =====
 +
 +<code>
 +smartctl -t short /dev/sdb
 +smartctl -a /dev/sdb | grep -A1 "Self-test execution status"
 +#Beispielausgabe:
 +Self-test execution status:      ( 249) Self-test routine in progress...
 + 90% of test remaining.
 +#oder:
 +Self-test execution status:      ( 121) The previous self-test completed having
 + the read element of the test failed.
 +
 +#warten bis fertig und bei Fehler:
 +smartctl -a /dev/sdb | grep '^#'
 +Beispielausgabe mit Fehler (long):
 +# 1  Extended offline    Completed: read failure       90%       267         1709921
 +
 +#sektor und angrenzende in Schleife versuchen neu zu schreiben
 +for i in {1709920..1709930};do hdparm --yes-i-know-what-i-am-doing --repair-sector $i /dev/sdb;sleep 1;done
 +</code>
 +
 +===== iostat =====
 +
 +  apt install sysstat
 +  
 +Ausgabe:
 +
 +<code>$ iostat -m -p /dev/sdb
 +Linux 5.15.0-56-generic (frank-G5) 29.12.2022 _x86_64_ (12 CPU)
 +
 +avg-cpu:  %user   %nice %system %iowait  %steal   %idle
 +           2,19    0,01    0,74    2,58    0,00   94,48
 +
 +Device             tps    MB_read/   MB_wrtn/   MB_dscd/   MB_read    MB_wrtn    MB_dscd
 +sdb               5,80         0,00         0,67         0,00          3       9123          0
 +sdb1              0,01         0,00         0,00         0,00          2          0          0
 +</code>
 +===== rc.local =====
 +
 +https://www.troublenow.org/752/debian-10-add-rc-local/
 +
 +===== VNC-Server =====
 +
 +based on https://www.scivision.dev/vncserver-setup-on-ubuntu/
 +
 +  apt install tightvncserver openbox
 +  apt install lxterminal firefox-esr --no-install-recommends
 +
 +~/.vnc/xstartup
 +<code>
 +#!/bin/sh
 +xrdb $HOME/.Xresources
 +xsetroot -solid grey
 +
 +unset SESSION_MANAGER
 +exec openbox-session &
 +</code>
 +
 +~/startVNC.sh
 +<code>
 +#!/bin/sh
 +vncserver :1 -geometry 1024x768 -depth 8
 +</code>
 +
 +do not forget to set execute rights
 +
 +  chmod +x ~/startVNC.sh ~/.vnc/xstartup
 +
 +i setart the script with rc.local (see above), but a init-script is also possible
 +
 +https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-18-04-de
 +
 +===== locales =====
 +
 +  /usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
 +
 +Solution:
 +
 +if not yet done, generate locales
 +
 +  locale-gen de_DE.UTF-8
 +
 +add this to /etc/environment:
 +
 +  LC_ALL=de_DE.UTF-8
 +  LANG=de_DE.UTF-8
 +
 +maybe again
 +
 +  dpkg-reconfigure locales
 +
 +now error should be fixed
 +
 +  locale -a
 +
 +Solution using /etc/default/locale was not working for me
 +
 +===== LVM =====
 +https://wiki.debian.org/LVM#Create_a_PV
 +
 +prepared initrd
 +<code>
 +  apt install initramfs-tools
 +  kernelversion=$(uname -r)
 +  echo $kernelversion
 +  zcat /proc/config.gz > /boot/config-$kernelversion
 +  less /boot/config-$kernelversion
 +  update-initramfs -k $kernelversion -c
 +</code>
 +
 +<code>
 +root@bpi-r3-mini:~# apt install lvm2
 +root@bpi-r3-mini:~# fdisk /dev/nvme0n1
 +#changed type of partition 3 to lvm
 +root@bpi-r3-mini:~# pvcreate /dev/nvme0n1p3
 +root@bpi-r3-mini:~# vgcreate vg-nvme /dev/nvme0n1p3                             
 +  Volume group "vg-nvme" successfully created
 +root@bpi-r3-mini:~# vgdisplay
 +  --- Volume group ---
 +  VG Name               vg-nvme
 +  System ID             
 +  Format                lvm2
 +  Metadata Areas        1
 +  Metadata Sequence No  1
 +  VG Access             read/write
 +  VG Status             resizable
 +  MAX LV                0
 +  Cur LV                0
 +  Open LV               0
 +  Max PV                0
 +  Cur PV                1
 +  Act PV                1
 +  VG Size               80.74 GiB                                               
 +  PE Size               4.00 MiB                                                
 +  Total PE              20670                                                   
 +  Alloc PE / Size       0 / 0                                                   
 +  Free  PE / Size       20670 / 80.74 GiB                                       
 +  VG UUID               w22Wdx-Fhch-YNsA-roWh-Zq81-qv0R-d5fnvw                  
 +                                                                                
 +root@bpi-r3-mini:~# lvcreate -n var -L 10g vg-nvme                              
 +  Logical volume "var" created.
 +root@bpi-r3-mini:~# mkfs -t ext4 /dev/vg-nvme/var
 +root@bpi-r3-mini:~# mount /dev/mapper/vg--nvme-var /var_lvm
 +[ 5279.856899] EXT4-fs (dm-0): mounted filesystem 520d434d-fdfc-48f3-823d-77e602
 +7e84e7 r/w with ordered data mode. Quota mode: disabled.
 +root@bpi-r3-mini:~#
 +</code>