0% found this document useful (0 votes)
63 views

Linux Basic and Administration Commands: For Public Use

The document provides information on Linux commands for file compression (zip, tar), text searching and parsing (grep, awk, sed), system monitoring (ps, top, df), user and group management (useradd, groupadd), and file permissions (chmod). It describes the basic usage of each tool and provides examples of common tasks like compressing files, finding text in files, viewing system resources, adding users, and setting permissions on files.

Uploaded by

Mishraa_ji
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views

Linux Basic and Administration Commands: For Public Use

The document provides information on Linux commands for file compression (zip, tar), text searching and parsing (grep, awk, sed), system monitoring (ps, top, df), user and group management (useradd, groupadd), and file permissions (chmod). It describes the basic usage of each tool and provides examples of common tasks like compressing files, finding text in files, viewing system resources, adding users, and setting permissions on files.

Uploaded by

Mishraa_ji
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Linux Basic and Administration Commands 2011

Zip & unzip:


1. zip filename.zip path/ - general usage
2. zip 1million.txt.zip 1million.txt
Note: zip differs slight from gzip and bzip2 in that the destination file (resultant zip file) is specified
before the source
3. unzip 1million.txt.zip

Tar & Gzip/Bzip2:


1. tar -cvf filename.tar path/ - creates a non-compressed archive
2. tar -cvf 1million.txt.tar 1million.txt
Note: tar, requires a small overhead for itself in each file
3. tar -czvf 1million.txt.tar.gz 1million.txt - creates, tar/gzip document
4. tar -cjvf 1million.txt.tar.bz2 1million.txt - creates, tar/bzip2 document
5. tar -tzvf
6. tar -cjvf 1million.txt.tar.bz2 1million.txt testRH5/- creates, tar/bzip2 document for the text file and
'testRH5' directory tree

GREP

Features:
1. The ability to parse lines based on text and/or RegExes
2. Post-processor
3. Searches case-sensitively, by default
4. Searches for the text anywhere on the line

1. grep 'linux' grep1.txt


2. grep -i 'linux' grep1.txt - case-insensitive search
3. grep '^linux' grep1.txt - uses '^' anchor to anchor searches at the beginning of lines
4. grep -i '^linux' grep1.txt
5. grep -i 'linux$' grep1.txt - uses '$' anchor to anchor searches at the end of lines

Note: Anchors are RegEx characters (meta-characters). They're used to match at the beginning and end
of lines

6. grep '[0-9]' grep1.txt - returns lines containing at least 1 number


7. grep '[a-z]' grep1.txt
8. rpm -qa | grep grep - searches the package database for programs named 'grep'
9. rpm -qa | grep -i xorg | wc -l - returns the number of packages with 'xorg' in their names
10. grep sshd messages
11. grep -v sshd messages - performs and inverted search (all but 'sshd' entries will be returned)
12. grep -v sshd messages | grep -v gconfd
13. grep -C 2 sshd messages - returns 2 lines, above and below matching line

Note: Most, if not all, Linux programs log linearly, which means one line after another, from the earliest
to the current

Note: Use single or double quotes to specify RegExes


Also, execute 'grep' using 'egrep' when RegExes are being used

For Public Use Page 1


Linux Basic and Administration Commands 2011

Awk

Features:
1. Field/Column processor
2. Supports egrep-compatible (POSIX) RegExes
3. Can return full lines like grep
4. Awk runs 3 steps:
a. BEGIN - optional
b. Body, where the main action(s) take place
c. END - optional
5. Multiple body actions can be executed by separating them using semicolons. e.g. '{ print $1; print $2 }'
6. Awk, auto-loops through input stream, regardless of the source of the stream. e.g. STDIN, Pipe, File

Usage:
1. awk '/optional_match/ { action }' file_name | Pipe
2. awk '{ print $1 }' grep1.txt

Note: Use single quotes with awk, to avoid shell interpolation of awk's variables

3. awk '{ print $1,$2 }' grep1.txt

Note: Default input and output field separators is whitespace

4. awk '/linux/ { print } ' grep1.txt - this will print ALL lines containing 'linux'
5. awk '{ if ($2 ~ /Linux/) print}' grep1.txt
6. awk '{ if ($2 ~ /8/) print }' /var/log/messages - this will print the entire line for log items for the 8th
7. awk '{ print $3 }' /var/log/messages | awk -F: '{ print $1}'

Sed - Stream Editor

Features:
1. Facilitates automated text editing
2. Supports RegExes (POSIX)
3. Like Awk, supports scripting using '-F' option
4. Supports input via: STDIN, pipe, file

Usage:
1. sed [options] 'instruction[s]' file[s]
2. sed -n '1p' grep1.txt - prints the first line of the file
3. sed -n '1,5p' grep1.txt - prints the first 5 lines of the file
4. sed -n '$p' grep1.txt - prints the last line of the file
5. sed -n '1,3!p' grep1.txt - prints ALL but lines 1-3
6. sed -n '/linux/p' grep1.txt - prints lines with 'linux'
7. sed -e '/^$/d' grep1.txt - deletes blank lines from the document
8. sed -e '/^$/d' grep1.txt > sed1.txt - deletes blank lines from the document 'grep1.txt' and creates
'sed1.txt'
9. sed -ne 's/search/replace/p' sed1.txt
10. sed -ne 's/linux/unix/p' sed1.txt

For Public Use Page 2


Linux Basic and Administration Commands 2011

11. sed -i.bak -e 's/3/4' sed1.txt - this backs up the original file and creates a new 'sed1.txt' with the
modifications indicated in the command

Note: Generally, to create new files, use output redirection, instead of allowing sed to write to STDOUT

Note: Sed applies each instruction to each line

Perl

Features:
1. Parses text
2. Executes programs
3. CGI - Web forms, etc.
4. Supports RegExes (Perl and POSIX)
5. etc.

Example:
1. Print 'Hello World' to STDOUT
a. perl -c helloworld.pl - checks the syntax of the script
b. perl helloworld.pl - executes the script
c. chmod +x helloworld.pl && ./helloworld.pl

2. Parse RegExes from the command line

System Utilities

Features:
1. Process listing
2. Free/available memory
3. Disk utilization

1. ps - process status/listing
a. ps -ef or ps -aux
2. top - combines, ps, uptime, free and updates regularly

3. uptime - returns useful system utilization information:


a. current time
b. uptime - days, hours and minutes
c. connected users
d. load averaged - 1,5,15 minute values

4. free - returns memory utilization


a. RAM
b. SWAP
free -m - for human readable format

5. df - returns disk partition/mount point information


a. df - returns info. using kilobytes

For Public Use Page 3


Linux Basic and Administration Commands 2011

b. df -h - returns info. using megabytes/human readable (gigs/teray/etc.)

6. vmstat - reports on: processes, memory, paging, block I/O, traps, CPU activity
a. vmstat
b. vmstat -p /dev/hda1 - returns partitions stats for /dev/hda1 (/boot)

7. gnome-system-monitor - GUI, combining most system utilities

8. ls -ltr /proc
a. cat /proc/cpuinfo

9. kill PID - kills the process with a given PID

10. runlevel - returns runlevel information using 2 fields:


a. represents previous runlevel
b. represents current runlevel

User/Group Management

Features:
1. The ability to control users and groups

Primary tools:
1. useradd - used to add users and modify group membership
2. system-config-users

Example:
1. Create a user named 'student1' using 'useradd'

Note: Default user settings derive from: /etc/login.defs


a. useradd student1
b. set password for user 'student1': passwd student1

Default User Accounts DB: /etc/passwd


student1:x:501:501::/home/student1:/bin/bash

username:shadow_reference:uid:gid:Description(GECOS):$HOME:$SHELL
Note: /etc/passwd is a world-readable file
Note: /etc/shadow now stores passwords in encrypted form
Note: /etc/shadow is NOT world-readable

Fields in /etc/shadow:
student1:$1$XSFMv2ru$lfTACjN.XxaxbHA0EkB4U0:13891:0:99999:7:::

1. username:
2. encrypted_password:
3. Days_since_Unix_epoch_password_was_changed (01/01/1970)
4. Days before password may be changed

For Public Use Page 4


Linux Basic and Administration Commands 2011

5. Days after which the password MUST be changed


6. Days before password is to expire that user is warned
7. Days after password expires, that account is disabled
8. Days since Unix epoch, that account is disabled
9. Reserved field (currently unused)

2. Modify user 'student1' to have password expire after 45 days


a. usermod

Groups:
1. groupadd - adds new group
2. groups - lists groups on the system: /etc/group
/etc/group - maintains group membership information

Example: Create a 'sales' group and add 'linuxusr' and 'student1' as members
1. groupadd sales
2. usermod -G sales linuxusr
3. usermod -G sales student1

Note: 2 types of groups exist:


1. Primary - used by default for a user's permissions
2. Supplemental - used to determine effective permissions

Note: use 'id' to determine the group information of user


Note: Create a new shell session to realize new group membership information

userdel/groupdel are used to delete users and groups, respectively

File Types - Permissions – Symlinks

Features:
1. The ability to restrict/control access to files

Note: 10 bits represent permissions for files (including directories)


Note: use 'ls -l' to examine permissions or GUI application like 'Nautilus'

-rwxrwxr-x 1 linuxusr linuxusr 681 Jan 13 11:31 regextest.pl

1st bit = file type. '-' = file, 'd' = directory


2nd - 4th bits = owner's permissions
r = read = 4
w = write = 2
x = execute = 1
- = none = 0

5th - 7th bits = group owner's permissions


r = read = 4
w = write = 2

For Public Use Page 5


Linux Basic and Administration Commands 2011

x = execute = 1
- = none = 0

8th - 10th bits = everyone (world)


r = read = 4
w = write = 2
x = execute = 1
- = none = 0

Example:
1. Manipulate file permissions using 'chmod'
a. chmod -x regextest.pl

-rw-rw-r-- 1 linuxusr linuxusr 681 Jan 13 11:31 regextest.pl


rw = 6 or 4+2 for owner
rw = 6 or 4+2 for group owner
r = 4 for everyone else (world)

Octal notation: 664 for file 'regexetest.pl'

chmod 664 regextest.pl - removes execution for ALL users


chmod 775 regextest.pl - enables execution for ALL users

2. Ensure that 'regextest.pl' is rw by owner and no one else


a. chmod 600 regextest.pl

Note: File will now be rw by owner (linuxusr) and 'root'

3. Ensure that 'regextest.pl' is r by owner and no one else


a. chmod 400 regextest.pl && ls -l regextest.pl

Note: chmod supports string values, which represent octal values


chmod +/- x file
chmod +/- w file
chmod +/- r file
chmod +/- u+x file - updates owner's execute permissions on the file
chmod +/- o+x file - updates other's execute permissions on the file
chmod +/- g+x file - updates group's execute permissions on the file

chmod a+rwx = chmod 777

chown - permits changing of ownership of files


a. chown root regextest.pl - changes ownership to 'root'
b. chown linuxusr:sales regextest.pl - changes owner and group to 'linuxusr:sales'

Example:
Update 'regextest.pl' so that owner and group owner may modify the file

For Public Use Page 6


Linux Basic and Administration Commands 2011

a. chmod 660 regextest.pl

SETUID:

Features:
1. ability to execute file as owner

chmod 4760 regextest.pl - this will ensure that the perl script always executes as the user 'linuxusr'
-rwsrw---- 1 linuxusr sales 787 Jan 13 16:08 regextest.pl

's' in the execute position means that the program will execute as that user

SETGID:

Features:
1. Ability to enforce permissions to a directory structure

mkdir /sales
chmod 2775 /sales

Create a file in the '/sales' directory as 'linuxusr'


seq 1000000 > linuxusr.1million.txt

chgrp:
Permits updating of group permissions

Sticky Bit:

Features:
1. Ability to ensure that users cannot delete others' files in a directory

drwxrwxrwt 23 root root 4096 Jan 13 15:05 /tmp/

/tmp - users cannot delete other user's files in '/tmp'

chmod 3777 /sales - ensures that /sales will not lose files from incorrect users

Example:
1. Set '/sales' using sticky bit and test
a. chmod 3777 /sales && ls -ld /sales OR chmod 777 /sales && chmod +t /sales

Symlinks

Features:
1. Provides shortcuts to files (including directories)
2. Provides hard links to inode (file system) locations

For Public Use Page 7


Linux Basic and Administration Commands 2011

Soft Links:
1. ln -s source_file target
a. ln -s ./regextest.pl lastscript.pl

Note: Soft links may span multiple file systems/hard drives


Note: Symlink count is NOT increased when using soft links

2. ln -s /home/linuxusr/testRH5/regextest.pl . - this will symlink (soft) to the /boot file system

Note: With soft links, if you change the name or location of the source file, you will break ALL of the
symlinks (soft)

Hard Links:

Features:
1. The ability to reference the same inode/hard drive location from multiple places within the same file
system
a. ln source target
ln regextest.pl ./testhardregextest.pl - creates a hard link

Quotas

Features:
1. Limits disk usage (blocks or inodes)
2. Tied to file systems (set on a per file system basis)
3. Can be configured for users and groups

Steps to enable quota support:


1. Enable quota support per file system in: /etc/fstab
a. defaults,usrquota,grpquota

2. Remount the file system(s)


a. mount -o remount /
b. use 'mount' to confirm that 'usrquota,grpquota' support are enabled

3. Create quota database files and generate disk usage table


a. quotacheck -mcug / - this creates /aquota.user & /aquota.group
b. quotacheck –mavug

4. Assign quota policies


a. edquota username - set blocks/inodes soft_limits hard_limit
edquota student1 - sets quotas for user 'student1'
export EDITOR=nano - to have edquota default to 'nano' editor

5. Check quotas
a. quota username
quota student1

For Public Use Page 8


Linux Basic and Administration Commands 2011

Note: place 'quotacheck -avug' in /etc/cron.*(hourly,daily)

6. Report on usage
a. repquota -a - this reports on usage

Note: The blocks are measured in 1K increments. i.e. 20000 blocks is roughly 20MB

Basic Provisioning of Partitions and File Systems

Features:
1. Ability to provision extra storage on-the-fly

Steps:
1. Identify available storage
a. 'fdisk -l' - returns connected storage

2. Create partitions on desired hard drive:


a. 'fdisk /dev/sdb' - interacts with /dev/sdb drive
b. 'n' - to add a new partition
c. 'p' - primary
d. '1' - start cylinder
e. '+4096M' - to indicate 4 Gigabytes
f. 'w' - to write the changes to the disk

Note: use 'partprobe partition (/dev/sdb1)' to force a write to a hard drive's partition table on a running
system
Note: 'fdisk' creates raw partitions

3. Overlay (format) the raw partition with a file system


a. mke2fs -j /dev/sdb1 - this will write inodes to partition

4. Mount the file system in the Linux file system hierarchy:


a. mkdir /home1 && mount /dev/sdb1 /home1
b. mount OR df -h - either will reveal that /dev/sdb1 is mounted

Note: lost+found directory is created for each distinct file system

5. Configure '/home1' to auto-mount when the system boots


a. nano /etc/fstab and copy and modify the '/home' entry

Swap Partitions & Files


Features:
1. Extra, virtual RAM for the OS

Steps:
1. Identify current swap space
a. swapon -s - enumerates partitions and/or files, which constitute swap storage

For Public Use Page 9


Linux Basic and Administration Commands 2011

b. free -m

2. Select target drive and provision swap partition


a. fdisk /dev/sdb
b. n
c. 2
d. 500
e. +512 (cylinder 562) - 63 cylinders are required for 512MB
f. t - change type
g. 82 - Linux Swap/Solaris
h. w - commit changes to disk

3. Create the swap file system on the raw partition: /dev/sdb2


a. mkswap /dev/sdb2

4. Enable swapping - publish the swap space to the kernel


a. swapon /dev/sdb2 - this enables swapping on /dev/sdb2

5. update /etc/fstab
a. /dev/sdb2 swap swap defaults 0 0

swapoff /dev/sdb2 - disables swapping on /dev/sdb2

Example:
1. Improve system performance by distributing swapping to /dev/sdb2
a. swapon /dev/sdb2
b. swapoff /dev/sda6
c. disable /dev/sda6 via /etc/fstab

Create Swap based on File

Features:
1. The ability to provision swap space based on a file, similar to pagefile.sys in Windows NT, etc., if you
have no available disk space to partition.
2. Doesn't waste partitions

Example:
1. Create 512MB swap file
a. dd if=/dev/zero of=/home1/swapfile1 bs=1024 count=524288
b. mkswap /home1/swapfile1 - overlays swap file system
c. swapon /home1/swapfile1 - makes swap space available to the kernel
2. Ensure that when the system reboots, the swap file is made available to the kernel
a. nano /etc/fstab - /home1/swapfile1 swap swap defaults 0 0

3. Create 2GB swap file


a. dd if=/dev/zero of=/home1/swapfile2 count=2G

For Public Use Page 10


Linux Basic and Administration Commands 2011

Logical Volume Management (LVM)

Features:
1. Ability to create volume sets and stripe sets
2. LVM masks the underlying physical technology (ATA,ATAPI,IDE,SCSI,SATA,PATA,etc.)
3. LVM represents storage using a hierarchy:
a. Volume groups
a1. Physical volumes (/dev/sda2, /dev/sdb2, etc.)
b. Logical Volumes
b1. File systems
3. LVM physical volumes can be of various sizes
4. Ability to resize volumes on the fly

Note: Volume groups join: physical volumes (PVs) and Logical Volumes (LVs)

Steps to setup LVM:


1. Create LVM partitions via fdisk or parted
a. fdisk /dev/sda, /dev/sdb, /dev/sdc
b. n
c. p
d. +10G
e. t - change to type '8e' (LVM)
f. w
g. partprobe /dev/sda

2. Create Physical Volumes using 'pvcreate'


a. pvcreate /dev/sda3 /dev/sdb3 /dev/sdc3

3. Create Volume Groups using 'vgcreate'


a. vgcreate volgroup001 /dev/sda3 /dev/sdb3 /dev/sdc3
Note: Volume groups can be segmented into multiple logical volumes

4. Create one or more Logical Volumes


a. lvcreate -L 10GB -n logvolvar1 volgroup001
b. lvcreate -L 10GB -n logvolusr1 volgroup001

5. Create File system on logical volume(s)


a. mke2fs -j /dev/volgroup001/logvolvar1
b. mke2fs -j /dev/volgroup001/logvolusr1

6. Mount logical volume


a. mkdir /var1
b. mount /dev/volgroup001/logvolvar1 /var1
c. mkdir /usr1
d. mount /dev/volgroup001/logvolusr1 /usr1

Note: Be certain to update: /etc/fstab so that volumes are mounted when the system reboots

For Public Use Page 11


Linux Basic and Administration Commands 2011

3-tiers of LVM display commands include:


a. pvdisplay - physical volumes - represent raw LVM partitions
b. vgdisplay - volume groups - aggregate physical volumes
c. lvdisplay - logical volumes - file systems - mount here

Rename of Logical Volume:


1. lvrename volume_group_name old new - used to rename volumes

Task: Rename 'logvolvar1' to 'logvolopt1'


a. lvrename volgroup001 logvolvar1 logvolopt1
Note: LVM is updated immediately, even while volume is mounted
However, you must remount the logical volume to see the changes
b. umount /var1 && mount /dev/mapper/volgroup001-logvolopt1 /opt1
c. Update /etc/fstab

Remove Logical Volume:

Example: Remove 'logvolusr1' from the logical volume pool


a. umount /usr1
b. lvremove /dev/mapper/volgroup001-logvolusr1
c. use 'lvdisplay' to confirm removal

Resize Logical Volume:

Example: Grow (resize) 'logvolopt1' to 20GB


a. lvresize -L 20GB /dev/volgroup001/logvolopt1
b. lvdisplay - to confirm new size of logical volume
c. df -h - will still reveal the current size
d. Resize the file system to update the INODE table on the logical volume to account for the
new storage in 'logvolopt1'
'resize2fs -f -p /dev/volgroup001/logvolopt1'

Note: You may resize file systems online if the following are met:
1. 2.6x kernel series
2. MUST be formatted with ext3

Example: Shrink (resize) 'logvolopt1' to 15GB


a. lvresize -L 15GB /dev/volgroup001/logvolopt1
b. lvdisplay
c. df -h
d. resize2fs -f -p /dev/volgroup001/logvolopt1
Note: online shrinking is not supported
e. df -h

Note: Check disk utilization prior to shrinking to reduce the risk of losing data

For Public Use Page 12


Linux Basic and Administration Commands 2011

LVM GUI Utility:


system-config-lvm

RAID

Features:
1. The ability to increase availability and reliability of data

Example:
1. Create a RAID-1 Device (/dev/md0..n)
a. fdisk /dev/sdb - to create usable raw partitions
b. partprobe /dev/sdb - to force a kernel update of the partition layout of the disk: /dev/sdb
b. mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb5 /dev/sdb6
c. cat /proc/mdstat - lists active RAID (md) information
d. mke2fs -j /dev/md0 - overlays a file system on the RAID device
e. mount /dev/md0 /raid1
f. update: /etc/fstab

Note: use 'mdadm --query /dev/md0' to get information about a RAID device
Note: You may create RAID volumes/devices on a single or on multiple disks
Ideally, your RAID volumes should span multiple physical disks to improve:
a. reliability
b. performance
c. availability

2. Remove the RAID-1 device


a. umount /dev/md0
b. mdadm --manage --stop /dev/md0

3. Create a RAID-5 Volume


a. fdisk /dev/sdb - to create a partition number 7
b. partprobe /dev/sdb - to update the kernel's view of the partition table
c. mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb5 /dev/sdb6 /dev/sdb7
d. watch cat /proc/mdstat - refreshes every 2 seconds
e. Overlay a file system: mke2fs -j /dev/md0
f. mount /dev/md0 /raid5
g. Test I/O to RAID-5 device
h. Update: /etc/fstab

RPM

Features:
1. Provides package management
a. Query
b. Install
c. Uninstall
d. Upgrade
e. Verify

For Public Use Page 13


Linux Basic and Administration Commands 2011

2. Auto-verifies packa

For Public Use Page 14

You might also like