LinuxSysAdminsDoc/Linux/basic_cmd.md

5.7 KiB

Theory

Absolute Path vs Relative Path in Linux/Unix

One of this blog follower asked us that whatâs the difference between absolute and relative path?

To understand this we have to know what is a path in Linux.

What is a path?

A path is a unique location to a file or a folder in a file system of an OS. A path to a file is a combination of / and alpha-numeric characters. What is an absolute path?

An absolute path is defined as the specifying the location of a file or directory from the root directory(/). In other words we can say absolute path is a complete path from start of actual filesystem from / directory.

Some examples of absolute path:

/var/ftp/pub
/etc/samba.smb.conf
/boot/grub/grub.conf

If you see all these paths started from / directory which is a root directory for every Linux/Unix machines.

What is the relative path?

Relative path is defined as path related to the present working directory(pwd). Suppose I am located in /var/log and I want to change directory to /var/log/kernel. I can use relative path concept to change directory to kernel

changing directory to /var/log/kernel by using relative path concept.

$ pwd/var/logcd kernel

Note: If you observe there is no / before kernel which indicates itâs a relative directory to present working directory.

Changing directory to /var/log/kernel using absolute path concept.

$ cd /var/log/kernel

Note: We can use an absolute path from any location where as if you want to use relative path we should be present in a directory where we are going to specify relative to that present working directory.

Examples of relative path and absolute path for the same operation.

Basic Linux Command

help

  • Man: an interface to the on-line reference manuals

$ man ls

Wildcard

  • Show all picture (multiple char)

$ ls pic* ? show only picture between 50 and 59 (only one char) $ ls pic5?.jpg [] show only if char in [p-P] $ ls [pP]ic*

Files and directory

  • ls: list directory contents

$ ls

args = -l -a -r -t -h --help

  • Pwd: output the current working directory

$ pwd

  • Change directory

$ cd back to previous folder $ cd -

  • Make directory

$ mkdir test1 test2 test3

$ mkdir -p lol/lol/lol
-p to create parent directory if needed

  • Remove directory

rmdir filename

rm -rf file name

  • Move directory (can be used to rename a file)

mv file /opt/movedfile

  • Copy file or directory

$ cp file /opt/newcopiedfile

  • Touch - change file timestamps but it can also create files

$ touch nomdefichier.md $ touch pic{00..99}.jpeg # does not work

  • Which: Searching the PATH for executable files matching the names of the arguments

$ which ls

  • File: file — determine file type

$ file myfile

file viewer

  • More: file perusal filter for crt viewing

$ more filename

  • Less: opposite of more but Less is more ;)

$ less filename

  • Cat: concatenate files and print on the standard output

$ cat filename

Users and privileges

adduser, addgroup - add a user or group to the system

sudo adduser steve

r4v3n@d3bi4n:~/Workspace/test$ sudo adduser steve
[sudo] password for r4v3n: 
Sorry, try again.
[sudo] password for r4v3n: 
Adding user `steve' ...
Adding new group `steve' (1002) ...
Adding new user `steve' (1002) with group `steve' ...
Creating home directory `/home/steve' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for steve
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y

user skeleton: skeleton files used for new user configuration

$ ls /etc/skel/

─r4v3n at d3bi4n in /etc/skel
╰─» ls -a                                                                        0 (0.002s) < 05:21:24
./  ../  .bash_logout  .bashrc  .profile

  • Change user

$ su - marie

Permissions

  • Chmod: change file mode bits

A combination of the letters ugoa controls which users' access to the file will be changed:

  • the user who owns it (u),
  • other users in the file's group (g),
  • other users not in the file's group (o),
  • or all users (a).

If none of these are given, the effect is as if (a) were given, but bits that are set in the umask are not affected.

marie@d3bi4n:~$ ls -l
total 4
-rw-r--r-- 1 marie marie 12 Apr  7 05:44 test

$ chmod o-r mysecret

-rw-r----- 1 marie marie 12 Apr 7 05:44 test

$ chmod o+rw myscret

-rw-r--rw- 1 marie marie 12 Apr 7 05:44 test

###groups

Groups: print the groups a user is in

$ groups

Adds user marie into steve group

$ adduser marie steve

r4v3n@d3bi4n:~/Workspace/test$ sudo adduser marie steve
Adding user `marie' to group `steve' ...
Adding user marie to group steve
Done.

marie@d3bi4n:~$ groups
marie steve

Sysadmin tools

  • Htop: Interactive processes viewer

$ htop

text editor

  • Nano: Nano's ANOther editor, an enhanced free Pico clone (simple text editor for noobies)

$ nano

$ nano filename

  • VIM: vim - Vi IMproved, a programmer's text editor (PGM)

$ vim

$ vim filename

APT

$ apt install $ apt remove $ apt autoremove $ apt update

Display & Destop Manager

  • Architecture:

BIOS -> GRUB -> Display Manager -> Desktop Environement

  • Install Desktop Environement (GUI)

$ tasksel $ apt install gnome $ apt remove gnome

  • Reconfigurer le display manager

$ sudo dpkg-reconfigure gdm3

  • Installer le display manager

$ sudo apt install lightdm

$ sudo apt install gdm3

  • remove Desktop environement

$ sudo apt remove lightdm

Services

  • HTOP
  • dhclient > get ip
  • gnome networkmanager
  • wpa_supplicant > encryption @ wifi