Table of contents
Learn bash in 15 minutes
https://learnxinyminutes.com/docs/bash/
How much free space is there in the server?
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 47G 0 47G 0% /dev
tmpfs 47G 0 47G 0% /dev/shm
tmpfs 47G 455M 46G 1% /run
tmpfs 47G 0 47G 0% /sys/fs/cgroup
/dev/sda2 218G 9.8G 209G 5% /
/dev/sda1 1014M 228M 787M 23% /boot
/dev/sdb1 9.1T 6.7T 2.5T 74% /data/usb-drive
gfs01ib:/usersvol01.tcp 15T 3.7T 12T 25% /home/users
gfs01ib:/mialab.tcp 330T 267T 64T 81% /data/mialab
gfs01ib:/trdapps.tcp 30T 346G 30T 2% /trdapps
gfs01ib:/collab.tcp 300T 286T 15T 96% /data/analysis
Above example shows 64TB free space in /data/mialab and 15TB in /data/analysis, which are primarily used for research data and tools. It also shows 12TB free space in the home directory.
Find information about the system
# Processors
$ lscpu
# Memory
$ free -h
# Processors and memory
$ top
$ htop
# GPUs
$ nvidia-smi
$ nvtop # see software page for details
How big is ?
$ cd <some directory>
$ du -sh
# get size of each child directory
$ du -h --max-depth=1
$ dust
Display help about a command
$ <command> --help
$ man <command>
ls
tricks
# list extra info about files
$ ls -l
# list hidden files along with extra info
$ ls -al
# list files in order of date modified
$ ls -lt
$ ls -ltr
# list files in order of size
$ ls -Sl
$ ls -Slr
# how many file/folders in a directory
$ ls | wc -l
# how many file/folders with <something> in the name in a directory
$ ls | grep -i *<something>* | wc -l
Text file tricks
# view contents of a file
$ cat <filename>
# search contents of a file
$ cat <filename> | grep <something>
# case-insensitive search
$ cat <filename> | grep -i <something>
# inverse search
$ cat <filename> | grep -v <something>
# how many lines in a file
$ cat <filename> | wc -l
# how many lines contains <something>
$ cat <filename> | grep -i <something> | wc -l
# how many lines contains <something> in all .txt files in a directory
$ cat *.txt | grep -i <something> | wc -l
# view first few lines of a file
$ head <filename>
$ cat <filename> | head
# view last few lines of a file
$ tail <filename>
# monitor changes in a file every 10 seconds
$ tail -f <filename> -n 10
# monitor changes in all .txt files in a directory every 10 seconds
$ tail -f *.txt -n 10
Convert line endings
# windows to unix
$ dos2unix <filename>
# unix to windows
$ unix2dos <filename>