415 lines
20 KiB
Plaintext
415 lines
20 KiB
Plaintext
**screen size** pour 2*2: 137*38 / pour 1*1: 68*19 (37 et 18 si barre des menus cachee)
|
|
**ctrl c** termine l'action en cours du terminal
|
|
**ctrl s** bloque l'affichage du terminal
|
|
**ctrl q** rétablit la communication avec le terminal
|
|
**ctrl z** stop le travail en cours et le met sur pause
|
|
**fg** relance le dernier travail mis sur pause
|
|
**mkdir file{1..10}** creer 10 dossiers nommés de file1 à file10
|
|
**pwd** print working directory
|
|
**xdg-open .** open working directory
|
|
**du -sh** directory sizes
|
|
**ncdu** (visual version of 'du' command) quick presentation of directories size
|
|
|
|
**ssh username@ssh.server.domain -p XXXX** se connecter a un serveur via ssh en precisant un port
|
|
**sftp -P XXXX username@ssh.server.domain** se connecter a un server ssh avec le protocol ftp
|
|
**vim scp://username@ssh.server.domain:XXXX//home/path/to/file** edit a remote file from local vim
|
|
|
|
**ssh to server :**
|
|
**ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_hugo2lejourdesprofs -C "hugo2lejourdesprofs"** :
|
|
- creates a key of type ed25519 (more secure than rsa),
|
|
- put it in the file ~/.ssh/id_ed25519_name_of_key,
|
|
- and add a comment "name_of_key" (for exemple) -> it will be shown next to the key in the .pub file
|
|
**ssh-copy-id -i ~/.ssh/id_ed25519_huho2planethoster.pub 9x3ph_hugo@9x3ph.ftp.infomaniak.com** :
|
|
- send a copy of the public key to the server,
|
|
- choose which key with -i (otherwise it send them all)
|
|
- name of server ssh connexion (you will have to enter your password)
|
|
|
|
|
|
**install touchegg to allow more touchpad gestures, like pinch-to-zoom**
|
|
- https://github.com/JoseExposito/touchegg
|
|
- then I installed the graphical user interface, and i launch it with :
|
|
**flatpak run com.github.joseexposito.touche**
|
|
|
|
**having multiples audio in the same time**
|
|
https://askubuntu.com/questions/78174/play-sound-through-two-or-more-outputs-devices
|
|
- launch paprefs (pulse audio preferences)
|
|
- choose 'add virtual output' in 'simultaneous output'
|
|
- restart pulsaudio for the changes to take effect : **pulseaudio -k**
|
|
- launch pavucontrol (pulse audio volume controle)
|
|
- choose the simultaneous output (this will also enable the computer speakers, so you might want to put them at 0)
|
|
|
|
**open .URL files :**
|
|
https://askubuntu.com/questions/353932/equivalent-of-url-file-on-ubuntu#353952
|
|
- create a file (ex: 'open_url') in /usr/local/bin/ (or another bin directory located in $PATH)
|
|
- in this file :
|
|
```
|
|
#!/usr/bin/bash
|
|
if [ "$1" == "" ] || [ "$1" == "--help" ] ; then
|
|
echo "$(basename "$0") URLFILE - opens a .url file in the default browser"
|
|
else
|
|
sed 's/^BASEURL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | sed 's/\r//' | xargs xdg-open
|
|
fi
|
|
```
|
|
- signification :
|
|
- for the command "open_url file.URL" :
|
|
- **$0** : /usr/local/bin/open_url
|
|
- **$(basename "$0")** : open_url
|
|
- **$1** : file.URL
|
|
- the sed command :
|
|
- **grep -m 1** : tells grep to stop searching after the first match
|
|
- **xargs** : reads items from standard input and executes a command with those items as arguments
|
|
- give execution permission : `chmod +x /usr/local/bin/open_url`
|
|
- tell the file manager to use this script to open .URL files :
|
|
- right click on a .URL file
|
|
- open with other application
|
|
- 'use a custom command' : /usr/local/bin/open_url
|
|
- 'use as default for this kind of file' (or equivalent)
|
|
- open :)
|
|
|
|
|
|
**open .webloc files :**
|
|
- see above 'open .URL files'
|
|
- in the script change the line "sed..." by this :
|
|
grep -m 1 -oP '(?<=<string>).*?(?=<\/string>)' "$1" | xargs xdg-open
|
|
- signification :
|
|
- **-m 1** : tells grep to stop searching after the first match
|
|
- **-o** : tells grep to print only the matching portion of the line
|
|
- **-P** : this option enables Perl-compatible regular expressions, which support lookaheads and lookbehinds
|
|
- **(?<=<string>)** : this is a positive lookbehind that matches the position immediately after <string>.
|
|
- **.*?** : this matches any character (except for a newline) zero or more times, but as few times as possible.
|
|
- **(?=<\/string>)** : this is a positive lookahead that matches the position immediately before </string>
|
|
|
|
|
|
**pdftotext** transforme un pdf en un fichier texte
|
|
**^** designe le debut d'une ligne
|
|
* n'importe quel caractere autant de fois que possible
|
|
**ls** ** montre tous les dossiers et sous-dossiers recursivement
|
|
**chmod 755 fichier** chmod change les droits des fichiers, organisés en : rwxrwxrwx avec pour valeur r=4 w=2 x=1 donc r-w == r + w == 4 + 1 == 5
|
|
|
|
**zsh**
|
|
**sudo apt-get install zsh**
|
|
**which zsh** donne le chemin d'acces de zsh (/usr/bin/zsh)
|
|
**chsh -s /usr/bin/zsh** change shell (chsh) pour zsh
|
|
(reboot le systeme pour que les changements prennent effet)
|
|
**echo $SHELL** pour voir quel shell est utilisé
|
|
(uncomment **line --DISABLE_AUTO_TITLE="true"--** in ~/.zshrc file pour empecher screen de donner un nom automatique aux sessions)
|
|
|
|
**sass name.scss name.css** create a css file from a scss file
|
|
**sass --watch name.scss:name.css** make the transformations of scss in css file
|
|
|
|
**'tree' like :**
|
|
find | sort | grep -ve "node_modules/" -e ".git/" | sed 's#[^/]*/#|__ #g;s#__ |# |#g;s#| # #g;s#\(node_modules\|.git[ignore]*\)#\1 ...#;$a\ '
|
|
|
|
**format usb**
|
|
**sudo fdisk -l** list all disks - find yours (something like /dev/sdx)
|
|
**sudo fdisk /dev/sdx** enter in fdisk program
|
|
**p** print the partions
|
|
**o** create an empty dos table
|
|
**n** add a new partition
|
|
**p** primary
|
|
**1** partition number 1
|
|
**enter** default first selector
|
|
**+1G** for 1Gb size or *enter* for default
|
|
**a** toogle the flag *bootable*
|
|
**n** again if you want more partitions
|
|
**w** write and quit
|
|
|
|
|
|
|
|
|
|
**touchscreen :**
|
|
**xinput --list** list all input
|
|
**xinput disable 12** disable the input 12, touchscreen for Lenovo-FLEX-3-1120
|
|
**load to start :** add "xinput disable 12" in application autostart
|
|
ADD FORMULA TO FIND 12
|
|
|
|
**appimage :**
|
|
- **chmod +x <name>.appimage** make it executable
|
|
- create name for execution command :
|
|
- create an symlink in a bin location :
|
|
- /usr/bin if application is installed by systeme app manager (not the case for appimages)
|
|
- /usr/sbin if need sudo to execute
|
|
- /usr/local/bin or /usr/local/sbin if installed manually by user
|
|
- ~/.local/bin is accessible only for this user (PREFFERED LOCATION)
|
|
- make sure "~/.local/bin" is in $PATH
|
|
- **ln -s /absolut/path/to/program.appImage ~/.local/bin/<name>**
|
|
.desktop file :
|
|
- in : /usr/share/applications/<name>.desktop
|
|
- or in : ~/.local/share/applications/<name>.desktop
|
|
- **locate "*<name>*desktop"** : to locate if the .desktop file already exist
|
|
- min content :
|
|
[Desktop Entry]
|
|
Exec=<program name> (if symlink created, otherwise path to the appimage file)
|
|
Name=<name>
|
|
Type=Application
|
|
**( cd /usr/share/applications && chmod 644 <name>.desktop )** maybe change permissions
|
|
|
|
**applications :**
|
|
**ln -s /path/to/executable ~/.local/bin/**
|
|
add /usr/share/applications/<name>.desktop as explained above for appimages
|
|
**maybe, example with firefox :**
|
|
Download Firefox
|
|
Got to the Download folder in your terminal:
|
|
**cd ~/Downloads**
|
|
Extract the archive:
|
|
**tar xjf firefox-*.tar.bz2**
|
|
Move the Firefox files to /opt:
|
|
**mv firefox /opt**
|
|
Create a symlink to the Firefox binary:
|
|
**ln -s /opt/firefox/firefox /usr/local/bin/firefox**
|
|
Download a desktop file:
|
|
**wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications**
|
|
Remove the snap version of Firefox:
|
|
**sudo snap remove firefox**
|
|
Launch the new Firefox by running this command in a terminal:
|
|
**/usr/local/bin/firefox**
|
|
Go to Dock -> right click on Firefox -> Add to Favorites -> Move it to the top
|
|
|
|
|
|
**firefox extension source code :**
|
|
**right click on install** and select "copy link"
|
|
**curl -L <link> > /tmp/myextension.xpi** download the extension with curl inside a tmp file
|
|
**unzip /tmp/myextension.xpi -d /tmp/myextension** unzip the content
|
|
enjoy reading it ;)
|
|
|
|
**enable accents on ubuntu :**
|
|
**compose key = right alt** change in keyboard > layout > compose key
|
|
**sudo apt install gnome-tweaks** maybe install tweak to change compose key
|
|
**r-alt ' e** é
|
|
**r-alt ` e** è
|
|
**alternatively :** https://askubuntu.com/questions/1028957/how-to-set-a-compose-key-in-ubuntu-18-04
|
|
**man xkeyboard-config** look for the compose options (shortcut: enter /compose:). You will find
|
|
compose:ralt Right Alt
|
|
compose:lwin Left Win
|
|
compose:lwin-altgr 3rd level of Left Win
|
|
compose:rwin Right Win
|
|
compose:rwin-altgr 3rd level of Right Win
|
|
compose:menu Menu
|
|
compose:menu-altgr 3rd level of Menu
|
|
compose:lctrl Left Ctrl
|
|
compose:lctrl-altgr 3rd level of Left Ctrl
|
|
compose:rctrl Right Ctrl
|
|
compose:rctrl-altgr 3rd level of Right Ctrl
|
|
compose:caps Caps Lock
|
|
compose:caps-altgr 3rd level of Caps Lock
|
|
compose:102 <Less/Greater>
|
|
compose:102-altgr 3rd level of <Less/Greater>
|
|
compose:paus Pause
|
|
compose:prsc PrtSc
|
|
compose:sclk Scroll Lock
|
|
**setxkbmap -option compose:paus** let us say you want to pick Pause as the compose key. Just issue
|
|
**XKBOPTIONS="terminate:ctrl_alt_bksp,compose:paus"** to make it reboot-persistent,
|
|
edit /etc/default/keyboard
|
|
if you had other options already,
|
|
separate them with commas
|
|
|
|
**connect to planet hoster with ssh :**
|
|
ssh hugugtzx@world-370.fr.planethoster.net -p 5022
|
|
**to enable vi :** `export TERM=xterm`
|
|
**locked files on nextcloud :** https://help.nextcloud.com/t/file-is-locked-how-to-unlock/1883
|
|
**vi nextcloud.hugulumu.fr/nextcloud/config/config.php** : change maintenance mode to true
|
|
**mysql -u hugugtzx_next645 -p** : the db username and password are in the config.php file of previous step
|
|
**(SHOW DATABASES;)**
|
|
**USE hugugtzx_next645;**
|
|
**(SHOW TABLES;)**
|
|
**DELETE FROM oc_file_locks WHERE 1;**
|
|
**vi nextcloud.hugulumu.fr/nextcloud/config/config.php** : change maintenance mode back to false
|
|
|
|
**youtube-dl for france.tv :**
|
|
https://github.com/ytdl-org/youtube-dl/issues/29956#issuecomment-1013345689
|
|
|
|
**remap keyboard keys :**
|
|
/* FOR ONE SESSION */
|
|
**xev** open a program that gives informations about key events, like keycode
|
|
**xmodmap -pk | grep <keycode>** to find the name of the key, like Return
|
|
**xmodmap -e "keycode <keycode> = <name>"** ex: `xmodmap -e "keycode 62 = Return"`
|
|
/* OR FOREVER */
|
|
**sudo cp /usr/share/X11/xkb/symbols/pc /usr/share/X11/xkb/symbols/pc.bak** save the file
|
|
**sudo vim /usr/share/X11/xkb/symbols/pc** modify the file
|
|
|
|
**settings of firefox extension MultiTranslate :**
|
|
iframe {
|
|
/*min-width: 720px;*/
|
|
min-height: 600px;
|
|
border: none;
|
|
margin-top: -160px;
|
|
}
|
|
iframe ~ * {
|
|
display: none !important;
|
|
}
|
|
|
|
**open default sites with firefox :**
|
|
https://askubuntu.com/questions/79305/how-do-i-change-my-default-browser
|
|
**sudo update-alternatives --config x-www-browser**
|
|
**sudo update-alternatives --config gnome-www-browser**
|
|
|
|
**change dns :**
|
|
https://learnubuntu.com/change-dns-server/
|
|
so far i just changed in /etc/resolv.conf
|
|
|
|
**format usb :**
|
|
- list disk :
|
|
**df -h** mounted partitions, or
|
|
**lsblk** or
|
|
**sudo fdisk -l** for more informations
|
|
- unmount partitions :
|
|
**sudo umount /dev/sdb1** unmount usb, replace /dev/sdb1 with name of your usb
|
|
- if necessary, erase all memory :
|
|
**sudo dd if=/dev/zero of=/dev/sdb bs=4k status=progress && sync** sync to flush the cache
|
|
- if necessary, erase all partitions or create new ones :
|
|
**sudo fdisk /dev/sdb**
|
|
> Command (m for help): **o** for creating an empty partition table
|
|
> Command (m for help): **n** for creating a new one
|
|
> Select (default p): **<enter>** to select default p
|
|
> Partition number (default 1): **<enter>** to create a partition number 1
|
|
> First sector (default 2048): **<enter>** to start partition at begining
|
|
> Last sector (default xxxxxxxx): **<enter>** to give partition full size
|
|
> Command (m for help): **w** to write the changes (before that, nothing was really made)
|
|
- format partitions (re list before) :
|
|
**sudo mkfs -t vfat -n "<name>" /dev/sdb1** to format in fat32 (vfat) (MaKe FileSystem)
|
|
|
|
|
|
**list of automatic settings :**
|
|
- install screen, omyzsh, keepassxc, curl, make, firefox, signal, gnome-tweaks, ffmpeg, yt-dlp, element
|
|
- install or configure to avoid screen blue light
|
|
- install nextcloud client (apt ? or appimage ? appimage need fuse : https://github.com/AppImage/AppImageKit/wiki/FUSE), and launch at startup
|
|
- install these settings (connection with bitbucket ? ssh ? https ?)
|
|
- configure cursor speed, click with touch
|
|
- change dns
|
|
- configure firefox :
|
|
- default browser
|
|
- duckduckgo default search
|
|
- addons :
|
|
- keepassxc
|
|
- i dont care about cookies
|
|
- auto tab discard
|
|
- settings > barre d'outils action click gauche > desactiver tous les autres onglets
|
|
- ublock origin
|
|
- deepl/multitranslate
|
|
- youtube speed control, by toxblh
|
|
- download file
|
|
- password settings
|
|
- setting ctrl-tab to switch to last used tabs
|
|
- configure desktop bar with infos and stats
|
|
- configure git global email and name
|
|
|
|
**todo !**
|
|
- re-add code to move cursor on wrap text in vimrc
|
|
- add vimrc, zshrc, and screenrc in default screen windows
|
|
|
|
**ecowan server :**
|
|
- list user : **cat /etc/passwd**
|
|
- change users passwd :
|
|
- **sudo passwd <username>**
|
|
- first go on root with **su**
|
|
- then change default user passwd **passwd <username>**
|
|
- be carreful that if you made a mistake in the passwd you will not be abble to connect to the server again !
|
|
- so open a new terminal window without closing this one, and try to connect with new passwd
|
|
- and now you can change root passwd too
|
|
- install some packages :
|
|
- **su**
|
|
- **apt install sudo vim git wget curl htop**
|
|
- allow connection with ssh key :
|
|
- runn this in local : **ssh-copy-id username@server_ip**
|
|
- then change ssh configuration file `/etc/ssh/sshd_config` :
|
|
- set **PubkeyAuthentication yes** to allow public key authentication
|
|
- set **PasswordAuthentication no** to disable password-based authentication
|
|
- set **ChallengeResponseAuthentication no** to disable any keyboard-interactive authentication
|
|
- restart ssh with **sudo service ssh restart**
|
|
- add user to the sudo group so it can use sudo :
|
|
- **sudo usermod -aG sudo <username>**
|
|
- then restart the ssh session by exiting ang logging again
|
|
- did not add it to the sudoers file (`visudo` then add line `huho ALL=(ALL) ALL`)
|
|
- fixed **perl: warning: Setting locale failed** :
|
|
- https://stackoverflow.com/questions/2499794/how-to-fix-a-locale-setting-warning-from-perl
|
|
- **sudo locale-gen**
|
|
- **sudo dpkg-reconfigure locales**
|
|
- then choose with SPACE BAR en_US.UTF-8 and fr_FR.UTF-8
|
|
- changed debian10 to debian11 :
|
|
- https://forum.yunohost.org/t/install-yuno-on-debian-10-13-my-hoster-does-not-support-debian-11-bullseye/23147/2
|
|
- which debian : **lsb_release -a**
|
|
- run :
|
|
- **sudo apt update**
|
|
- **sudo apt upgrade**
|
|
- **sudo apt full-upgrade**
|
|
- then change /etc/apt/sources.list file :
|
|
- replace each instance of `stretch` with `buster`
|
|
- replace each instance of `buster/updates` with `bullseye-security`
|
|
- then again :
|
|
- **sudo apt update**
|
|
- **sudo apt upgrade**
|
|
- **sudo apt full-upgrade**
|
|
- **sudo systemctl reboot**
|
|
- **sudo apt autoremove**
|
|
- prevent loosing definitively ssh connection : https://www.reddit.com/r/servers/comments/17mtlxf/how_to_set_up_a_backup_connection_to_a_server_if/
|
|
- use IPMI to access server without ssh :
|
|
- need public ip address : **curl ifconfig.me**
|
|
- need install java : **default-jdk**
|
|
- need install javaws : **icedtea-netx**
|
|
- run viewer.jnlp(...) file with **ajaws file** or by double clicking
|
|
- need to change /etc/java-11-openjdk/security/java.security file by commenting SHA1 denyafter lines
|
|
- https://unix.stackexchange.com/questions/143805/running-unsigned-javaws-code
|
|
- not line 634 "SHA1 usage SignedJAR & denyAfter 2019-01-01, \"
|
|
- but line 700 "#SHA1 denyAfter 2019-01-01, \"
|
|
- create git project (having a local git project and beeing abble to push to a remote repo) :
|
|
- on remote :
|
|
- **mkdir my_project.git** ".git" is a convention for git "bare" repository
|
|
- **cd my_project.git**
|
|
- **git init --bare** : create a bare repository (it's a repo without any content, just the commits)
|
|
- **cd hooks** : navigate to the hook folder
|
|
- **touch post-receive** : create a post-receive file
|
|
- **chmod +x post-receive** : make it executable
|
|
- inside "post-receive" file :
|
|
- https://stackoverflow.com/questions/7351551/writing-a-git-post-receive-hook-to-deal-with-a-specific-branch#answer-13057643
|
|
- create a hook that will add a worktree, which is a folder with the content of the git repo :
|
|
#!/bin/bash
|
|
TARGET="/path/to/your/destination/folder"
|
|
GIT_DIR="/path/to/your/bare/git/repository"
|
|
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
|
|
- on local :
|
|
- **git remote add deploy ssh://user@host:1234/path/to/bare_repo.git** : https://stackoverflow.com/questions/3596260/git-remote-add-with-other-ssh-port#answer-3596272
|
|
- 1234 is the port, not needed if 22
|
|
- on remote, inside the bare.git folder, you can change the branches :
|
|
- **git branch -a** : show the branches
|
|
- **git --work-tree=/path/to/worktree checkout <name>** : change the branch on the worktree
|
|
- if the worktree is a website, it's now the new branch that is being showed
|
|
|
|
- disable user shell access with **sudo usermod --shell /sbin/nologin <username>**
|
|
- https://unix.stackexchange.com/questions/10852/whats-the-difference-between-sbin-nologin-and-bin-false#10867
|
|
- its possible to re-enable it with **sudo usermod --shell /bin/bash <userrname>**
|
|
- to see the shell of a user : **grep <username> /etc/passwd**
|
|
|
|
- auditd :
|
|
- added rule **sudo auditctl -w /home/huho -p r -k huho_folder_access**
|
|
- **sudo systemctl restart auditd**
|
|
- **sudo ausearch -i -f /home/huho**
|
|
- **sudo ausearch --start 18/10/2023 14:05 -i -f /home/huho**
|
|
|
|
- todo :
|
|
- monitoring software (Nagios, Zabbix, Prometheus)
|
|
- ids (intrusion detection system) (Snort, Suricata)
|
|
- siem (security information and event management) (Splunk, ELK Stack, Graylog)
|
|
- remote logging
|
|
- firewall
|
|
|
|
- **ipmi / idrac6 : connect to the server as if **
|
|
- connect to ipmi (enter the ip adress of the internet connection, not the one of the server)
|
|
- in the idrac interface, go to the console and click on 'launch virtual console'
|
|
-> it will download a viewer.jnlp file
|
|
- open this file with java :
|
|
- you can use a python script that does the jobs well
|
|
- the script can be found here : **https://gist.github.com/TheJJ/2394cd76d3e2c34d02e3da1bd3e489b2?ref=blockdev.io**
|
|
- I added it to this config folder
|
|
- or you can try to open this file with java (last time I didn't succeed)
|
|
- install java 8 (it might works better with idrac6) : **sudo apt-get install openjdk-8-jre**
|
|
- install javaws : **sudo apt install icedtea-netx**
|
|
- run **javaws viewer.jnlp(blablabla)**
|
|
- i also needed to change the security file otherwise it wouldn't open the files because 'jar are not signed' :
|
|
- either do it manually : in **/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security**, change lines:
|
|
- **jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024...** to remove 'md5'
|
|
- **jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024...**
|
|
- alternatively you can have a local override, see **https://gist.github.com/xbb/4fd651c2493ad9284dbcb827dc8886d6**
|
|
- this is a tutorial, it uses a local java engine (jre) just installed in the folder, and/or a local file to override the security settings
|
|
- also, if needed to modify the java control panel, open it with : **/usr/bin/itweb-settings**
|
|
|