Bagian 10 Linux Shell

10.1 Apa itu Shell?

Shell adalah istilah untuk commnd-line interface antara user dan sistem operasi. Tampilan ini biasa dikenal dengan TUI (Text User Interfaces). Shell biasa digunakan mode interaktif, yaitu langsung kita ketikan perintah pada “terminal” dan enter, maka shell akan memberikan response berupa hasil atau response lainnya. Shell juga dapat digunakan dalam mode non interaktif (batch). Kita simpan perintah-perintah ke dalam file, dan kemudian shell membaca dan mengeksekusi setiap baris command/perintah yang ada dalam file tersebut.

Shell dapat berfungsi sebagai interpreter sekaligus bahasa pemrograman. Sebagai interpreter, artinya shell sebagai penyedia utility yang dilengkapi banyak sekali command bawaan, seperti cd, rm, mkdir dan lain-lain. Meskipun tujuan utamanya bukan sebagai bahasa pemrograman, shell juga dilengkapi dengan variable, control flow dan lain-lain.

Setiap sistem operasi mempunyai shell masing-masing, seperti:

  • Mac OS X = bash
  • Windows = cmd.exe
  • Linux = bash

Untuk kesempatan ini, kita akan praktik dasar-dasar shell yang bisa digunakan di sistem operasi berbasis UNIX (seperti Linux, Mac OS dan lain-lain). Sebetulnya, UNIX tidak cuma mempunyai bash atau Bourne Again Shell, tetapi ada shell lain yang bisa digunakan seperti Bourne shell/sh, Korn shell/ksh, POSIX shell/sh.

Bagi pengguna Windows, dapat menggunakan Windows Subsystem for Linux (WSL).

10.2 Perintah Dasar Shell

10.2.1 Direktori

  • Melihat working directory: pwd
pwd
## /mnt/d/SSD21/Bookdown/sta561
  • Membuat directory baru: mkdir
mkdir test
  • Pindah ke directory lain: cd
cd test

10.2.2 File

  • Membuat file baru: touch
touch myfile.txt
  • Menulis pada file
echo "hello!" >> myfile.txt
  • Menampilkan list file dan folder: ls
ls
## 01-what-r.Rmd
## 02-r-dasar.Rmd
## 03-operasi-dasar-r.Rmd
## 04-data-wrangling-1.Rmd
## 05-data-wrangling-2.Rmd
## 06-visualisasi-data.Rmd
## 07-simulation.Rmd
## 08-function-oop.Rmd
## 09-optimization.Rmd
## 91-shell.Rmd
## 99-referensi.Rmd
## README.md
## _bookdown.yml
## _bookdown_files
## _output.yml
## data
## docs
## img
## index.Rmd
## myfile.txt
## nur_andi_sta561.Rmd
## nur_andi_sta561.log
## nur_andi_sta561_cache
## nur_andi_sta561_files
## reference.bib
## series_cache
## sta561.Rproj
## sta561_cache
## test
# List file dalam format lebih lengkap
ls -l
## total 340
## -rwxrwxrwx 1 nurandi nurandi   3243 Sep  6 03:16 01-what-r.Rmd
## -rwxrwxrwx 1 nurandi nurandi  15860 Sep  7 18:15 02-r-dasar.Rmd
## -rwxrwxrwx 1 nurandi nurandi   8636 Sep  6 16:13 03-operasi-dasar-r.Rmd
## -rwxrwxrwx 1 nurandi nurandi   5398 Oct  4 14:18 04-data-wrangling-1.Rmd
## -rwxrwxrwx 1 nurandi nurandi  18459 Sep  8 20:30 05-data-wrangling-2.Rmd
## -rwxrwxrwx 1 nurandi nurandi  17032 Sep 18 18:50 06-visualisasi-data.Rmd
## -rwxrwxrwx 1 nurandi nurandi  13297 Oct  5 12:20 07-simulation.Rmd
## -rwxrwxrwx 1 nurandi nurandi  25293 Oct  6 22:42 08-function-oop.Rmd
## -rwxrwxrwx 1 nurandi nurandi  10596 Oct  7 05:22 09-optimization.Rmd
## -rwxrwxrwx 1 nurandi nurandi   2585 Sep  8 20:45 91-shell.Rmd
## -rwxrwxrwx 1 nurandi nurandi     21 Sep  8 20:47 99-referensi.Rmd
## -rwxrwxrwx 1 nurandi nurandi    125 Sep  8 21:44 README.md
## -rwxrwxrwx 1 nurandi nurandi    436 Oct  6 22:44 _bookdown.yml
## drwxrwxrwx 1 nurandi nurandi    512 Oct  7 05:23 _bookdown_files
## -rwxrwxrwx 1 nurandi nurandi    461 Oct  5 10:50 _output.yml
## drwxrwxrwx 1 nurandi nurandi    512 Sep 18 12:23 data
## drwxrwxrwx 1 nurandi nurandi    512 Oct  7 05:23 docs
## drwxrwxrwx 1 nurandi nurandi    512 Sep 18 11:57 img
## -rwxrwxrwx 1 nurandi nurandi    507 Sep 17 21:32 index.Rmd
## -rwxrwxrwx 1 nurandi nurandi      7 Oct  7 05:25 myfile.txt
## -rwxrwxrwx 1 nurandi nurandi 121643 Oct  7 05:23 nur_andi_sta561.Rmd
## -rwxrwxrwx 1 nurandi nurandi  67631 Oct  5 12:23 nur_andi_sta561.log
## drwxrwxrwx 1 nurandi nurandi    512 Sep  6 16:33 nur_andi_sta561_cache
## drwxrwxrwx 1 nurandi nurandi    512 Sep 18 14:47 nur_andi_sta561_files
## -rwxrwxrwx 1 nurandi nurandi   7305 Oct  6 22:43 reference.bib
## drwxrwxrwx 1 nurandi nurandi    512 Sep  6 12:35 series_cache
## -rwxrwxrwx 1 nurandi nurandi    240 Oct  6 22:40 sta561.Rproj
## drwxrwxrwx 1 nurandi nurandi    512 Sep  6 16:32 sta561_cache
## drwxrwxrwx 1 nurandi nurandi    512 Oct  7 05:25 test
# List file termasuk hidden file
ls -a
## .
## ..
## .Rhistory
## .Rproj.user
## .git
## .gitignore
## 01-what-r.Rmd
## 02-r-dasar.Rmd
## 03-operasi-dasar-r.Rmd
## 04-data-wrangling-1.Rmd
## 05-data-wrangling-2.Rmd
## 06-visualisasi-data.Rmd
## 07-simulation.Rmd
## 08-function-oop.Rmd
## 09-optimization.Rmd
## 91-shell.Rmd
## 99-referensi.Rmd
## README.md
## _bookdown.yml
## _bookdown_files
## _output.yml
## data
## docs
## img
## index.Rmd
## myfile.txt
## nur_andi_sta561.Rmd
## nur_andi_sta561.log
## nur_andi_sta561_cache
## nur_andi_sta561_files
## reference.bib
## series_cache
## sta561.Rproj
## sta561_cache
## test
  • Memindahkan dan mengubah nama file: mv
mv myfile.txt fileku.txt
  • Menyalin file: cp
cp fileku.txt myfile.txt
  • Tampilkan list file: ls
ls
## 01-what-r.Rmd
## 02-r-dasar.Rmd
## 03-operasi-dasar-r.Rmd
## 04-data-wrangling-1.Rmd
## 05-data-wrangling-2.Rmd
## 06-visualisasi-data.Rmd
## 07-simulation.Rmd
## 08-function-oop.Rmd
## 09-optimization.Rmd
## 91-shell.Rmd
## 99-referensi.Rmd
## README.md
## _bookdown.yml
## _bookdown_files
## _output.yml
## data
## docs
## fileku.txt
## img
## index.Rmd
## myfile.txt
## nur_andi_sta561.Rmd
## nur_andi_sta561.log
## nur_andi_sta561_cache
## nur_andi_sta561_files
## reference.bib
## series_cache
## sta561.Rproj
## sta561_cache
## test
  • Menghitung jumlah baris: wc
wc myfile.txt
## 1 1 7 myfile.txt
  • Menampilkan isi file: cat
cat myfile.txt
## hello!
  • Menghapus file: rm
rm myfile.txt fileku.txt
  • Menghapus directory: rm -r
rm -r test