Hasznos parancssori eszkozok
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
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
- libxml2-2.9.4
- libxslt-1.1.28 (függőség: libxml2)
- nettle-3.3
- libtasn1-4.9
- gnutls-3.5.8 (függőség: libtasn1, nettle)
- libtool-2.4
- json-c-master
- 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
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
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:
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:
Ha most megnyitjuk a pavucontrol audió beállító programot, akkor ott megjelenik benne a gmediarender is:
$ pavucontrol
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
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:
- Click Start, type regedit in the Start Search box, and then press ENTER.
- Open the registry editor (using regedit on the Windows Start menu) by typing: regedit
- Locate and click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
- 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.
- 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:
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