Nowy proces w terminalu i dalsza praca

Często zdarza się, że pracując w terminalu pod linux-em uruchamiając nowy proces poza terminalem chcemy wciąż mieć możliwość korzystania z linii poleceń terminala.

Jest to możliwe dzięki użyciu znaku specjalnego – ampersanda – ‘&’, na końcu komendy. Uruchamia się wtedy jakaś aplikacja już w nowym procesie i można dalej korzystać z terminala.

Przykład:
Komendą ‘ps’ wyświetlamy uruchomione procesy:

Załóżmy teraz, że chcemy otworzyć dowolny edytor tekstowy i dalej pracować w dotychczas otwartym oknie. Domyślnie nie jest to możliwe:

Jednak, gdy użyjemy znaku ampersanda:

Możemy wówczas pracować i w nowo otwartej aplikacji niezależnie z terminalem, gdyż utworzył się oddzielny proces, co jest pokazane na obrazku powyżej.

Przeglądarka internetowa Mozilla Firefox i ciekawe dodatki

Wszyscy korzystamy z jakiegoś typu przeglądarki internetowej:
-Internet Explorer (Edge od Microsoftu)
Opera
-Google Chrome(Chromium)
-Mozilla Firefox

Lub innej mniej popularnej.
Otóż korzystamy i często nie zdajemy sobie sprawy, że mamy możliwość włączenia jakiejś wtyczki napisanej przez programistów dla przeglądarki lub też zmiany nużącego nas domyślnego systemowego motywu.

Opiszę tutaj dodatki do przeglądarki Mozilla Firefox, ale z pewnością do innych przeglądarek na pewno znajdziemy coś w tym samym stylu tylko jako zamiennik z jakąś inną nazwą.

Bardzo fajny może okazać się motyw animowany matrix-a (oczywiście wiąże się to z drobnym dodatkowym obciążeniem procesora, ale na pewno niewielkim).
Są to przewijające się na czarnym tle ciągi znaków.

Jest to ciekawy dodatek, ale z pewnością większość zaciekawią następujące rozszerzenia:

Dark Reader (Tryb ciemny dla wszystkich stron internetowych. Nasze oczy nie męczą się tak przy pracy w ciemności.)

Ghostery ( Bloker reklam chroniący prywatność – już dość wielokrotnych męczących Nas reklam na stronach i utrudniających przeglądanie internetu.
Dodatkowo można zastosować pomijanie polityki prywatności i ciasteczek, które wielokrotnie informują Nas o swojej obecności na każdym serwisie)

Simple Translate lub Google Translate ( Tu chyba nie trzeba wiele wyjaśniać. Są to translatory tekstu od Google w formie szybko dostępnej. Czyli zamiast za każdym razem otwierać nową zakładkę i kopiować tekst do translatora możemy skorzystać z opcji tłumaczenia całej strony lub też zaznaczonego tekstu)

Aby to oczywiście wszystko ustawić wchodzimy do menu aplikacji (te trzy poziome kreski w prawym górnym rogu przeglądarki) i klikamy “Dodatki i motywy“( lub też skrót klawiszowy Ctrl+Shift+A)

Latex – spis treści z linkami do zawartości

Tak jak w tytule pokażę, jak utworzyć spis treści/menu składające się z głównych sekcji, podsekcji i podpodsekcji zawierające linki do zawartości tych (pod)sekcji.
Poniżej listing kodu latex-a (z komentarzami):

%typ dokumentu, rozmiar czcionki
\documentclass[11pt,a4paper]{article}

%język i kodowanie
\usepackage{polski}
\usepackage[utf8]{inputenc}

%stworzenie linków w menu (niewidocznych)
\usepackage[hidelinks]{hyperref}

%autor, dzisiejsza data i tytuł dokumentu
\author{Training Universe}
\date{\today}
\title{Spis treści z linkami do zawartości}

%początek dokumentu
\begin{document}
%wyświetlenie tytułu
\maketitle

%przejście do nowej strony
\newpage
%spis zawartości
\tableofcontents
\newpage


%sekcja 1 i jej etykieta
\section{Sekcja 1}
\label{sec:Sekcja 1}

%odpowiednio podsekcja sekcji 1
\subsection{Sekcja 1.1}
\label{subsec:Sekcja 1.1}

%podpodsekcja sekcji 1
\subsubsection{Sekcja 1.1.1}
\label{subsubsec:Sekcja 1.1.1}

%przykładowy tekst
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec commodo mauris vitae ligula mollis, vitae malesuada sem ultrices. Vivamus tristique dapibus lorem sed ultrices. Phasellus eu elit luctus, vulputate leo ut, tincidunt mauris. Sed sed tellus auctor, aliquam sem id, pulvinar lectus. Fusce fermentum nisi eu elit sagittis aliquam. Praesent et justo in mi vulputate pharetra. Nunc id massa a mauris lobortis efficitur. Quisque commodo, lacus a consectetur feugiat, orci sapien luctus turpis, ut finibus dui quam ut magna.

Maecenas efficitur, lacus eget luctus ultrices, lectus ipsum gravida mauris, vitae volutpat justo urna id urna. Sed nec ex feugiat, consequat libero in, commodo nunc. Curabitur dictum, eros sit amet scelerisque luctus, neque enim dignissim tortor, a scelerisque erat nisi sed mauris. Vestibulum efficitur aliquam mauris, sed malesuada risus aliquet sit amet. Morbi at mauris in sapien hendrerit aliquet a non ante. Mauris at fringilla dui. Etiam sollicitudin ipsum ut nisl congue, eget suscipit mi sagittis. Sed aliquet risus non justo vestibulum, eu varius lacus dapibus. Integer et pellentesque sapien.

Vestibulum id faucibus eros, vitae facilisis est. Ut ut ligula sit amet odio aliquam viverra sed vitae ex. Maecenas lobortis interdum elit, ac condimentum ipsum faucibus in. In hac habitasse platea dictumst. Nunc non enim sed tellus tincidunt suscipit vitae et nulla. Cras tincidunt erat id mi tincidunt, eu euismod orci venenatis. Etiam sit amet vulputate nunc. Nulla id lectus vitae justo finibus volutpat. Aenean consequat sapien a arcu interdum luctus.

Sed malesuada ligula ut massa elementum, sit amet consectetur mi vestibulum. Mauris fermentum laoreet dui sed iaculis. Morbi luctus libero ac sem varius ultrices. Donec interdum auctor nulla, ac bibendum enim feugiat nec. Sed id aliquam ex, et commodo lectus. Curabitur elementum, enim vel congue auctor, purus massa commodo erat, nec scelerisque risus dui vitae sapien. Nulla facilisi. Sed id felis tempor, venenatis justo nec, viverra mi. Nunc sollicitudin, lacus in pulvinar finibus, nunc ligula viverra nisl, et dictum orci felis eu nunc. Quisque sed massa sit amet purus venenatis dignissim.

Praesent ac aliquam leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam eget iaculis enim. Duis varius lectus sed eleifend fringilla. Nullam viverra est sed tristique hendrerit. Suspendisse pellentesque, enim id mattis aliquam, elit orci elementum nulla, sed interdum elit neque id felis. Integer consectetur, ex a porttitor egestas, tortor sem pharetra neque, nec efficitur turpis urna a tellus. Donec pulvinar, erat at rhoncus dictum, sem purus volutpat velit, id fermentum felis tortor eu ligula. Sed in ante nibh. Fusce eleifend dapibus lectus. Sed non enim id enim ultricies elementum. Sed convallis bibendum erat vitae vulputate.

\newpage


\subsubsection{Sekcja 1.1.2}
\label{subsubsec:Sekcja 1.1.2}

\newpage

\subsubsection{Sekcja 1.1.3}
\label{subsubsec:Sekcja 1.1.3}

\newpage

\section{Sekcja 2}
\label{sec:Sekcja 2}

\subsection{Sekcja 2.1}
\label{subsec:Sekcja 2.1}

\newpage

\subsection{Sekcja 2.2}
\label{subsec:Sekcja 2.2}

%koniec dokumentu
\end{document}

Ogółem wszystko sprowadza się do użycia paczki do linków, wyświetlenia tabeli zawartości i utworzenia odpowiednich sekcji dokumentu.

Poniżej link do wygenerowanego dokumentu w postaci pdf:
https://traininguniverse.net/wp-content/uploads/2023/07/menu-content.pdf

Aktualizacja Snap Store pod Ubuntu

Jeżeli chcemy aktualizować Snap Store pod którąś z dystrybucji Ubuntu możemy wtedy napotkać błąd, gdyż jest on w ciągłym użyciu.
Na szczęście istnieje sposób aby to obejść.


Powinniśmy otworzyć terminal i wpisać:

sudo snap refresh snap-store

Umożliwi Nam to uzyskanie ‘pid‘, czy id tego procesu.


Następnie kończymy ten proces komendą:

kill <pid>

I ponownie wykonujemy komendę:

sudo snap refresh snap-store

W ten sposób Snap Store powinien zostać zaktualizowany.

Zdalna praca i dostęp

Praca zdalna. Po co to?
Jeżeli chcesz połączyć się z jakimś innym komputerem i przejąć nad nim kontrolę dostępu (oczywiście tylko już pod uruchomioną konkretną dystrybucją systemu operacyjnego (bez restartów itp.)) w celu pomocy dla kogoś wykonania jakiejś czynności (tak działa usługa HelpDesk którą oferują poszczególne firmy informatyczne)/uzyskania tej pomocy, lub też zademonstrowania czegoś na odległość. To właśnie w takim celu służą narzędzia/programy do pracy zdalnej.

Najpopularniejszy jest obecnie TeamViewer. Podaje link:
https://www.teamviewer.com/pl/

Podam też jedną z alternatyw, czyli AnyDesk, link poniżej:
https://anydesk.com/pl

Oba są wieloplatformowe, czyli dostępne m.in. na:
-Windows
-Linux
-macOS
-ChromeOS
-Raspberry Pi
-Android
-iOS

Jeżeli chodzi o AnyDesk pod linuksem to nie ma w ustawieniach opcji wyłączenia autostartu z systemem. Z pomocą przychodzi komenda:

systemctl disable anydesk.service

Natomiast w programie TeamViewer tę opcję znajdziemy. Piszę o tym gdyż nie każdy może sobie życzyć uruchomienia aplikacji pracy zdalnej przy każdym starcie systemu.

AnyDesk umożliwia też nagrywanie, czego nie ma w TeamViewer (przypuszczam, że nagrywanie w AnyDesk jest widoczne dla obu stron).
Jeżeli natomiast chcielibyśmy zrobić to anonimowo lub też przy pomocy TeamViewer-a to przydatny jest program OBS Studio. Polecam serdecznie.
Jest on dostępny na głównie znane systemy (Windows, Linux, macOS). Możemy wtedy anonimowo nagrywać kogoś, lub w innym celu.
Przydatny jest do nagrywania zawartości całego pulpitu, poszczególnych okien (obrazu i dźwięku). Przechwytuje zawartość z peryferiów, np. kamery, mikrofonu.
Jest on darmowym, o otwartym kodzie źródłowym, programem, o naprawdę sporych możliwościach, jak i bardzo intuicyjnym w obsłudze. Link do projektu:
https://obsproject.com/

Problem z zalogowaniem się na konto MySQL

Gdy nie możemy zalogować się na Nasze konto w bazie danych mysql, np. :

sudo mysql -u root -p

Powyższa komenda nie działa – logowanie jest nieskuteczne.


Polecam usunąć wszystko co zainstalowaliśmy:

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-8 mysql-client-core-8

sudo rm -rf /etc/mysql /var/lib/mysql

sudo apt-get autoremove

sudo apt-get autoclean

 

Zainstalować od nowa:

sudo apt-get install mysql-server mysql-client mysql-common mysql-server-core-8 mysql-client-core-8

 

Stworzyć nowego użytkownika:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

 

I nadać wszystkie przywileje dla utworzonego użytkownika:

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

 

Powinno teraz zadziałać logowanie:

mysql -h host -u user -p

 

 

Przydatne polecenia:

CREATE DATABASE name; #stworzenie nowej bazy danych
USE name; #wybór istniejącej bazy danych
SELECT DATABASE(); #podgląd w jakiej bazie danych aktualnie się znajdujemy

ChatGPT w PyCharm

Poniżej krótki film pokazujący jak dodać sztuczną inteligencję, czyli cieszący się dużą popularnością ChatGPT.
Jest to coś w rodzaju czatu, ale tym razem nie z drugim człowiekiem, a z wirtualną maszyną.
Zadajesz pytania a komputer odpowiada na nurtujące Cię pytania, stara się rozwiązać Twoje problemy (tu programistyczne), a podobno potrafi nawet napisać esej.
Zapamiętuje zadane w historii czatu pytania i adekwatnie do treści odpowiada.

Postawienie strony/bloga WordPress na własnym komputerze

Będziemy potrzebowali systemu operacyjnego, tutaj będzie to Linux, dystrybucja Ubuntu 22.04. Serwerem na którym będą przechowywane pliki będzie Apache. Będzie potrzebna jeszcze baza danych, czyli MySQL i PHP, jako że WordPress jest m.in. napisany w tym języku.

Krok 1 – Instalacja Apache

Zainstaluj Apache z:
$ sudo apt install apache2

Po zatwierdzeniu instalacji, możemy sprawdzić działanie w przeglądarce pod adresem http://localhost:80.
Pliki będą znajdować się w lokalizacji /var/www/html
Możemy też z poziomu własnego komputera sprawdzić publiczny adres IP serwera:
$ curl http://icanhazip.com
Aby był widoczny z zewnątrz trzeba byłoby utworzyć odpowiednią regułę w domyślnym ufw (Uncomplicated firewall) firewall-u Ubuntu. Nie będziemy tego potrzebowali w celu roboczym działania WordPress-a tylko na własny użytek. Bloga możemy potem migrować na hosting za pomocą jednej z wielu darmowych dostępnych wtyczek.

Krok 2 – Instalacja MySQL

Instalujemy oprogramowanie:
$ sudo apt install mysql-server
Nadajemy hasło dla głównego użytkownika w celu bezpieczeństwa.
Najpierw uruchamiamy wywołanie MySQL:
$ sudo mysql
i nadajemy hasło:
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
a następnie wychodzimy:
mysql> exit
Później za pomocą interaktywnego skryptu przypisujemy hasło root-a do zabezpieczenia bazy danych:
$ sudo mysql_secure_installation
i zatwierdzamy usunięcie wszelkich dalszych zależności do bazy.
Sprawdzamy działanie:
$ sudo mysql -u root -p
poproszeni o hasło wprowadzamy je.

Krok 3 – Instalowanie PHP

Do zainstalowania pakietów używamy:
$ sudo apt install php libapache2-mod-php php-mysql
Sprawdzamy zainstalowaną wersję:
$ php -v

Krok 4 – Zabezpieczenia plików serwera Apache

Najpierw tworzymy plik .htpasswd do zabezpieczenia:
$ sudo htpasswd -c /sciezka/do/.htpasswd username
Zostajemy zapytani o hasło i jego potwierdzenie.

Edytujemy plik konfiguracyjny serwera znajdujący się w /etc/apache2/apache2.conf
Pod koniec dodajemy:

<Directory /var/www/html/>
     AuthType Basic
     AuthUserFile /sciezka/do/.htpasswd
     Require valid-user
     Order Deny, Allow
     Deny from all
     Allow from localhost
</Directory>

Krok 5 – Utworzenie bazy danych

Wchodzimy do MySQL:
$ sudo mysql -u root -p
oraz tworzymy bazę:
mysql> CREATE DATABASE nazwa_bazy;

Krok 6 – Instalacja WordPress

Ściągamy najnowszą wersję WordPress-a z oryginalnej strony.
Uzupełniamy posiadane dane do instalacji, potem wymagane informacje i możemy już w pełni korzystać z aplikacji.

Problem aktualizacji aplikacji Rambox pod Ubuntu

Dowiadujemy się, że jest aktualizacja aplikacji Rambox do nowszej wersji pod linuksem.
Ściągamy najnowszą wersję i próbujemy ją zainstalować poleceniem:

sudo snap install ./Rambox-x.x.x-linux-x64.snap

Może nam wówczas pojawić się błąd:

error: cannot find signatures with metadata for snap “./Rambox-x.x.x-linux-x64.snap”

Krótkie wyjaśnienie. Dzieje się tak, ponieważ pobraliśmy pakiet Snap od strony trzeciej.
Mechanizm snapów w Ubuntu oczekuje, że otrzyma pakiet snap z oficjalnego sklepu z snapami. Stąd widzimy komunikat o błędzie.

Istnieje rozwiązanie umożliwiające obejście tego problemu.
A mniej więcej, używamy flagi “dangerous”.
Pokrótce komenda powinna wyglądać następująco:

sudo snap install –dangerous ./Rambox-x.x.x-linux-x64.snap

Zainstalowaną wersję, możemy sprawdzić komendą:

snap info rambox

Nie zapominajmy zamknąć wszystkie procesy rambox-a przed instalacją(można to zrobić m.in za pomocą aplikacji “monitor systemu”, wyszukać aplikację i zakończyć proces). Trzeba też nadać prawa wykonania do ściągniętego pliku (chmod +x Rambox…).