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