Site Tools


marc:linux:rhcsa8_uittreksel

This is an old revision of the document!


Marc Verhaar 2021/11/02 19:08

====== Uitreksel RHCSA 8 ======

File Maintenance Commands:

Command Function Example
cp Copy file cp file1 file2
rm Remove file rm file2
mv Move file (also rename!) mv file /path/newfile
mkdir Make directory mkdir newdir
rmdir Remove directory (must be empty!) rm newdir
rm -rf Remove file or directory rm -rf /bin
chgrp Change group of file or directory '' sudo chgrp root file 1''
chown Change ownership of file or directory chown user file
chown user:group file
chown -R user: dir

Inode:

  • index position which points to data (file/directory) on drive
  • Every file has an inode (Index node)
  • Contains all file information except file contents and name:
    • Inode number
    • File size
    • Owner information
    • Permissions
    • File type
    • Number of links
    • etc
  • Same as windows shortcut
  • Can span over disks/partitions/lvms
  • Aka Symbolic link
  • Different inode number
  • Smaller file size

  • Different name of the same file
  • Same file size
  • Same inode number
  • Can not span over disks/partitions/lvms (i.e. hard links only work within same partition)

This means:

  • removing the target will render the soft link useless (cat softlink will give an error)
  • removing the target will not remove a hard link (cat hardlink will show content of original file)
Command Function Example
ln create a hardlink
ln target linkname
ln -s create a soft link
ln -s target linkname
ls -i show files with inode numbers
ls -li

Example:

'''' touch original
echo “some stuff” > original
ln -s original softlink
ln original hardlink

ls -li
46271969 -rw-rw-r– 2 marcv marcv 24 Nov 2 20:54 hardlink
46271969 -rw-rw-r– 2 marcv marcv 24 Nov 2 20:54 original
46271970 lrwxrwxrwx 1 marcv marcv 8 Nov 2 20:54 softlink → original

rm original
ls -l
-rw-rw-r– 1 marcv marcv 24 Nov 2 20:43 hardlink
lrwxrwxrwx 1 marcv marcv 8 Nov 2 20:44 softlink → original (broken link)
''''

Redirecting:

Standard redirecting:

There are 3 redirects in Linux:

  1. stdin: standard input has file descriptor number as 0 (keyboard, mouse, ..?)
  2. stdout: standard output has file descriptor number as 1 (monitor)
  3. stderr: standard error has file descriptor number as 2 (monitor)

We can redirect these output using >, <, and 2>:

Command Redirects
ls -l > output output to “output” (not overrides output to stdout which is terminal)
ls -l » output same but appends to existing content instead of overwriting
'' cat < file'' redirect content of file to cat (quite useless as cat file will do the same)
mail user@here.nl < content using mailprogram, send content
ls -l /root 2> errorfile redirect errors to errorfile (valid output to stdout)

Using redirect in combination with EOF:

Assign multi-line string to a shell variable:

sql=$(cat <<EOF
SELECT foo, bar FROM db
WHERE foo='baz'
EOF
)

The $sql variable now holds the new-line characters too. You can verify with echo -e “$sql”

Pass multi-line string to a file in Bash:

cat <<EOF > print.sh
#!/bin/bash
echo \$PWD
echo $PWD
EOF

The print.sh file now contains:

#!/bin/bash
echo $PWD
echo /home/user

Pass multi-line string to a pipe in Bash:

cat <<EOF | grep 'b' | tee b.txt
foo
bar
baz
EOF

The b.txt file contains bar and baz lines. The same output is printed to stdout.

Pipes (|):

  • A pipe is used by the shell to connect the output of one command directly to the input of another command.
  • The symbol is the vertical bar (|)
  • Syntax: command1 [arguments] | command2 [arguments] | command3 [arguments] etc
command what it does
ls -ltr | less
feed less with output of ls -ltr
 find . *file | grep name
find files and grep in filenames(!)
 cat file* | grep string
cat files and grep inside content(!) This can also be done using
grep -R string ./*

Getting help:

  • whatis command
  • command –help
  • man command
  • help command

File editors:

  • vi
  • ed
  • ex
  • emacs
  • pico
  • vim

For RHCSA you'll be using vi because it's present on almost all *nix systems.

Common keys in command mode:

  • i for insert
  • a for append (A for append at end of line)
  • o for new line edit mode
  • r for replace
  • y for yank (copy)
  • d for delete / cut
  • p for paste
  • q for quit
  • h for left
  • j for down
  • k for up
  • l for right
  • dd: cut line
  • dw: cut word
  • 30dd: cut 30 lines
  • u: undo
  • 3dw: cut 3 words
  • x: cut character
  • 3x: ?
  • r-character: replace current character with new

User account management:

commands:

  • useradd: add user
  • groupadd: add group
  • userdel: delete user
  • groupdel: delete group
  • usermod: modify user
  • chage: change password change requirements (per user)

files:

  • /etc/passwd: contains user information
  • /etc/group: contains group information
  • /etc/shadow: stores actual password in encrypted format and password age (chage)
  • /etc/login.defs: contains system-wide default password policy, also contains UID policy, umask and other stuff

Some examples:

Command What it does
useradd -d /homedir -g group username add user, assign to group and define homedir
usermod -a -G wheel user add user to additional group wheel
useradd -r nonuser create system account
useradd -s /bin/zsh user create user and define shell
chage -m 5 user user can change password in 5 days
chage -M 90 -W 70 user user must change password every 90 days and gets warning 7 days prior
chage -I 7 user account will be disabled 7 days after password expires

Switch users and sudo access:

Commands:

  • sudo su - username: switch to username
  • sudo command: execute command as root
  • visudo: edit /etc/sudoers which defines what users can elevate which privileges

Log monitoring:

Log directory is /var/log/ (unless specified other per application)

Accurate system time is critical!

RedHat 8 uses NTP for time synchronization.

  • boot.log (overwritten on each (re)boot)
  • chrony (NTP)
  • cron
  • maillog (sendmail log)
  • secure: records login attempts (= on RedHat, auth.log on Debian)
  • messages (no 1 for troublesshooting, syslog on Debian)
  • httpd
  • dmesg (on hardware, also to be viewed using command dmesg)
  • firewalld
  • etc
marc/linux/rhcsa8_uittreksel.1637492041.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki