Linux Pengguna Akhir

Daripada Wikibooks.
Jump to navigation Jump to search

Manipulasi Ruang Storan[sunting]

Mampat dan Nyahmampat - gzip, gunzip[sunting]

Terdapat banyak faedah jika kita dapat kecilkan saiz fail. Penghantaran fail bersaiz besar ke lokasi yang jauh dapat dilakukan dengan lebih cepat jika saiznya dikecilkan terlebih dahulu. Pengecilan fail juga dapat kurangkan penggunaan storan. Guna arahan gzip untuk kecilkan saiz fail dan arahan gunzip untuk kembalikan fail kepada saiz asal.


[guest@komputer01 ~]$ ls -al failbaru
-rw-r--r--. 1 guest users 59 Feb  5 14:26 failbaru
[guest@komputer01 ~]$ gzip failbaru
[guest@komputer01 ~]$ ls -al failbaru
ls: cannot access failbaru: No such file or directory
[guest@komputer01 ~]$ ls -al failbaru.gz
-rw-r--r--. 1 guest users 78 Feb  5 14:26 failbaru.gz

Arahan gzip akan menghasilkan fail berpenambahan .gz. Jika fail terlalu kecil, saiz fail yang sudah dimampat akan menjadi besar sedikit seperti contoh di atas. Arahan ini sesuai digunakan kepada fail bersaiz besar.


Guna arahan gunzip untuk nyahmampat fail berpenambahan .gz.

[guest@komputer01 ~]$ gunzip failbaru.gz
[guest@komputer01 ~]$ ls -al failbaru.gz
ls: cannot access failbaru.gz: No such file or directory
[guest@komputer01 ~]$ ls -al failbaru
-rw-r--r--. 1 guest users 59 Feb  5 14:26 failbaru
[guest@komputer01 ~]$


Anda tidak boleh melihat kandungan fail .gz dengan menggunakan arahan cat atau more. Gunakan arahan gunzip dengan opsyen -c.

[guest@komputer01 ~]$ gunzip -c failbaru.gz
satu
dua
tiga
empat
lima
enam
tujuh
lapan
sembilan
sepuluh
[guest@komputer01 ~]$


Satukan Beberapa Fail/Direktori Menjadi Satu Fail - tar[sunting]

Anda boleh kumpulkan beberapa fail atau direktori kepada satu fail dengan arahan tar. Ia memudahkan anda untuk melakukan proses penghantaran fail ke lokasi lain. Arahan ini biasa digunakan Pentadbir Sistem untuk menyimpan fail-fail pengguna ke dalam pita (tape).


Di bawah ialah contoh untuk mengumpulkan fail cuba1, failbaru, hello.c, prog.sh dan subdirektori tugasan kepada satu fail bernama fail.tar.

[guest@komputer01 ~]$ tar cvf fail.tar cuba1 failbaru hello.c prog.sh tugasan
cuba1
failbaru
hello.c
prog.sh
tugasan/
[guest@komputer01 ~]$ ls -al fail.tar
-rw-r--r--. 1 guest users 10240 Feb  5 16:32 fail.tar
[guest@komputer01 ~]$ gzip fail.tar
[guest@komputer01 ~]$ ls -al fail.tar.gz
-rw-r--r--. 1 guest users 331 Feb  5 16:32 fail.tar.gz
[guest@komputer01 ~]$

Kemudian kecilkan pula fail.tar dengan arahan gzip.


Lihat kandungan fail tersebut dengan opsyen tf atau opsyen tvf.

[guest@komputer01 ~]$ tar tvf fail.tar.gz
-rw-r--r-- guest/users       0 2014-01-29 14:33 cuba1
-rw-r--r-- guest/users      59 2014-02-05 14:26 failbaru
-rw-r--r-- guest/users      38 2014-01-29 12:30 hello.c
-rwxr-xr-x guest/users       5 2014-01-29 12:31 prog.sh
drwxr-xr-x guest/users       0 2014-01-29 12:27 tugasan/
[guest@komputer01 ~]$


Untuk ekstrak fail-fail tersebut gunakan arahan tar dengan opsyen xvf.

[guest@komputer01 ~]$ tar xvf fail.tar.gz
cuba1
failbaru
hello.c
prog.sh
tugasan/
[guest@komputer01 ~]$


Aktiviti Pengguna[sunting]

Melihat Proses Pengguna - w, ps, top[sunting]

Guna arahan w atau ps untuk melihat proses yang sedang dilaksanakan oleh pengguna.

[guest@komputer01 ~]$ w
 10:24:05 up 10 days, 15 min,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
guest    pts/1    192.168.1.1      08:54    0.00s  0.11s  0.07s w
root     tty1     :0               11Feb14 10days 15.80s 15.80s /usr/bin/Xorg :
root     pts/0    :0.0             11Feb14  7days  0.85s  0.85s bash
[guest@komputer01 ~]$


Berikut ialah arahan ps.

[guest@komputer01 ~]$ ps
  PID TTY          TIME CMD
 6161 pts/0    00:00:00 bash
 6190 pts/0    00:00:00 ps
[guest@komputer01 ~]$


Gabungkan arahan ps dan grep untuk kurangkan output yang dihasilkan oleh ps dengan opsyen -ef. Contoh di bawah memaparkan semua proses yang mempunyai rentetan (string) guest.

[guest@komputer01 ~]$ ps -ef|grep guest
root      6156  1541  0 17:21 ?        00:00:00 sshd: guest [priv]
guest     6160  6156  0 17:21 ?        00:00:00 sshd: guest@pts/0
guest     6161  6160  0 17:21 pts/0    00:00:00 -bash
guest     6194  6161  1 17:28 pts/0    00:00:00 ps -ef
guest     6195  6161  0 17:28 pts/0    00:00:00 grep guest
[guest@komputer01 ~]$


Gunakan arahan top untuk lihat proses yang paling banyak menggunakan sumber dalam sistem.

top - 17:30:17 up 10 days,  5:34,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020540k total,   721156k used,   299384k free,   179996k buffers
Swap:  2064376k total,        0k used,  2064376k free,   321872k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6199 guest     20   0 15032 1204  936 R  0.3  0.1   0:00.10 top
    1 root      20   0 19352 1540 1216 S  0.0  0.2   0:01.32 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:01.04 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:04.85 watchdog/0
    7 root      20   0     0    0    0 S  0.0  0.0   4:47.16 events/0
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
   13 root      20   0     0    0    0 S  0.0  0.0   0:07.55 sync_supers
   14 root      20   0     0    0    0 S  0.0  0.0   0:09.10 bdi-default
   15 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
   16 root      20   0     0    0    0 S  0.0  0.0   0:10.52 kblockd/0


Arahan ini boleh digunakan jika kita ingin memeriksa mengapa prestasi sistem agak perlahan berbanding biasa. Secara lalai ia akan paparkan proses yang paling banyak menggunakan cpu. Cuba lihat di bawah %CPU. Bagi contoh di atas, arahan top itu sendiri yang paling banyak menggunakan cpu iaitu 0.3%. Dalam situasi di mana sistem menjadi sangat perlahan, mungkin ada proses yang menggunakan cpu lebih daripada 90%.


Tekan kunci [Q] untuk tamatkan proses top.


Menghapuskan Proses - kill[sunting]

Kadangkala terdapat arahan atau aplikasi yang tidak memberi apa-apa output atau tindakbalas sehingga proses lain tidak dapat dilaksanakan. Untuk mengatasi masalah ini kita perlu hapuskan proses berkenaan dengan arahan kill. ID proses tersebut diperlukan untuk menghapuskannya.


Guna arahan ps dengan opsyen -U diikuti dengan akaun pengguna.

[guest@komputer01 ~]$ ps -U guest
  PID TTY          TIME CMD
 6160 ?        00:00:17 sshd
 6161 pts/0    00:00:00 bash
 9352 pts/0    00:00:00 vi
 9358 ?        00:00:00 sshd
 9359 pts/1    00:00:00 bash
 9402 pts/1    00:00:00 ps
[guest@komputer01 ~]$        

Setiap proses atau arahan Linux mempunyai ID sendiri. Andaikan proses yang hendak dihapuskan ialah proses vi. Dari output di atas ID bagi proses vi ialah 9352. ID proses terletak di sebelah kiri sekali.


Perlu diingatkan di sini bahawa hanya pengguna itu (guest) atau root sahaja yang boleh menghapuskan proses berkenaan.

[guest@komputer01 ~]$ kill -9 9352
[guest@komputer01 ~]$


Periksa sekali lagi untuk memastikan bahawa proses tersebut telah dihapuskan.

[guest@komputer01 ~]$ ps -U guest
  PID TTY          TIME CMD
 6160 ?        00:00:17 sshd
 6161 pts/0    00:00:00 bash
 9358 ?        00:00:00 sshd
 9359 pts/1    00:00:00 bash
 9419 pts/1    00:00:00 ps
[guest@komputer01 ~]$


Manual Dalam Talian[sunting]

Melihat Manual Dalam Talian - man[sunting]

Manual arahan-arahan dalam Linux boleh didapati secara dalam talian dengan menggunakan arahan man. Ia mengandungi maklumat lengkap berkenaan arahan tersebut berserta opsyen yang boleh digunakan. Biasanya fail manual terletak dalam direktori /usr/share/man.


Jika anda ingin dapatkan manual bagi arahan cp sila taip arahan di bawah.

[guest@komputer01 ~]$ man cp


Paparan berikut akan dikeluarkan.

CP(1)                            User Commands                           CP(1)

NAME
       cp - copy files and directories

SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -a, --archive
              same as -dR --preserve=all

       --backup[=CONTROL]
              make a backup of each existing destination file

       -b     like --backup but does not accept an argument


Sekiranya anda ingin mencari manual yang mengandungi rentetan tertentu, gunakan opsyen -k.

[guest@komputer01 ~]$ man -k transfer
Net::SMTP            (3pm)  - Simple Mail Transfer Protocol Client
bluetooth-sendto     (1)  - GTK application for transfering files over Bluetooth
curl                 (1)  - transfer a URL
ftp                  (1)  - Internet file transfer program
ftp [pftp]           (1)  - Internet file transfer program
httpd                (8)  - Apache Hypertext Transfer Protocol Server
lftp                 (1)  - Sophisticated file transfer program
sendfile             (2)  - transfer data between file descriptors
sftp                 (1)  - secure file transfer program
[guest@komputer01 ~]$

Contoh di atas akan menyenaraikan manual yang mengandungi arahan berkaitan dengan transfer. Laksanakan arahan man curl jika anda ingin tahu lebih lanjut mengenai arahan curl.


Dalam Linux terdapat banyak arahan yang boleh kita guna. Adalah mustahil untuk mahir kesemuanya dalam masa yang singkat. Adalah lebih baik jika kita belajar menggunakan arahan yang berkaitan sahaja.


Andaikan anda sudah mahir dengan finger. Lihat di hujung manualnya di bahagian SEE ALSO. Ada tersenarai arahan-arahan Linux yang berkaitan seperti chfn, passwd, w dan who.

 
[guest@komputer01 ~]$ man finger
.
.
.
SEE ALSO
     chfn(1), passwd(1), w(1), who(1)

HISTORY
     The finger command appeared in 3.0BSD.

Linux NetKit (0.17)             August 15, 1999            Linux NetKit (0.17)


Arahan chfn digunakan untuk menukar nama pengguna. Sudah tentu ada kaitan dengan finger kerana finger paparkan maklumat pengguna. Begitulah juga dengan tiga arahan lain.


Belajar Linux dengan cara ini adalah lebih baik dan menjimatkan masa. Ia mengelakkan kita daripada mencuba satu persatu arahan yang terdapat di dalam direktori /bin, /usr/bin atau /usr/sbin. Tidak semua arahan tersebut berguna untuk anda kerana sebahagiannya hanya boleh dilaksanakan oleh Pentadbir Sistem.


Format Dokumen Untuk Paparan - nroff[sunting]

Arahan nroff digunakan untuk melihat fail manual dalam format yang mudah dibaca. Fail ini biasanya berpenambahan 1, misalnya fail awk.1 yang merupakan fail manual bagi arahan awk. Ia sukar dibaca jika dilihat dengan arahan more atau cat.

[guest@komputer01 ~]$ more awk.1
.ds PX \s-1POSIX\s+1
.ds UX \s-1UNIX\s+1
.ds AN \s-1ANSI\s+1
.ds GN \s-1GNU\s+1
.ds AK \s-1AWK\s+1
.de EX
.nf
.ft CW
..
.de EE
.ft R
.fi
..
.ds EP \fIGAWK: Effective AWK Programming\fP
.if !\n(.g \{\
.       if !\w|\*(lq| \{\
.               ds lq ``
.               if \w'\(lq' .ds lq "\(lq
.       \}
.       if !\w|\*(rq| \{\
.               ds rq ''
.               if \w'\(rq' .ds rq "\(rq
.       \}


Arahan nroff dengan opsyen –man boleh digunakan untuk melihatnya dalam format mudah dibaca.

[guest@komputer01 ~]$ nroff -man awk.1
GAWK(1)                        Utility Commands                        GAWK(1)



NAME
       gawk - pattern scanning and processing language

SYNOPSIS
       gawk [ POSIX or GNU style options ] -f program-file [ -- ] file ...
       gawk [ POSIX or GNU style options ] [ -- ] program-text file ...

       pgawk [ POSIX or GNU style options ] -f program-file [ -- ] file ...
       pgawk [ POSIX or GNU style options ] [ -- ] program-text file ...

DESCRIPTION
       Gawk  is  the  GNU Project’s implementation of the AWK programming lan-
       guage.  It conforms to the definition of  the  language  in  the  POSIX
       1003.1  Standard.   This version in turn is based on the description in
       The AWK Programming Language, by Aho, Kernighan, and  Weinberger,  with
       the additional features found in the System V Release 4 version of UNIX
       awk.  Gawk also provides more recent Bell Laboratories awk  extensions,
       and a number of GNU-specific extensions.


Jika guna arahan nroff –man awk.1 | more, hasil paparan adalah sama seperti arahan man awk.


Utiliti Linux[sunting]

Linux mempunyai pelbagai utiliti yang sangat berguna kepada pengguna. Utiliti ini biasa digunakan dalam pengaturcaraan shell. Ia juga memudahkan kerja-kerja mentadbir sistem seperti penyimpanan fail-fail penting, pengawasan sistem atau pembersihan ruang storan.


Kalkulator - bc[sunting]

Guna arahan bc untuk melakukan pengiraan. Anda boleh taip bc sahaja atau berserta opsyen -lq.

[guest@komputer01 ~]$ bc -lq
1 + 2                               (kemudian tekan [Enter])
3
5 * 3                               (kemudian tekan [Enter])
15
100 / 7                             (kemudian tekan [Enter])
14.28571428571428571428
[guest@komputer01 ~]$


Tekan [Ctrl] dan [D] serentak untuk keluar dari bc.


Papar Tarikh/Masa - date, cal[sunting]

Untuk mengetahui tarikh dan masa ketika ini, taip arahan date.

[guest@komputer01 ~]$ date
Mon Feb 10 14:20:38 MYT 2014
[guest@komputer01 ~]$

Output di atas menunjukkan tarikh 10 Februari 2014 bersamaan hari Isnin, 02:20 petang waktu Malaysia (MYT).


Sekarang paparkan kalendar tahun ini dengan menggunakan utiliti cal. Secara lalai ia akan paparkan bulan dan tahun ketika arahan ini dilaksanakan.

[guest@komputer01 ~]$ cal
    February 2014
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
[guest@komputer01 ~]$


Jika anda ingin lihat kalendar tahun 1971, taip arahan cal 1971. Perlu diingatkan di sini bahawa arahan cal 71 akan paparkan kalendar tahun 0071 dan bukan 1971.

[guest@komputer01 ~]$ cal 1971
                               1971

       January               February                 March
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6       1  2  3  4  5  6
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    7  8  9 10 11 12 13
10 11 12 13 14 15 16   14 15 16 17 18 19 20   14 15 16 17 18 19 20
17 18 19 20 21 22 23   21 22 23 24 25 26 27   21 22 23 24 25 26 27
24 25 26 27 28 29 30   28                     28 29 30 31
31
        April                   May                   June
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
             1  2  3                      1          1  2  3  4  5
 4  5  6  7  8  9 10    2  3  4  5  6  7  8    6  7  8  9 10 11 12
11 12 13 14 15 16 17    9 10 11 12 13 14 15   13 14 15 16 17 18 19
18 19 20 21 22 23 24   16 17 18 19 20 21 22   20 21 22 23 24 25 26
25 26 27 28 29 30      23 24 25 26 27 28 29   27 28 29 30
                       30 31
        July                  August                September
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
             1  2  3    1  2  3  4  5  6  7             1  2  3  4
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    5  6  7  8  9 10 11
11 12 13 14 15 16 17   15 16 17 18 19 20 21   12 13 14 15 16 17 18
18 19 20 21 22 23 24   22 23 24 25 26 27 28   19 20 21 22 23 24 25
25 26 27 28 29 30 31   29 30 31               26 27 28 29 30

       October               November               December
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6             1  2  3  4
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11
10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18
17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25
24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31
31

[guest@komputer01 ~]$


Andaikan anda lahir pada 5 Julai 1976 dan ingin tahu hari pada tarikh tersebut, taip arahan cal 7 1976 untuk paparkan bulan Julai sahaja.

[guest@komputer01 ~]$ cal 7 1976
      July 1976
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

[guest@komputer01 ~]$

5 Julai 1976 jatuh pada hari Isnin.


Manipulasi Baris Fail Teks - sort, uniq[sunting]

Utiliti seperti sort membolehkan anda mengisih kandungan fail teks sama ada mengikut susunan menaik atau menurun.


Katakan anda mempunyai fail teks bernama perkataan.txt dan anda hendak isih kandungan fail tersebut. Guna arahan cat untuk lihat dahulu kandungan fail.

[guest@komputer01 ~]$ cat perkataan.txt
batu
zamrud
kucing
batu
astaka
anakanda
barang
tidur
[guest@komputer01 ~]$

Kandungannya tidak disusun mengikut abjad.


Guna arahan sort untuk mengisihnya mengikut abjad.

[guest@komputer01 ~]$ sort perkataan.txt
anakanda
astaka
barang
batu
batu
kucing
tidur
zamrud
[guest@komputer01 ~]$


Pada fail yang sama, arahan uniq akan pastikan tidak ada baris atau perkataan yang sama berulang.

[guest@komputer01 ~]$ sort perkataan.txt | uniq
anakanda
astaka
barang
batu
kucing
tidur
zamrud
[guest@komputer01 ~]$

Arahan uniq perlu dilakukan selepas arahan sort untuk pastikan kandungan fail diisih terlebih dahulu. Dengan itu perkataan batu dalam fail tersebut akan dipaparkan sekali sahaja.


Arahan sort atau uniq tidak akan mengubah kandungan fail perkataan.txt. Ia hanya paparkan hasil pengisihan pada skrin. Sekiranya hasil tersebut hendak disimpan ke dalam fail baru, gunakan simbol > seperti berikut.

[guest@komputer01 ~]$ sort perkataan.txt | uniq  > perkataan_baru.txt
[guest@komputer01 ~]$

Hasil isihan akan terus dimasukkan ke dalam fail bernama perkataan_baru.txt. Gunakan arahan cat untuk melihatnya.


[guest@komputer01 ~]$ du 
8       ./.ssh
4       ./tugasan
92      .
[guest@komputer01 ~]$ du | sort -k1n
4       ./tugasan
8       ./.ssh
92      .

Guna opsyen -n untuk mengisih nombor. Opsyen -k1n digunakan kerana kita hendak mengisih saiz direktori. Jika hendak isih direktori pula guna opsyen -k2.


Cari Rentetan/Perkataan - grep[sunting]

Cari perkataan atau rentetan dalam fail teks dengan menggunakan arahan grep.

[guest@komputer01 ~]$ cat perkataan.txt
batu
zamrud
kucing
batu
astaka
anakanda
barang
tidur
Barang
[guest@komputer01 ~]$


Andaikan kita ingin cari perkataan batu di dalam fail perkataan.txt.

[guest@komputer01 ~]$ grep batu perkataan.txt
batu
batu
[guest@komputer01 ~]$

Terdapat dua baris yang mengandungi perkataan batu dalam fail tersebut.


Cuba cari rentetaan ba pula. Terdapat tiga baris yang mengandungi rentetan ba.

[guest@komputer01 ~]$ grep ba perkataan.txt
batu
batu
barang
[guest@komputer01 ~]$


Guna opsyen -E untuk cari perkataan batu atau barang atau zamrud.

[guest@komputer01 ~]$ grep -E 'batu|barang|zamrud' perkataan.txt
batu
zamrud
batu
barang
[guest@komputer01 ~]$


Barang dan barang dianggap berbeza kerana salah satu daripadanya menggunakan huruf besar.

[guest@komputer01 ~]$ grep -i barang perkataan.txt
barang
Barang
[guest@komputer01 ~]$

Guna grep dengan opsyen -i sekiranya anda ingin abaikan huruf kecil atau besar.


Manipulasi Rentetan/Perkataan/Baris - awk, sed[sunting]

Fail /etc/passwd menyimpan maklumat pengguna dalam sistem. Ia adalah satu pangkalan data dalam bentuk fail rata (flat file database).


Nota:
Bagi tujuan pembelajaran penulis hanya paparkan tiga baris sahaja.

[guest@komputer01 ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
guest:x:101:100:Tetamu,KL,03 1234567,03 7654321:/home/guest:/bin/bash
mfauzy:x:102:100:M Fauzy:/home/mfauzy:/bin/bash
[guest@komputer01 ~]$

Setiap baris mempunyai tujuh bahagian atau ruang yang dipisahkan dengan aksara : (dua titik bertindih).


[guest@komputer01 ~]$ awk -F: '{ print $1 }' /etc/passwd
root
guest
mfauzy
[guest@komputer01 ~]$ 

Guna arahan awk dengan opsyen pemisah ruang aksara : untuk paparkan ruang pertama sahaja iaitu akaun pengguna.


[guest@komputer01 ~]$ awk -F: '{ print "Akaun: "$1" Nama: "$5 }' /etc/passwd|grep -E 'guest|mfauzy'
Akaun: guest Nama: Tetamu,KL,03 1234567,03 7654321
Akaun: mfauzy Nama: M Fauzy
[guest@komputer01 ~]$

Contoh di atas adalah gabungan arahan awk dan grep.


Secara lalai tanpa opsyen -F, pemisah ruangnya adalah ruang kosong.

[guest@komputer01 ~]$ echo "daging ayam kampung"
daging ayam kampung
[guest@komputer01 ~]$ echo "daging ayam kampung" | awk '{ print $3" "$2" "$1 }'
kampung ayam daging
[guest@komputer01 ~]$ 

Arahan awk boleh mengambil output dari arahan lain seperti echo untuk dijadikan sebagai input. Ia mencetak ruang ketiga (kampung) terlebih dahulu diikuti ruang kedua (ayam) dan pertama (daging).


Arahan sed pula boleh digunakan untuk mengubah teks.

[guest@komputer01 ~]$ echo "daging ayam kampung" | sed -e 's/kampung/bandar/'
daging ayam bandar
[guest@komputer01 ~]$

Arahan di atas menukar perkataan kampung kepada bandar.


[guest@komputer01 ~]$ echo "daging ayam kampung" | sed -e 's/kampung/bandar/' -e 's/daging/sate/'
sate ayam bandar
[guest@komputer01 ~]$

Arahan di atas pula jika anda ingin tukar lebih dari satu perkataan iaitu perkataan kampung ditukar kepada bandar manakala perkataan daging ditukar kepada sate.


Carian Fail/Direktori - locate, find[sunting]

Guna arahan locate untuk mencari fail atau direktori berdasarkan rentetan yang diberi.

[guest@komputer01 ~]$ locate chmod
/bin/chmod
/usr/lib64/perl5/auto/POSIX/chmod.al
/usr/share/man/man1/chmod.1.gz
/usr/share/man/man1p/chmod.1p.gz
/usr/share/man/man2/chmod.2.gz
/usr/share/man/man2/fchmod.2.gz
/usr/share/man/man2/fchmodat.2.gz
/usr/share/man/man3p/chmod.3p.gz
/usr/share/man/man3p/fchmod.3p.gz
[guest@komputer01 ~]$


Arahan find pula mengandungi pelbagai fungsi dan sangat berguna kepada seorang Pentadbir Sistem.

[guest@komputer01 ~]$ find . -print
.
./hello.c
./.bash_profile
./fail.txt.gz
./cuba1
./tugasan
./fail.tar
./cuba2
./.history
./.bashrc
./prog.sh
./.bash_logout
./failbaru
./perkataan.txt
./.bash_history
[guest@komputer01 ~]$

Arahan find . dan find -print juga menghasilkan output yang sama seperti di atas. Ia akan paparkan semua fail dan direktori bermula dari direktori semasa (.).


Arahan berikut menggunakan opsyen -type f untuk mencari fail bernama cuba1.

[guest@komputer01 ~]$ find . -type f -name cuba1
./cuba1
[guest@komputer01 ~]$

Jika cuba1 adalah direktori, tiada output akan dipaparkan. Guna opsyen -type d untuk mencari direktori sahaja.


[guest@komputer01 ~]$ find . -type f -name \*.c -o -name \*.gz
./hello.c
./fail.txt.gz
[guest@komputer01 ~]$ find . -type f \( -name "*.c" -o -name "*.gz" \)
./hello.c
./fail.txt.gz
[guest@komputer01 ~]$

Dua arahan di atas akan menghasilkan output yang sama.


[guest@komputer01 ~]$ find /home/guest -type f -exec ls -al {} \;
-rw-r--r--. 1 guest users 38 Jan 29 12:30 /home/guest/hello.c
-rw-r--r--. 1 guest users 176 Feb 22  2013 /home/guest/.bash_profile
-rw-r--r--. 1 guest users 34 Jan 29 13:57 /home/guest/fail.txt.gz
-rw-r--r--. 1 guest users 0 Jan 29 14:33 /home/guest/cuba1
-rw-r--r--. 1 guest users 10240 Feb  5 16:32 /home/guest/fail.tar
-rw-r--r--. 1 guest users 0 Feb 14 10:13 /home/guest/cuba2
-rw-------. 1 guest users 104 Jan 27 15:00 /home/guest/.history
-rw-r--r--. 1 guest users 124 Feb 22  2013 /home/guest/.bashrc
-rwxr-xr-x. 1 guest users 5 Jan 29 12:31 /home/guest/prog.sh
-rw-r--r--. 1 guest users 18 Feb 22  2013 /home/guest/.bash_logout
-rw-r--r--. 1 guest users 79 Feb 17 14:01 /home/guest/failbaru
-rw-r--r--. 1 guest users 53 Feb 10 15:23 /home/guest/perkataan.txt
-rw-------. 1 guest users 9318 Feb 19 12:29 /home/guest/.bash_history
[guest@komputer01 ~]$

Arahan find mempunyai opsyen -exec yang membolehkan ia melaksanakan arahan lain terhadap fail atau direktori yang dicari. Contoh di atas akan senaraikan fail yang dicari menggunakan arahan ls -al.


[guest@komputer01 ~]$ find /home/guest -type f -mtime -1 -exec ls -al {} \;
-rw-------. 1 guest users 9318 Feb 19 12:29 /home/guest/.bash_history
[guest@komputer01 ~]$

Opsyen -mtime -1 digunakan untuk mencari fail yang telah diubah suai (modified) sejak 1 hari (24 jam) yang lalu. Opsyen -mtime +1 pula akan paparkan sebaliknya iaitu fail yang telah diubah suai selepas 1 hari.


Antara opsyen lain yang sangat berguna ialah jika kita ingin mencari fail mengikut saiznya.

[guest@komputer01 ~]$ find . -size -50c -exec ls -al {} \;
-rw-r--r--. 1 guest users 38 Jan 29 12:30 ./hello.c
-rw-r--r--. 1 guest users 34 Jan 29 13:57 ./fail.txt.gz
-rw-r--r--. 1 guest users 0 Jan 29 14:33 ./cuba1
-rw-r--r--. 1 guest users 0 Feb 14 10:13 ./cuba2
-rwxr-xr-x. 1 guest users 5 Jan 29 12:31 ./prog.sh
-rw-r--r--. 1 guest users 18 Feb 22  2013 ./.bash_logout
[guest@komputer01 ~]$

Opsyen -size -50c memaparkan fail bersaiz kurang dari 50 bytes. Jika anda mahu cari saiz lebih dari 100 bytes guna opsyen -size +100c. Anda juga boleh cari fail bersaiz tepat 777 bytes dengan opsyen -size 777c.


Komunikasi[sunting]

Interaksi Masa Sebenar - write, talk[sunting]

Pengguna boleh berinteraksi di antara satu sama lain dengan menggunakan arahan write dan talk. Arahan write digunakan untuk menghantar mesej kepada pengguna yang berada dalam host atau pelayan yang sama. Gunakan arahan finger untuk lihat pengguna yang sedang dalam talian.

[guest@komputer01 ~]$ finger
Login     Name       Tty      Idle  Login Time   Office     Office Phone
guest     Tetamu     pts/1          Feb 10 14:15 (192.168.1.2)
mfauzy    M Fauzy    pts/0       6  Feb 10 15:58 (192.168.1.3)
[guest@komputer01 ~]$

Kelihatan pengguna mfauzy sedang menggunakan sistem yang sama.


Gunakan arahan write untuk berkomunikasi dengan mfauzy.

[guest@komputer01 ~]$ write mfauzy
hi
[guest@komputer01 ~]$

Selepas menaip mesej tekan [Enter]. Kemudian taip mesej baru atau tekan kunci [Ctrl] dan [D] serentak untuk tamatkan komunikasi.


Berikut adalah apa yang akan kelihatan dalam skrin komputer yang digunakan oleh mfauzy.

Message from guest@komputer01 on pts/1 at 16:11 ...
hi
EOF


Arahan talk pula biasa digunakan untuk berinteraksi dengan pengguna dalam pelayan yang sama ataupun dengan pengguna yang berada di pelayan lain.

[guest@komputer01 ~]$ talk mfauzy


Skrin di bawah akan dipaparkan. Ia menunggu respon dari mfauzy.

[Waiting for your party to respond]


Pada skrin komputer mfauzy pula akan dipaparkan mesej untuk berbual dari pengguna guest

Message from Talk_Daemon@komputer01 at 8:49 ...
talk: connection requested by guest@komputer01.
talk: respond with:  talk guest@komputer01


Pengguna mfauzy perlu menjawab dengan menaip arahan berikut pada prompt.

[mfauzy@komputer01 ~]$ talk guest@komputer01


Hasilnya skrin di bawah akan dipaparkan.

[Connection established]




hai
_____________________________________________________________________________






helo

Apa yang anda taip akan keluar di bahagian atas manakala apa yang mfauzy taip akan keluar di bahagian bawah.


Komunikasi boleh ditamatkan dengan menekan kunci [Ctrl] dan [C] serentak. Sila gunakan arahan man write dan man talk untuk dapatkan keterangan lanjut penggunaan arahan-arahan tersebut.


Rangkaian[sunting]

Rangkaian merupakan sekumpulan komputer yang boleh berkomunikasi di antara satu sama lain. Terdapat arahan tertentu dalam Linux yang boleh digunakan untuk mencapai sumber-sumber dalam komputer di tempat lain.


Uji Sambungan Ke Sistem Lain - ping[sunting]

Guna arahan ping untuk menguji sambungan ke komputer jauh.

[guest@komputer01 ~]$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=249 time=0.984 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=249 time=0.695 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1565ms
rtt min/avg/max/mdev = 0.695/0.839/0.984/0.147 ms
[guest@komputer01 ~]

Tekan kunci [Ctrl] dan [C] serentak untuk tamatkan arahan ping. 0% packet loss bermakna tahap sambungan adalah baik iaitu tiada kehilangan paket yang dihantar.


Capaian Ke Sistem Lain - telnet, ssh[sunting]

Berikut ialah penggunaan telnet untuk capaian ke komputer jauh.

[guest@komputer01 ~]$ telnet komputer01
Trying 192.168.1.2...
Connected to komputer01.
Escape character is '^]'.
CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.x86_64 on an x86_64
login: guest
Password:
Last login: Tue Feb 11 10:10:30 from 192.168.1.1
[guest@komputer01 ~]$

Setelah masuk ke dalam sistem berkenaan, kita boleh lakukan arahan-arahan biasa seperti membaca e-mel dan mengubahsuai fail.


Untuk keluar dari sistem taip exit pada prompt.

[guest@komputer01 ~]$ exit
logout
Connection closed by foreign host.
[guest@komputer01 ~]$


Terdapat arahan dalam telnet yang boleh digunakan bagi tujuan tertentu. Ia boleh dilihat dengan menaip telnet diikuti dengan menekan kunci [Enter]. Pada prompt telnet taip ? kemudian tekan [Enter].

[guest@komputer01 ~]$ telnet
telnet> ?
Commands may be abbreviated.  Commands are:

close           close current connection
logout          forcibly logout remote user and close the connection
display         display operating parameters
mode            try to enter line or character mode ('mode ?' for more)
open            connect to a site
quit            exit telnet
send            transmit special characters ('send ?' for more)
set             set operating parameters ('set ?' for more)
unset           unset operating parameters ('unset ?' for more)
status          print status information
toggle          toggle operating parameters ('toggle ?' for more)
slc             change state of special charaters ('slc ?' for more)
z               suspend telnet
!               invoke a subshell
environ         change environment variables ('environ ?' for more)
?               print help information
telnet>


Jika anda tidak mahu orang lain lihat sistem di tempat lain yang anda masuk, ia boleh dilakukan dengan cara begini. Gunakan arahan open dalam sesi telnet tersebut.

[guest@komputer01 ~]$ telnet
telnet> open komputer01
Trying 192.168.1.200...
Connected to komputer01.
Escape character is '^]'.
CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.x86_64 on an x86_64
login: guest
Password:
Last login: Tue Feb 11 14:17:52 from komputer01
[guest@komputer01 ~]$


Bila pengguna lain cuba lihat proses anda dengan arahan ps, mereka cuma dapat lihat proses telnet sahaja tanpa ketahui sistem apa yang anda sedang capai.

[guest@komputer01 ~]$ ps -ef|grep guest
root      1561  1524  0 10:10 ?        00:00:00 sshd: guest [priv]
guest     1565  1561  0 10:10 ?        00:00:01 sshd: guest@pts/1
guest     1566  1565  0 10:10 pts/1    00:00:00 -bash
guest     3803  1566  0 14:37 pts/1    00:00:00 telnet
root      3805  3804  0 14:37 ?        00:00:00 login -- guest
guest     3809  3805  0 14:38 pts/3    00:00:00 -bash
guest     3831  3809  0 14:39 pts/3    00:00:00 ps -ef
guest     3832  3809  0 14:39 pts/3    00:00:00 grep guest
guest02   3806  3807  0 11:23 pts/2    00:00:00 telnet tiger.itc.univie.ac.at 6667


Arahan ssh pula menyediakan capaian ke komputer jauh yang lebih selamat berbanding telnet kerana komunikasinya dalam bentuk enkrip.

[guest@komputer01 ~]$ ssh komputer01
The authenticity of host 'komputer01 (192.168.1.2)' can't be established.
RSA key fingerprint is f3:f6:c4:c7:67:1d:d3:1f:fa:f8:db:64:38:a2:13:eb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'komputer01,192.168.1.2' (RSA) to the list of known hosts.
guest@komputer01's password:
Last login: Tue Feb 11 14:38:03 2014 from komputer01
[guest@komputer01 ~]$


Penghantaran/Pengambilan Fail - ftp, sftp[sunting]

Arahan ftp boleh digunakan untuk mengambil fail dari satu komputer atau menghantar fail ke komputer lain.


Andaikan anda hendak mengambil fail dari pelayan ftp seperti ftp.jaring.my. Arahannya adalah seperti berikut.

[guest@komputer01 ~]$ ftp ftp.jaring.my
Connected to ftp.jaring.my
220  Jaring FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (ftp.jaring.my:guest): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>


Untuk mengetahui arahan-arahan yang boleh digunakan dalam program ftp, sila taip ? pada prompt.

ftp> ?
Commands may be abbreviated.  Commands are:

!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send
ftp>


Gunakan arahan dir atau ls untuk melihat direktori atau fail yang ada di dalam pelayan tersebut. Arahan cd untuk masuk ke direktori lain, arahan get dan send untuk mengambil dan menghantar fail. Selepas selesai proses menghantar atau mengambil fail, anda boleh keluar dari program ftp ini dengan arahan bye.

ftp> dir
227 Entering Passive Mode (192,228,250,71,72,101)
150 Here comes the directory listing.
drwx------    2 0        0              80 Jul 09  2008 etc
drwx--x--x   25 12454    12454        2048 Nov 29 04:18 home
drwxrwxrwt    3 14       1002        74752 Dec 19 03:22 incoming
drwxrwxrwt    2 14       1002           80 Nov 25 07:43 incoming.bad
-rw-r--r--    1 0        0           10240 Jul 04  2013 incoming.bad.tar
drwxr-xr-x    4 0        14           1024 Oct 08 08:30 pub
226 Directory send OK.
ftp> bye
221 Goodbye.
[guest@komputer01 ~]$ 


Arahan sftp pula berfungsi sama seperti ftp cuma tahap keselamatannya lebih baik kerana penghantaran fail dilakukan dalam bentuk enkrip.

[guest@komputer01 ~]$ sftp
usage: sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]
            [-o ssh_option] [-P sftp_server_path] [-R num_requests]
            [-S program] [-s subsystem | sftp_server] host
       sftp [user@]host[:file ...]
       sftp [user@]host[:dir[/]]
       sftp -b batchfile [user@]host
[guest@komputer01 ~]$


Andaikan anda ada akaun guest di komputer jauh yang mempunyai alamat IP 192.168.1.3. Taip arahan seperti di bawah.

[guest@komputer01 ~]$ sftp 192.168.1.3
Connecting to 192.168.1.3...
The authenticity of host '192.168.1.3 (192.168.1.3)' can't be established.
RSA key fingerprint is 15:89:5f:0a:42:66:4f:97:5d:18:25:74:1b:13:41:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.3' (RSA) to the list of known hosts.
guest@192.168.1.3's password:
sftp>

Jawab yes jika hendak teruskan capaian kemudian isi kata laluan.


sftp> ?
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-P] remote-path [local-path]  Download file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln oldpath newpath                 Symlink remote file
lpwd                               Print local working directory
ls [-1aflnrSt] [path]              Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-P] local-path [remote-path]  Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help
sftp>

Dalam prompt sftp taip ? (tanda soal) untuk senaraikan semua arahan yang boleh digunakan. Arahan yang biasa adalah seperti get untuk muat turun fail dan put untuk memuat naik fail. Taip bye atau quit untuk keluar dari sftp.


Masalah dan Penyelesaian[sunting]

Command not found[sunting]

Sekiranya anda cuba laksanakan satu arahan tetapi ia tidak dijumpai di mana mesej "-bash: arahan: command not found" dipaparkan, maka terdapat beberapa kemungkinan.

  • Arahan tersebut tidak wujud atau anda tersilap taip.
  • Pasang pakej yang mengandungi arahan tersebut atau minta Pentadbir Sistem memasangnya untuk anda.
  • Direktori di mana arahan tersebut berada tidak dimasukkan ke dalam pembolehubah PATH dalam skrip login.


Guna arahan find untuk mencari di mana arahan tersebut berada. Andaikan anda ingin mencari arahan xyz, caranya adalah seperti berikut:-

[guest@komputer01 ~]$ find / -name xyz -print
 find: `/opt/lost+found': Permission denied
 .
 .
 find: `/usr/lost+found': Permission denied
 /opt/apps/bin/xyz
[guest@komputer01 ~]$

Dari maklumat di atas didapati bahawa arahan xyz terletak dalam direktori /opt/apps/bin.


Pastikan direktori ini dimasukkan dalam pembolehubah PATH di dalam skrip login (.bash_profile). Setiap direktori mestilah dijarakkan dengan aksara : (dua titik bertindih) di antara satu sama lain.

.
PATH=$PATH:$HOME/bin:/opt/apps/bin
.



Connection refused[sunting]

Cubaan untuk mencapai komputer jauh gagal dengan mesej "Connection refused".

  • Perkhidmatan yang cuba digunakan tidak dipasang atau dihidupkan di komputer tersebut.



Destination Host Unreachable[sunting]

Ujian sambungan atau capaian ke komputer jauh gagal.

  • Komputer jauh tidak hidup atau tidak beroperasi.
  • Periksa sama ada berlaku masalah pada rangkaian.



No such file or directory[sunting]

Anda akan dapat mesej ini jika arahan dilakukan kepada fail atau direktori yang tidak wujud.

  • Periksa dengan arahan ls untuk melihat sama ada fail atau direktori tersebut wujud.



No such process[sunting]

Biasanya berlaku bila anda cuba hapuskan proses yang tidak wujud menggunakan arahan kill.

  • Periksa sekali lagi menggunakan arahan ps sama ada ID proses adalah betul.



Permission denied[sunting]

Berlaku ketika cuba baca fail, masuk ke dalam direktori, melaksanakan arahan tertentu dan sebagainya.

  • Anda memang tidak diberikan kebenaran sama sekali untuk melakukan aktiviti tersebut.
  • Pemilik atau Pentadbir Sistem perlu ubah mod keizinan pada fail atau direktori berkenaan.



Unknown host[sunting]

Komputer yang anda cuba capai tidak dikenali oleh sistem.

  • Gunakan alamat IP sebagai ganti kepada nama komputer.
  • Tambah alamat IP dan nama komputer berkenaan ke dalam fail /etc/hosts.


Penafian dan Lesen[sunting]


Maklumat yang terkandung di dalam panduan ini adalah untuk tujuan pembelajaran dan tidak dapat dijamin ketepatan dan kesahihannya. Sebarang kerugian atau kerosakan yang timbul akibat daripada penggunaan panduan ini adalah di atas risiko pengguna sendiri. Di dalam apa jua keadaan, penulis tidak boleh dipertanggungjawabkan oleh pengguna sama ada secara langsung atau tidak.


Kandungan panduan disediakan dengan lesen Pengiktirafan-BukanKomersial-TiadaTerbitan

CC-BY-NC-ND-icon-88x31.png