Hasznos parancssori eszkozok

Revision as of 09:08, 29 July 2021 by Adam (talk | contribs) (Zip/Unzip)

Revision as of 09:08, 29 July 2021 by Adam (talk | contribs) (Zip/Unzip)

Contents

Midnight commander

Select all

Crtl + Shfit + (hármas gomb, amin a '+' van). Ekkor megjelenik egy pattern alapján választó. Ide ha '*'-ot írunk be, akkor kijelöli az összes fájlt.


Screenshot aktív menüről

Az a baj, hogy ha aktív egy felugró menü, akkor a PrtScrn gomb nem működik. Ekkor késleltetéssel parancssorból meg tudjuk hívni a gnome-screenshot programot, amia PtrScrn gomb megnyomásakor is lefut. Meg lehet neki adni egy késleltetést, ami alatt meg tudjuk nyitni a kívánt menü elemet:

$ gnome-screenshot -d 5

A végeredmény a felhasználó Images mappájába fog kerülni.

Flash plugin

Az adobe-nak van egy saját repozitorija Fedora-hoz:

# dnf install http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm

# dnf install flash-plugin

Indítsuk újra a firefox-ot. Telepítés után ne töröljük le a repót, mert állítólag rendszeresen jönnek hozzá frissítések a Windows-os verzióval párhuzamosan.

Tesztoldal: http://www.adobe.com/software/flash/about/

Zip/Unzip

A WinZip 9 -el (és újabb) készült ZIP eket a linuxos unzip nem tudja kitömöríteni, pláne ha azok jelszóval vannak védve. Ehhez a 7z-t kell feltelepíteni

# dnf install p7zip p7zip-plugins

Használata:

$ 7z file.zip


JSON pritty print (formázás)

echo '{"name1":"value1" ...}' | jq .

Hálózat és process-ek

Port

Ki hallgatózik egy porton

# netstat -tulpn | grep :9998
tcp        0      0 0.0.0.0:9998                0.0.0.0:*                   LISTEN      13156/java

Elérhető a port

# nc -vz host.example.hu 8042


Processek

Process list without ps

bash-4.2$  find /proc -mindepth 2 -maxdepth 2 -name exe -exec ls -lh {} \; 2>/dev/null
lrwxrwxrwx. 1 1000200000 root 0 Oct  8 07:47 /proc/1/exe -> /jre/bin/java
lrwxrwxrwx. 1 1000200000 root 0 Oct  8 09:39 /proc/262/exe -> /usr/bin/bash
lrwxrwxrwx. 1 1000200000 root 0 Oct  8 10:01 /proc/280/exe -> /usr/bin/find


Command line arguments

cat /proc/<pid>/cmdline



Média manipuláció

Kép átméretezés

$ mogrify -quality 70% *.jpg
$ mogrify -resize 80% *.JPG


Video forgatás és méretezés

$ ffmpeg -i in.mp4 -c copy -metadata:s:v:0 rotate=180 out.mp4
$ find . -name "*.mp4" -exec sh -c 'ffmpeg -i {} -filter:v scale=800:-1 -c:a copy {}_1.mp4' \;

Video konvertálás

$ mencoder Rust And Bone.2012.BRRip.x264-VLiS.mp4 -oac pcm -ovc copy -o Rust And Bone.2012.BRRip.x264-VLiS.avi

File/mappa manipuláció/keresés

Fájl/mappa dátumok

Részletes fájl létrehozási dátum:

ls -l --time-style=long-iso <filenév>


Mappa méret

# du -sh *


Interaktív fájl browser, ami kiírja a mappa méretét. Rendezni és törölni is lehet vele. Ráadásul alapból méret szerint rendezi. Zseniális!

# ncdu

Fájlok csoportos átnevezése

Az összes .bak fájlt átnevezi txt-re

$ rename .bak .txt *.bak

CD ROM mount

# mount /dev/sr0  /mnt

PDF

Dock konvertálása PDF-re

# libreoffice --headless --convert-to pdf *.doc

PDF átméretezés

# convert -density 120x120 -quality 60 -compress jpeg TSZ.pdf output.pdf

Keresés PDF-ben

A PDF-ek belsejében a pdftotext programmal keresünk. Ez a " poppler-utils" csomagban van.

$ find . -name '*.pdf' -exec echo {} \; -exec pdftotext {} - \; | grep "pattern\|pdf"

Azért kell a végére a pattern után a |pdf, hogy a fájlok nevét is kiírja a találat elé, hogy tudjuk, hogy hol találta meg a patternt. pl:

./CPFM-F2RCash-StockManagement-290816-1600-104_questionsByAdam.pdf

./F2RCash-Interfacedescriptions v06_by_adam.pdf
7. IOL Interface
7. IOL Interface
forwarded immediately to the Customer (IOL Channel).

The file to be sent is in pdf format:
: GCAE_DIFFPROT_<GRID-ID>_<parcel-ID>_<date-time>.pdf
: copy of the pdf in the AcceptProtocol sent by the CIT
: <Name of the pdf file> <GRID-ID of customer involved> separated by a space (multiple entries are

./F2RCash-GenericServices v0.5.pdf

Láthatjuk, hogy minden PDF fájlt kiír, amit megvizsgált, de és ott ahol a tartalomban megtalálta a pattern-t ott kiírta azt a sort, amiben volt egyezés.

Összes fájl rekurzív másolása egy közös mappába

Ha egy adott típusú fájlból az összeset össze szeretnénk rekurzívan gyűjteni, akkor:

find . -name \*.jar -exec cp {} /home/adam/Projects/ING/Programs/findbugs-3.0.1/extra_alecash_libs/ \;


Base64

Az echo parancs rárak a string végére egy fájl vége karaktert. Ha jelszót kell base64-esre kódolni, akkor fontos, hogy ezt levágjuk róla mielőtt meghívjuk a base64-es parancsot, különben ha a jelszót kezelő rendszerben nincs trim, nem fogja elfogadni.

echo "this is the text" | head --bytes=-1 | base64 > valami.txt



Alapértelmezetten 76 karakterenként új sort kezd. Ha egy sorba akarjuk kiírni a base64-et, akkor a -w (wrap) -el meg kell mondani milyen hosszú legyen a sor. 0 esetén nem töri meg a sort:

echo "this is the text" | base64 -w 0 > valami.txt


Magyar helyesírás ellenőrző

A helyesírást az aspell programmal fogjuk ellenőrizni. Telepítsük fel az aspell-t:

# dnf install aspell

Majd fel kell rakni az aspell magyar szótárát. Ez nincs benne a repóba, innen letölthető: ftp://ftp.gnu.org/gnu/aspell/dict/0index.html vagy innen: http://mirrors.ibiblio.org/gnu/ftp/gnu/aspell/dict/hu/

Ezt kell letölteni: aspell6-hu-0.99.4.2-0

Ezt tömörítsük ki és másoljuk a programok közé, majd:

# ./configure
Finding Dictionary file location ... /usr/lib64/aspell-0.60
Finding Data file location ... /usr/lib64/aspell-0.60
# make
# make install

Ezután még szükség lesz a enchant-aspell telepítésére is, ami inegrálja az aspell szótáráakat a enchant szótárakba, amit az Evolution is használ:

# dnf install enchant-aspell 

Indítsuk újra az Evolution-t, majd a Preferences -> Conposer preferences -> Spell checker fülön pipáljuk be, hogy a magyart is ellenőrizze, így egyszerre fogja az angolt és a magyart kezelni.

Listázása az elérhető szótáraknak:

# aspell dump dicts
hu


Fedora 31:

# dnf install hunspell-hu


Teams for Linux

Mindig azon a nyelven ellenőri a helyesírást, ami be van állítva APP nyelvnek (tehát nem keyboard nyelvnek). A szótárakat itt árolja

/home/adam/.config/Microsoft/Microsoft Teams/dictionaries/

Mikor átállítjuk az APP nyelvet, akkor automatikusan lehúzza a beállított nyelv bdic szótárát.

$ ls -l
total 3160
-rw-r--r--. 1 adam adam  446642 2020 febr   7 en-US.bdic
-rw-r--r--  1 adam adam 2784888 szept 18 16.48 hu-HU.bdic

Wine-2.0

Fedora 22 és újabb esetében a dnf -el fel lehet telepíteni. Az attól régebbi rendszeren sajnos kézzel kell, ami elég gyötrelmes. Az alábbi csomagokat az alábbi sorrendben le kell tölteni, és lefordítani (./configure, make, make isntall). A make install-t mindig root-ként. Ahol trükkös a fordítás, ott külön kiemeltem. Ahol nem, ott csak ezt a hármat ki kell sorban adni.

Függőségek telepítése

  1. libxml2-2.9.4
  2. libxslt-1.1.28 (függőség: libxml2)
  3. nettle-3.3
  4. libtasn1-4.9
  5. gnutls-3.5.8 (függőség: libtasn1, nettle)
  6. libtool-2.4
  7. json-c-master
  8. pulseaudio-9.0 (függőség: libtool, json-c-master)


nettle

root-ként:

# ./configure --prefix=/usr --disable-static &&
make

# make install &&
chmod   -v   755 /usr/lib/lib{hogweed,nettle}.so &&
install -v -m755 -d /usr/share/doc/nettle-3.3 &&
install -v -m644 nettle.html /usr/share/doc/nettle-3.3

gnutls

root-ként:

# ./configure --prefix=/usr             --with-default-trust-store-file=/etc/ssl/ca-bundle.crt --with-included-libtasn1 --with-included-unistring --without-p11-kit

json-c-master

# sh autoreconf --force --install

# ./configure
# make  ---->>>>>> ez itt elszáll, és enélkül nem lesz hang :(
# make install

pulseaudio-9.0 (hang)

# ./configure --prefix=/usr                    --sysconfdir=/etc                --localstatedir=/var             --disable-bluez4                 --disable-rpath    --without-caps
# make
# make install

WIN telepítése

64 bites rendszeren:

# ./configure --enable-win64
# make

# make install

OCR

# dnf install gimagereader*

Email szerver tesztelése

 mailx -v -S smtp=192.168.10.1 -r berki.adam@alerant.hu -s test-v farkas.zsuzsanna@alerant.hu < body.txt 

RPM műveletek

Rpm csomag dependenciáinak átírása

Főként ha alien-el deb csomagot forgatunk át RPM-be, előállhat, hogy az abban lévő file művelet ütközni fognak az operációs rendszer mappáival, mert már léteznek:

Error: Transaction check error:
  file / from install of kitematic-0.13.1-2.x86_64 conflicts with file from package filesystem-3.2-40.fc26.x86_64
  file /usr/bin from install of kitematic-0.13.1-2.x86_64 conflicts with file from package filesystem-3.2-40.fc26.x86_64

Ehhez az rpmrebuild eszközzel át kell írni a fájl/mappa létrehozó szekciót az RPM-en belül. Elsőnek állítsuk be, hogy az editor az mcedit legyen, majd indítsuk el:

$ export EDITOR=mcedit
$ rpmrebuild -pe kitematic-0.13.1-2.x86_64.rpm

In the '%files' section remove these lines:

%dir %attr(0755, root, root) "/"
%dir %attr(0755, root, root) "/usr"
%dir %attr(0755, root, root) "/usr/bin"
%dir %attr(0755, root, root) "/usr/share"

Majd mentsük el a fájlt. Ekkor rá fog kérdezni, hogy folytatjuk e, mondjuk hogy igen. Ekkor elszöszöl egy darabig, amíg újra fordítja, majd a végeredményt beteszi ide: /home/adam/rpmbuild/RPMS/x86_64


Debian csomagok átforgatása

# alien -r boostnote-0.11.9-2.x86_64.deb

Töröljük ki a konfliktáló sorokat a %file szekcióból:

# export EDITOR=mcedit

# rpmrebuild -pe boostnote-0.11.9-2.x86_64.rpm

Ez újra fogja csomagolni, és ide fogja rakni: /root/rpmbuild/RPMS/x86_64/


WhatsApp desktop

[Desktop Entry]
Type=Application
Name[en_US.UTF-8]=WhatsApp
X-GNOME-FullName[en_US.UTF-8]=WhatsApp
Comment[en_US.UTF-8]=WhatsApp desktop client
Icon=/home/adam/Programs/whatsApp/whatsApp.png
NoDisplay=false
Exec=google-chrome --app=https://web.whatsapp.com/ --window-size=800,600 --user-data-dir=/home/adam/.config/chromium-whatsapp --class=chromium-whatsapp %U
Path=
Terminal=false
X-GNOME-UsesNotifications=true
Categories=Network;
StartupWMClass=web.whatsapp.com



Gnome ikon probléma

Ha a Baloldali Dash-to-dock -ban ronda az ikonja a futó alkalmazásnak, akkor meg kell szerezni az alkalmazás osztályát

$ xprop WM_CLASS

Ekkor keresztre változik a pointer. Kattintsunk a futó alkalmazás ablakára, a whatsapp esetén valahol a belsejébe az ablaknak. Ekkor a xprog ki fogja írni az alkalmazás osztályait:

$ xprop WM_CLASS
WM_CLASS(STRING) = "web.whatsapp.com", "chromium-whatsapp"

A .desktop fájl végére írjuk ezt:

...
StartupWMClass=web.whatsapp.com




CPU frekvencia beállítása

CPU profil listázása:

# cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 400 MHz - 4.80 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 400 MHz and 1.90 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 800 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
  • Jelenlegi fogyasztás: 800 Mhz
  • Tartomány: 400 - 4800 Mhz


Elérhető profilok listázása:
A profil a min és a max frekvenciát határozza meg. Azt láthatjuk, hogy az elsődleges a performance, a másodlagos a powersave. A Perofmance engedi a maximumig felvinni a fogyasztást. Ez nem feltétlen praktikus, mert nagyon hamar lemeríti az akut.

# cpupower frequency-info --governors
analyzing CPU 0:
  available cpufreq governors: performance powersave


Profil váltás: (ennek szerintem semmi hatása)

# cpupower frequency-set --governor powersave


Hogyan szabályozzuk:
Ehhez egy gnome plugin-t kell feltenni, amit a software installer-el is fel tudunk tenni: CPU Power Manager

ClipCapIt-200303-181323.PNG

Be lehet állítani, hogy az elérhető négy profil-ban milyen tartományban legyen a CPU. Ezen felül, hogy mi legyen a profil ha aksiról megy illetve ha töltőn van. A jobb felső sarokba megjelenik a pillanatnyi fogyasztás, ahol egy mozdulattal át is állíthatjuk.



Remarkable markdown editor

Add RPM Fusion repositories to your system
Download latest rpmsphere-release rpm from
https://github.com/rpmsphere/noarch/tree/master/r
Install rpmsphere-release rpm:
# rpm -Uvh rpmsphere-release*rpm
Install remarkable rpm package:
# dnf install remarkable

dnf install gtksourceview3


Billentyűzet parancsok (keyboard)

Ha elromlik a kiosztás

$ setxkbmap hu

Nyelv váltás

Special + Space


Microsoft MS teams

Miért nem működik a képernyő megosztás:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  73 (X_GetImage)
  Serial number of failed request:  7
  Current serial number in output stream:  7


Azt írják, hogy lehet hogy az a baj, hogy Fedora11-ben nem X11-van hanem "wayland". És ez igaz, ez látszik is a lenti paranccsal. Az első megszerzi a session id-t a második megmondja a típusát:

$ loginctl
SESSION  UID USER SEAT  TTY 
      2 1000 adam seat0 tty2


$ loginctl show-session 2 -p Type
Type=wayland


Az X11 elavult és átveszi a világban a helyét a wayland, aminek van X11 emulált interfésze a backwords kompatibilitás miatt, de a Microsoft Teams nem tudja teljesen jól használni a wayland-ot, sajnos a Teams egy 100%-ban X11-re írt alkalmazás :(

Egy megoldás van: Vissza kell váltani X11-re, ah tényleg akarjuk használni a megosztást. Gondolom ezzel egy csomó Wayland funkciót elvesztünk, tehát mérlegelni kell.

https://www.faschingbauer.me/blog/2020/03/ms-teams-on-linux.html

Lényeg: In /etc/gdm/custom.conf, a .ini style configuration file, you see the [daemon] section,

Ehelyett:

[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
#DefaultSession=gnome-xorg.desktop

Ez kell:

[daemon]
WaylandEnable=false
DefaultSession=gnome-xorg.desktop
ImportantIcon.png

Note
Elég volt, hogy a 'WaylandEnable false' sort visszaraktam, mivel az alapértelmezett értéke true. Nem volt szükség a 'DefaultSession' re

Ez a jó érték ha teams-t akarunk használni:

$ loginctl show-session 2 -p Type
Type=x11



Android screen sharing

Sokféle képen meg lehet osztani a screent, itt van egy lehetséges megoldás: https://www.maketecheasier.com/cast-android-screen-linux-desktop/

Ez a Vysor app-ra épül, ami google extension -ként is futtatható meg natívan is elérhető. Ugyan ezt az app-t a telefonra is fel kell tenni és engedélyezni kell az USB debug módot, és egy USB kábellel össze kell kötni a telefont a PC-vel.

A hangot is át tudja hozni, de csak a fizetős verzió.



Android sound mirroring to Linux

Fel kell telepíteni a gmediarender programot, ami egy audio renderer, amit Upnp programok tudnak használni mint lokális renderer, többek között a BubbleUpnp.

Indítsuk el a saját user-ünke. A -f után adjunk egy nevet a renderer-nek.

$ gmediarender -f linuxBox
gmediarender 0.0.8 started [ gmediarender 0.0.8 (libupnp-1.8.4; glib-2.62.2; gstreamer-1.16.1) ].
Logging switched off. Enable with --logfile=<filename> (or --logfile=stdout for console)
Ready for rendering.

Nyissuk meg az Android-on a BubbleUpnp-t, majd More (bal alul) majd "select renderer" jobbról a második ikon. Itt a listában meg kell jelenjen a gmediarender azzal a névvel amit adtunk neki:

ClipCapIt-200514-181916.PNG

Válasszuk ki. Ekkor ha bármit elkezdünk a BubbpleUpnp-ben lejátszani, akkor meg fog mellette jelenni a gmediarender ikonja a jobb alsó sarokban:

ClipCapIt-200514-182043.PNG

Ha most megnyitjuk a pavucontrol audió beállító programot, akkor ott megjelenik benne a gmediarender is:

$ pavucontrol
ClipCapIt-200514-182243.PNG

Itt kontrollálhatjuk a hangerejét annak amit az Android-on a BubbleUpnp-ben lejátszunk, hogy milyen hangerővel szóljon a Linux fejhallgatóban.



Boxes

ClipCapIt-201014-004330.PNG

Guest program telepítése

https://www.spice-space.org/download.html

Képernyő felbontás és copy-past

Fel kell telepíteni a spice-guest-tools-latest.exe-t. Amit innen lehet letölteni: https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe
Már a telepítés közben helyre áll a felbontás, és menni fog a full-screen újraindítás nélkül.

Fájl megosztás

Ehhez le kell tölteni a spice-webdav klienst innen: https://www.spice-space.org/download/windows/spice-webdavd/
Itt jobb egérrel Save as-el kel kell menteni és át kell nevezni ...msi kiterjesztésre a windows gépen. Majd fel kell telepíteni.

https://elmarco.fedorapeople.org/manual.html
Ha kész van, akkor: register the drive by running map-drive.bat from Program Files/Spice webdav

https://docs.druva.com/Knowledge_Base/inSync/Troubleshooting/WebDAV_download_fails_with_file_size_exceeds__the_limit_error
Be kell állítani, hogy nagy fájlokat is lehessen másolni:

  1. Click Start, type regedit in the Start Search box, and then press ENTER.
  2. Open the registry editor (using regedit on the Windows Start menu) by typing: regedit
  3. Locate and click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
  4. Select DWORD FileSizeLimitInBytes. Go to Edit > Modify. In the Value data box, enter 4294967295 and then click OK. This sets the maximum you can download from the WebDAV to 4 GB at one time, where 4 GB is the maximum value supported by Windows OS.
  5. Exit Registry Editor and restart the Web Client Service

Fontos, hogy szabályosan újraindítsuk a virtuális gépet, különben el fog veszni a registry beállítás. Az újraindítás után fog csak működni a nagy fájlok másolása.

Skype for business

Sajnos Chrome-ban nem megy, és Firefox 52-től sem megy már Linuxo-on. D

De van egy fizetős app, ami teljes körű sykpe for business funkcionalitást ad Linux-ra:

https://tel.red/linux.php

DNF update hiba

Ha elér a Fedora verizó az élettartama végére, akkor átkerül a archived repo-ba, és az eredeti URL-en már többet nem updatelhető:

Copr repo for v4l2loopback owned by sentry                                                                              314  B/s | 341  B     00:01    
Errors during downloading metadata for repository 'copr:copr.fedorainfracloud.org:sentry:v4l2loopback':
  - Status code: 404 for https://download.copr.fedorainfracloud.org/results/sentry/v4l2loopback/fedora-31-x86_64/repodata/repomd.xml (IP: 52.85.121.14)
Error: Failed to download metadata for repo 'copr:copr.fedorainfracloud.org:sentry:v4l2loopback': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

Amikor ez a hiba jött, akkor látható is, hogy ha a böngészőben megnyitom a fenit URL-lt, hogy a 31-ből már nincs ott az x86_64:


Name↓	Last Modified:	Size:	Type:
../	 	 	Directory
fedora-23-ppc64le/	2019-Nov-01 19:11:44	-- 	Directory
fedora-24-ppc64le/	2019-Nov-01 19:11:43	-- 	Directory
fedora-26-ppc64le/	2019-Nov-01 19:11:43	-- 	Directory
fedora-31-ppc64le/	2020-Oct-25 08:10:03	-- 	Directory
fedora-32-ppc64le/	2020-Oct-25 08:10:03	-- 	Directory
fedora-32-x86_64/	2021-Mar-29 21:03:58	-- 	Directory
fedora-33-ppc64le/	2020-Oct-25 08:10:09	-- 	Directory
fedora-33-x86_64/	2021-Mar-29 21:03:48	-- 	Directory
fedora-34-ppc64le/	2021-Feb-17 23:02:46	-- 	Directory
fedora-34-x86_64/	2021-Mar-29 21:03:14	-- 	Directory
fedora-rawhide-i386/	2021-Mar-26 14:03:11	-- 	Directory
fedora-rawhide-ppc64le/	2020-Oct-25 08:10:08	-- 	Directory
fedora-rawhide-x86_64/	2021-Mar-29 21:03:52	-- 	Directory
srpm-builds/	2021-Mar-29 21:03:10	-- 	Directory
pubkey.gpg	2021-Mar-29 21:03:58	1010.00B 	GPG File

A 32-ből még ott van, de a 31 eltűnt. Átkerült az archived repo-ba, aminek ez az URL-je:

https://archives.fedoraproject.org/pub/archive/fedora/linux/updates/

Itt viszont más a sub-folder képzés. Láthatjuk hogy korábban így volt:

/fedora-$releasever-$basearch/

Vagyis elsnek jött a verzió aztán meg az architektúra.

Ehelyett viszont az archive-ban így van:

$releasever/Everything/$basearch/

Ezt itt kell átírni: /etc/yum.repos.d/v4l2loopback.repo

[copr:copr.fedorainfracloud.org:sentry:v4l2loopback]
name=Copr repo for v4l2loopback owned by sentry
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/$releasever/Everything/$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/sentry/v4l2loopback/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

Majd:

# dnf update --refresh