# Basic Linux Commands

##### 1.2 From the manual command man,

Example to show the manual page for the command find

 $man find  ##### 1.3 From the info command info $ info

The methods above can be used to obtain more details and examples about the usage of the commands that will appear in the remaining of the tutorial.

#### 2. Manage files and directories

After logging into the cluster or after opening a terminal the user is located into the working directory. Operations like listing, modification, editing, execution, and so forth can be performed to any file in the filesystem that the user has the permissions to access.

##### 2.1 Navigating into directories

The command pwd may be used to obtain the value of the working directory, For example

 $pwd /home/s/someuser  The output of the pwd command is a directory full pathname. Any file or directory in the filesystem has a full pathname which starts with the backslash symbol /. The command cd is used to change into a different existing directory. For example $ cd /apps
$pwd /apps ##### 2.2 List files and directories The command ls is used to print the list of the files and directories in the working directory. Without any parameters the command print a multicolumn list $ ls

Files or directories names can be added to the command to print list of files and list the contents of directories. For example as following where the contents of the  system root  directory (/) is listed

 $ls / apps cgroup gridware lib64 mnt root srv usr bin dev home lost+found net sbin sys var boot etc imports media opt scratch tmp work bucket genefs lib misc proc selinux unit Parameters may be added to produce different printing output with more ore less information. For example, the parameter -F allows to differentiate between files types and directories in a mutlicolumn listing $ ls -F

the parameter -a shows hidden files (hidden files start with a dot symbol, like .bashrc)

 $ls -a the parameter -l print one file per line with detailed file information (creation date, permissions, file size, etc) $ ls -l

Parameter can be concatenated to combine their actions. For example adding the parameter -h to the parameter -l makes the command ls outputs the size of the files using k, M, and G suffixes, for kilobytes, megabytes and gigabytes respectively

 $ls -lh ##### 2.3 Copy, delete, rename and move A given file, say source file, can be copied to another file, say destination file using the command cp. The operation is a duplication if the destination file does not exist, or a overwriting if the destination file exist. For example source file, fileS, is copied to destination file, fileD, by doing $ cp fileS fileD

Similarly a file can be renamed (if the destination file does not exist) or moved (if the destination file is a directory name) by using the command mv. For example

 $mv fileS fileD or $ mv fileS /tmp

The command rm deletes a given file

 $rm fileS  The same command may be used with the option -r to deletes all the files in a directory, directories, sub-directories and files in the sub-directories. For example $ rm -r dirA

An empty directory can be deleted using the command rmdir, like

 $rmdir dirA ##### 2.4 Show contents of a file The whole content of a text file can be output to the terminal screen with the command cat. The user needs to use the mouse to scroll into the text. Apply this command with a binary file may have unpredictable results $ cat .bashrc

The commands, more, less, head, and tail help to make more or less sense of the text file content. more will output the file content into the terminal screen and will allow you to scroll forward and backward using the space key and key b, respectively, until the end of the file is reached. For example

 $more /usr/share/X11/rgb.txt more allows for example, to make string search using the backslash /. The command less is similar to more, but it has many more features. On of these features is being faster than more for scrolling into big text files. Example $ less /usr/share/X11/rgb.txt

The command head displays the first line of a text file or list of text files. Without parameters head outputs only the first 10 lines of the file,

 $head /usr/share/X11/rgb.txt a parameters can be used to print more or less than 10 lines of the file $ head -5 /proc/meminfo
MemTotal:       49409336 kB
MemFree:        14880700 kB
Buffers:          379124 kB
Cached:         30606776 kB
SwapCached:         8500 kB


The command tail is similar to the command head but displays the last lines of a file

 $tail /usr/share/X11/rgb.txt $ tail -24 /usr/share/X11/rgb.txt
##### 2.5 Edit a file

There exist many text file editors for terminal that can be more or less easy to learn and to use. An easy to use and to learn simple text file editor is nano

 $nano /etc/nanorc Other more sophisticated but very popular text file editor is vi and its modern improvment vim $ vi /etc/vimrc
 $vim /etc/vimrc ##### 2.6 Special directories names The symbol / has two meanings, the system root directory when it is at the beginning of a full pathname, or directory name separator in a directory or file pathname. Beside the symbol / there are the symbols ~, ., and .. that represent the user home directory, working directory, and the parent of the working directory, respectively. List the current working directory $ ls .

List the parent directory

 $ls .. List the user home directory $ ls ~

List the parent directory of the user directory

 $ls ~/.. #### 3. Manage processes A process is a running program or application that performs operations using the system resources. Each process is identified by a unique process ID (PID). ##### 3.1 Show running processes The command top allows to monitor the running processes. Press the key q to quit the monitoring. To have help about how to control the monitoring parameters and output, press the key h. $ top

Tasks: 601 total,   2 running, 573 sleeping,  26 stopped,   0 zombie
Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  49409336k total, 40975628k used,  8433708k free,   370372k buffers
Swap:  4194296k total,   106720k used,  4087576k free, 38039904k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14470 etaillef  20   0 26328 1860 1144 R  1.0  0.0   0:00.08 top
1874 root      20   0     0    0    0 S  0.3  0.0   0:49.98 flush-253:0
1 root      20   0 21436 1056  844 S  0.0  0.0   6:44.42 init
2 root      20   0     0    0    0 S  0.0  0.0   0:22.93 kthreadd
3 root      RT   0     0    0    0 S  0.0  0.0   0:39.45 migration/0
.....



The command ps shows the processes running on a given Linux operating system. For example, to show all the running process owned by the current user:

 $ps wux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 1370 776 0.0 0.0 124368 7052 pts/43 Ss+ Sep09 0:00 -bash 1370 17167 10.0 0.0 121140 1376 pts/33 R+ 17:59 0:00 ps wux 1370 29903 0.0 0.0 114048 4960 ? S Sep09 0:32 sshd: etaillefer@pts/41,pts/43,pts/33 1370 29904 0.0 0.0 124368 7032 pts/41 Ss Sep09 0:00 -bash 1370 31016 0.0 0.0 124372 7072 pts/33 Ss Sep10 0:01 -bash and to show all processes running on the system $ ps waux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  21436  1056 ?        Ss   Jun22   6:45 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jun22   0:23 [kthreadd]
.....
fujie    30391  0.0  0.0 138152  3996 pts/6    Ss+  Sep08   0:00 -zsh
4538     30418  0.0  0.0 119592  2376 pts/13   Ss+  09:20   0:01 -bash
nrpe     30742  0.0  0.0  43400   912 ?        Ss   Jun25   7:13  /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
1370     31016  0.0  0.0 124372  7072 pts/33   Ss   Sep10   0:01 -bash
1053     31272  0.0  0.0 100940   604 pts/4    T    Aug29   0:00 tail -f DCN.joboutputs
satoshi  31495  0.0  0.0  69720  3736 pts/31   S+   Sep02   0:02 ssh -Y tombo-login1.oist.jp
.....
##### 3.2 Stop a process

A process can be stopped  by using the kill command with a list of process PID:

 $kill 29903 29904 A SIGKILL signal (-9) can also be sent to processes that refuse to stop: $ kill -9 29903

#### 4. Check system resources usage

##### 4.1 CPU usage

The CPU usage can be monitored using the column %CPU from the top command. htop is another CPU usage monitor with nice printing.

##### 4.2 Memory usage

The amount of free and used memory is obtained with free. Usage amount can be output in bytes, kilobytes, megabytes or gigabytes using the parameters-b, -k, -m, and -g, respectively:

 $free -m total used free shared buffers cached Mem: 1033944 554314 479630 0 365 541146 -/+ buffers/cache: 12802 1021142 Swap: 4095 0 4095  The columns VIRT, RES, and %MEM in the top command can also be used to monitor the memory usage of a given process. ##### 4.3 Disk usage A given file or given directory is located into a filesystem which resides into a partition. Partition can be a part of a segregated storage device, the aggregation of several storage devices, or a remote storage system provided by some network protocol. A given partition is attached to a directory full pathname, this pathname is called mounted point. The command df prints the usage information about all the mounted partitions living in the system. Example $ df -h
Filesystem                           Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-slash           30G  7.3G   21G  26% /
tmpfs                                 24G   84K   24G   1% /dev/shm
/dev/sda1                            2.0G   98M  1.8G   6% /boot
/dev/mapper/vg_system-scratch        220G  317M  208G   1% /scratch
/dev/mapper/vg_system-var_log         20G  278M   19G   2% /var/log
ddnsfa10ke-4:/genefs                 599T  492T  107T  83% /genefs
homes.oist.jp:/vol/home              8.0T  4.0T  4.1T  50% /imports/home
tombo-mds1@tcp:tombo-mds2@tcp:/work  393T  328T   62T  85% /work
kago.oist.jp:/vol/hpc_software       1.6T  1.4T  197G  88% /imports/hpc_software
bucket.oist.jp:/mabuya/bucket        1.2P  236T  940T  21% /imports/bucket
web-home.oist.jp:/vol/web_home       820G   97G  723G  12% /imports/web_home

One can also inspect the usage information of a partition to which a given directory belongs to. For example to obtain the usage information of the partition holding the directory /home/e

 $df -h /home/e Filesystem Size Used Avail Use% Mounted on homes.oist.jp:/vol/home 8.0T 4.0T 4.1T 50% /imports/home ##### 4.4 File/directory space usage The space taken by directories and files can be obtain using the command du. For example, to obtain the amount of space used by the directory /apps/src $ du -shc /apps/src
5.5G    /apps/src
5.5G    total