Linux basics

From Wikislax

Jump to: navigation, search

Using VI

vi (pronounced vee-eye) is the Unix standard text editor so affords editing the configuration files by hand. If you don’t know it yet, it can be a bit surprising. Actually, vi was created at a time when the keyboards did not have any arrow or insert keys. So there are two modes: the «open» mode and the «insert» mode.

The open mode affords moving the cursor. j, k, l, m move the cursor by one character. ctrl-f moves one page forward and ctrl-b moves one page backwards. w moves one word forward and b moves one word backwards. It is also possible to use the arrow keys.

i goes into insert mode before the cursor, a goes into insert mode after the cursor, and A goes into insert mode at the end of the line. o adds a line after the current line, and O adds a live before the current line. R goes into rewrite mode.

esc affords getting out of the insert mode.

c$ affords replacing the end of the line and d$ affords deleting the end of the line. cw affords replacing one word and dw affords deleting one word. dd affords deleting the current line.

:q affords quitting without saving. If the file has been modified, quitting must be forced by typing :q!. :x affords saving and quitting. If the file does not have the write rigths, saving must be forced by typing :x!. :w affords writing the text in a new file. If the new file already exists, writing must be forced by typing :w!.

:num affords moving to the line number num. :$ affords moving to the end of the file. :num1copynum2 affords copying the line number num1 after the line number num2. :num1mnum2 affords moving the line number num1 after the line number num2.

For detailed information, check the VIM Documentation. To enter special characters check the page on digraphs. To get rid of the message "skipping N old session files", delete files elvis*.ses in /var/tmp.

Using SSH

SSH is a suite of tools affording connecting remotely over encrypted communications. On the client side, ssh offers a command line terminal, scp affords copying a file, and sftp behaves like ftp. The server side consists of sshd, sftp-server, and ssh-agent. ssh-add, ssh-keysign, ssh-keyscan, and ssh-keygen afford key management. The SSH present on Slackware and the BSDs is OpenSSH, developped by members of the OpenBSD project.

ssh obviously requires your connection password every time it is executed. This can be avoided by creating on the client a pair of rsa keys and copying the public key to the server. Not specifying a passphrase is not very secure but will afford avoiding having to enter it every time :

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <cr>
Enter passphrase (empty for no passphrase): <cr>
Enter same passphrase again: cr>
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ATSDdER5/l8OJvr+jpINIReJtd81zntVbTjuJW5aobE root@client
The key's randomart image is:
+---[RSA 2048]----+
|   ..=O+..       |
|    ..o++.     ..|
|       oo.    = +|
|      . +o . = +.|
|       oSo. o * o|
|        . o o*.=.|
|         = +E+* .|
|        + ...+.. |
|         ++o+    |
+----[SHA256]-----+
# scp root@client:.ssh/id_rsa.pub root@server:.ssh/id_rsa.pub
password: secret<cr>
id_rsa.pub                                          100% 394      1.8MB/s   00:00
# ssh server
password: secret<cr>
# cd .ssh
# cat >> authorized_keys < id_rsa.pub
# chmod 600 authorized_keys
# rm id_rsa.pub

Useful linux commands

Command Effect
cdchange directory.
chmod -R ppp dddrecursively change permissions on file or directory.
chown -R uuu:ggg dddrecursively change user:group ownership on file or directory.
chgrp -R ggg dddrecursively change group ownership on file or directory.
command xxx | grep yyysearch for string yyy in output of command xxx.
ethtool -s eth0 wol gputs interface eth0 in wake-on-lan status.
find xxx -name yyy -printfind file yyy in in subdirectories of xxx.
killall xxxkill program named xxx.
ldconfigreload libraries taking into account new libraries just built.
ln -s existing newcreate a symbolic link new to an existing directory or file.
ls -allist the working directory, including files beginning with a dot.
man xxxdisplay the xxx command manual page.
more xxxdisplay file xxx with the possibility of moving up and down. less and most are similar commands.
mount -t ttt /dev/xxx /mnt/dddmount device xxx as type ttt under directory ddd.
(u)mount /mnt/ddd(u)mount device ddd as specified in /etc/fstab.
nmap hostcheck filtering status of ports on host. -sU for UDP.
ps -eflist the running processes.
pwdprint working directory.
rm -rremove file or directory recursively.
ssh hostconnect remotely to site host.
su -l uuuuexecute shell as another user. if -l is used an environment similar to what the other user would have had with a direct login is provided.
telinit ngo to the runlevel n (1=single-user, 3=multi-user, 4=graphical, 6=reboot).
umaskedit /etc/profile to change the default umask value of 022 and set it to 027 (files not readable by other users), a good setting except when installing as root server software to be ran as a standard user account (permission issues).
virun the vi text editor. To get rid of the message "skipping N old session files", delete files elvis*.ses in /var/tmp.


Maintaining Slackware Main Page Configuration files
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox