slide1
Download
Skip this Video
Download Presentation
Thực hành Unix, Linux Ngô Thanh Nguyên Bộ môn Hệ thống và Mạng máy tính

Loading in 2 Seconds...

play fullscreen
1 / 88

Thực hành Unix, Linux Ngô Thanh Nguyên Bộ môn Hệ thống và Mạng máy tính - PowerPoint PPT Presentation


  • 129 Views
  • Uploaded on

Thực hành Unix, Linux Ngô Thanh Nguyên Bộ môn Hệ thống và Mạng máy tính Khoa Khoa học và kỹ thuật máy tính Email: [email protected] Assignment 1: Các giải thuật định thời và lập trình multiprocess, multithread, IPC

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Thực hành Unix, Linux Ngô Thanh Nguyên Bộ môn Hệ thống và Mạng máy tính' - dyami


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Thực hành Unix, Linux

Ngô Thanh Nguyên

Bộ môn Hệ thống và Mạng máy tính

Khoa Khoa học và kỹ thuật máy tính

Email: [email protected]

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide2

Assignment 1: Các giải thuật định thời và lập trình multiprocess, multithread, IPC

Assignment 2: Quản lí bộ nhớ và I/O

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t i li u tham kh o
Tài liệu tham khảo
  • http://www.cse.hcmut.edu.vn/~c506001/
  • Nguyễn Phương Lan, Hoàng Đức Hải: “Lập trình Linux, tập 1”
  • Linux manual
  • Internet

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung
Nộidung
  • Giới thiệu
  • Khái niệm cơ bản về người dùng – account
  • Các lệnh cơ bản trong Linux
  • Hệ thống file, lệnh thao tác trên hệ thống file
  • Đổi hướng xuất nhập, pipe
  • Trình soạn thảo vi (visual interpreter)
  • Lập trình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung1
Nộidung
  • Giớithiệu
  • Kháiniệmcơbảnvềngườidùng – account
  • Cáclệnhcơbảntrong Linux
  • Hệthống file, lệnhthaotáctrênhệthống file
  • Đổihướngxuấtnhập, pipe
  • Trìnhsoạnthảo vi (visual interpreter)
  • Lậptrình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

gi i thi u
Giới thiệu
  • Thực hành trên hệ điều hành *nix
  • Cóthểlogin trực tiếp hay dùng chương trình telnet/ssh đểkết nối đến máy *nix
  • Mỗi người dùng phải cómột tài khoản (account) đểsửdụng hệthống. Mỗi tài khoản gồm có:
    • Tênsửdụng (username)
    • Mậtkhẩu (password)
    • Thưmụclàmviệc (home directory)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

login v logout
Login và logout

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

ng nh p h th ng
Đăng nhập hệ thống
  • Linux
    • Tại dấu nhắc của hệ thống, gõ username và password
  • Windows
    • Dùng ssh để kết nối đến máy chủ Linux từ xa
    • PuTTY

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

ng xu t h th ng
Đăng xuất hệ thống
  • exit,Ctrl + Dhoặcđóng cửa sổ PuTTY
  • Tất cảcác quátrình đang chạy đều kết thúc (ngoại trừcác quátrình được thực hiện với lệnh nohup)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

m t s ch
Một số chú ý
  • Hệthống *nix phân biệt chữhoa vàchữ thường.
  • Nếu đăng nhập từcác máy Windows, cần tắt các chương trình gõ tiếng Việt(Unikey,Vietkey…).
  • Đểxoáký tự trước đó, cóthểdùng phím Backspace trong một số trường hợp không dùng phím Delete được.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung2
Nộidung
  • Giớithiệu
  • Kháiniệmcơbảnvềngườidùng – account
  • Cáclệnhcơbảntrong Linux
  • Hệthống file, lệnhthaotáctrênhệthống file
  • Đổihướngxuấtnhập, pipe
  • Trìnhsoạnthảo vi (visual interpreter)
  • Lậptrình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c l nh c b n
Các lệnh cơ bản
  • Một lệnh *nix cơ bản có định dạng như sau

<command_name> <options> <arguments>

  • Ví dụ:

$ls –l /etc

$cd /tmp (no option)

$whoami (no option and argument)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

danh nh id entifier
Danh định (identifier)
  • Mỗi người dùng cómột danh định duy nhất trong hệthống.Đối với người dùng, danh định chính làusername duy nhất trong hệthống.
  • Đối với hệthống, một danh định người dùng bao gồm:
    • UID (user identifier)
    • GID (group identifier)
  • Lệnhhiểnthịthông tin về UID và GID: id
  • Lệnh cho biết danh định: whoamihoặcwho am i
  • Vídụ

$who am i

a01 pts/1 Apr 2 14:38

$whoami

a01

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

th m c home th m c h i n h nh
Thư mục home,thư mục hiệnhành
  • Mỗi người dùng trong hệthống đều cómột thư mục home và người đócótoàn quyền trong đó
  • Thư mục home

Dùng lệnhechođểhiển thịbiến môi trườngHOME:

$echo $HOME

/home/a01

  • Thư mục làm việc (hay thư mục hiện hành)

$pwd

/home/a01

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

hi n th ng i d ng c m t trong h th ng
Hiển thị người dùng có mặt trong hệ thống
  • Lệnh who

$who

root pts/1 Aug 17 15:02 (172.28.12.14)

mpi pts/2 Aug 17 15:05 (172.28.10.143)

a01 pts/8 Aug 17 14:25 (172.28.11.192)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

thay i m t kh u
Thay đổi mật khẩu
  • Lúc đầu, người dùng log on vào hệthống cóthểkhông cần mật khẩu. Tuy nhiên, người dùng phải thay đổi sau đó.
  • Dùng lệnh passwd để thay đổi mật khẩu

$ passwd

Newpassword:

Confirmnew password:

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c tr gi p
Để được trợ giúp
  • Dùng lệnhman(manual) đểxem trợgiúp cho một lệnh hay một hàm nào đó.
  • Một sốphím chức năng trong lệnh man

-Kết thúc: q-Về trang trước:b-Vềtrang sau: f

  • Ví dụ

$ man passwd

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung3
Nộidung
  • Giớithiệu
  • Kháiniệmcơbảnvềngườidùng – account
  • Cáclệnhcơbảntrong Linux
  • Hệthống file, lệnhthaotáctrênhệthống file
  • Đổihướngxuấtnhập, pipe
  • Trìnhsoạnthảo vi (visual interpreter)
  • Lậptrình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c u tr c h th ng file
Cấu trúc hệ thống file

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

m t s t h m c quan tr ng
Một số thư mục quan trọng
  • /
  • /bin
  • /boot
  • /dev
  • /etc
  • /home
  • /lib
  • /lost+found
  • /mnt
  • /sbin
  • /tmp
  • /usr
  • /var

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c ki u file
Các kiểu file
  • Directory
    • là file đặc biệt, chứa thông tin của các file khác.
    • thựcchấtlà 1 file.
  • Ordinary file
    • làfile thông thường, chương trình hoặc dữliệu.
  • Special file
    • làfile đặc biệt, tương ứng với các thiết bị(devicefile)
  • Dùng lệnh file path_name đểbiết path_name làloại file gì.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

d o ch i trong c y th m c
Dạo chơi trong cây thư mục
  • Dùng lệnh cd (change directory)

$ cd <pathname>

pathname = đường dẫn tương đối (tính từ thư mục hiện hành) hoặc tuyệt đối (tính từ thư mục gốc)

  • Thư mục đặc biệt:
    • Thư mục hiện hành:.
    • Thư mục cha:..
    • Thư mục home:~hoặc~username

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide25
Ví dụ

$cd /tmp(move to /tmp directory)

$cd ../home/a01 (then you are in your home)

$pwd

/home/a01

...

$cd(move back to your home)

...

$cd /etc/sysconfig/network-scripts

$pwd

/etc/sysconfig/network-scripts

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

li t k n i dung th m c
Liệt kê nội dung thư mục
  • Dùng lệnh ls (listing directory):

ls [option] path_name

  • Ví dụ

$ ls

addr.c env.c fork.c lockf.c pipe1.c a.out exec1.c forkex.c lockf.h

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

m t s t y ch n c a l nh ls
Mộtsốtùychọncủalệnhls
  • -a/A liệt kê các file ẩn
  • -dchỉliệt kê tên của thư mục, không liệt kê nội dung
  • -F liệtkêcác file vàchobiếtkiểucủa file qua kýhiệu ở cuối
    • Không cóký hiệu gì:file thường
    • ‘/’ directories
    • ‘*’ executable files
    • “@” linked files
  • -ichobiếtsốinodecủa file
  • -lliệt kê đầy đủthông tin về file/thư mục
  • -Rliệt kê các thư mục conđệquy
  • -t sắpxếptheothờigiancậpnhật

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide28
Ví dụ
  • Hiển thị đầy đủthông tin:

$ls –l

total 8

drwxr-xr-x 15 a01 student 512 Aug 10 2000 floppy

-rw-r--r– 1 a01 student 58984 Mar 9 2000 arch.tar

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide29
Ví dụ

$ ls -a

. .libs .rhosts io.c

.. .login 1.c nohup.out

.cshrc .netscape debugging.html

.desksetdefaults .profile fork.c

(Các file/thư mục ẩn cótên bắt đều bằng dấu chấm, vídụ: .lib, .rhosts,.login)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide30
Ví dụ

$ ls -R

.:

Desktop examples ex.tar

./Desktop:

Autostart kontrol-panel Linux Documentation Printer

./examples:

c cmd

./examples/c:

addr.c env.c fork.c lockf.c pipe1.c procinfo.c sig1.c

a.out exec1.c forkex.c lockf.h pipe2.c sema.c sig2.c

./examples/cmd:

1.txt case.sh

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

wildcards
Wildcards
  • Wildcardslàcác ký tựdùng đểthay thếcho các mẫu tương ứng với tên file hay thư mục.
  • Wildcards:

* ? […]

  • Vídụ:

$ls p*.pas

p10.pas p1.pas p2.pas p5.pas

$ls p?.pas

p1.pas p2.pas p5.pas

$ls p[1-3].pas

p1.pas p2.pas

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c l nh tr n file v th m c
Các lệnhtrên file vàthư mục
  • Tạo thư mục: mkdir
  • Xoá file hay thư mục: rm
  • Copy: cp
  • Di chuyển: cd

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t o th m c
Tạo thư mục
  • Dùnglệnhmkdir

mkdirpath_name

  • Vídụ:

$pwd

/export/home/a01

$mkdir examples

$ls –aF

./ .bash_logout .bashrc .emacs ex.tar .screenrc

../ .bash_profile Desktop/ examples/ .kde/ .wl

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t o c y th m c con
Tạo cây thư mục con
  • Vídụcần tạo 3 thư mục a, b, c như sau a/b/c
    • Dùng 3 lệnh mkdir

$mkdir a

$mkdir a/b

$mkdir a/b/c

    • Dùng một lệnh mkdir

$mkdir –p a/b/c

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

xo file hay th m c
Xoá file hay thư mục
  • Xoá thư mục rỗng (không chứa thư mục con hay file)

rmdir path_name(s)

  • Xoá thư mục không rỗng

rm –r path_name(s)

  • Xoá file

rm –option file_name(s)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide36
Copy
  • Copy files:

cp [-option] from(s) to

  • Copy thư mục

cp -r from(s) to

  • Vídụ:

$cp /etc/passwd .

$cp p*.pas /tmp

$cp /etc/sysconfig/network-sripts /tmp

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

di chuy n i t n file th m c
Di chuyển/đổi tên file/thư mục
  • Dùng lệnh mv (move):

mv [option] filename dest_file

mv [option] directory dest_dir

mv [option] filename dest_dir

  • Ví dụ:

$mv examples lab1

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l m vi c tr n file
Làm việc trên file
  • Tạo files
  • Hiển thị nội dung files
  • Tìm kiếm file
  • Tìm kiếm trong nội dung của file

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t o file
Tạo file
  • Tạo file vànhậpvàonội dung

cat > name_of_file

    • Sau khi nhập nội dung, gõ <Enter> đểxuống dòng.
    • Ấn Ctrl-d đểghi nội dung soạn thảo vào file vàkết thúc thao tác.
  • Vídụ

$cat > test.txt <Enter>

this is my file <Enter>

Ctrl + D

$

  • Tạo file rỗng (0 bytes) bằnglệnh touch

touch new_file

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t o file1
Tạo file
  • Dùnglệnhcat:

cat filename

  • Với file cónội dung dài, dùnglệnhmore:

more filename

    • Dấu nhắc--More--(nn%) xuất hiện bên dưới màn hình.
    • Cóthểdùng các phím điều khiển trong lúc đang xem nội dung file
      • space bar hiểnthịtrangkếtiếp
      • <RETURN> hiểnthịdòngkếtiếp
      • q thoátkhỏilệnh more
      • bvề trang trước.
      • h xemtrợgiúp.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

hi n th n i dung file
Hiểnthịnội dung file
  • Hiển thịndòng đầu tiêncủa mộttext file,dùng lệnh head

head -n filename

(nếu n=10, cóthểbỏoption –n đi:head filename)

  • Hiển thị ndòng sau cùng của một text file, dùng lệnh last

last -n filename

(nếu n=10, cóthểbỏ option –n đi: last filename)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t m ki m m t file
Tìm kiếm một file
  • Tìmkiếmmột file tronghệthống file (file system), dùnglệnhfind

find pathname -name filename -print

(Cóthểdùng wildcard đặt trong dấu nháy kép)

  • Vídụ

$find / -name “*.cpp” -print

  • Cũng cóthể định vịmột file bằng các lệnh which, whereis, locate (lưu ý làcác lệnh này chỉtìm trong phạm vi biến môi trường PATH hoặc xxxPATH)
  • Vídụ

$ which find

$ locate ls

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t m ki m trong n i dung c a file
Tìmkiếmtrongnội dung của file
  • Tìm một chuỗi ký tự trong một text file bằng lệnh

grep pattern filename(s)

pattern: chuỗi ký tựcần tìm kiếm. Nếu chuỗi cóký tự đặc biệt thìphải đặt trong dấu nháy đơn.

  • Ví dụ

$ grep UNIX /usr/man/man*/*

$ grep -n \'[dD]on\\'t\' notes

$ grep a01 /etc/passwd

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c quy n tr n file v th m c
Các quyền trên file và thư mục
  • Hệthống *NIX bảo vệcác file và thư mục thông qua các quyền thiết lập trên đó.
  • Có 3 quyền:
    • r–read - đọc
    • w–write –ghi
    • x–execute -thựcthi
  • Các quyền được áp dụng trên 3 nhóm người dùng, kíhiệu bằng ba kítự tương ứng u, g, o
    • u = owner user = chủsởhữu
    • g= group = những người cùng nhóm với chủsởhữu
    • o= others = tất cảnhững người khác

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

ph n quy n
Phânquyền
  • Các quyền áp dụng cho 3 nhóm người dùng kết hợp lại thành 9 bit như sau:

rwxrwxrwx

user group other

  • Cóthểxemthông tin vềquyềntruycậpbằnglệnhls -l

Vídụ

$ls -l

-rwxr-xr-x

Vớivídụtrên:

    • Chủsởhữu cóquyềnr(đọc),w(ghi),vàx(thực thi).
    • Cácthànhviêncùngnhómvớichủsởhữucóquyềnr và x.
    • Những người khác cóquyền rvàx.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

thay i c c quy n tr n file v th m c
Thay đổi các quyền trên file và thư mục
  • Dùng lệnh chmod.

chmod access_mode file(s)

  • Quyền truy cập có thể thiết lập theo 2 dạng
    • Dạng dùng ký hiệu (symbolic): [ugo][+ -=][rwx]
    • Dạng dùng số bát phân (octal): [0-7][0-7][0-7]

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

ph n quy n1
Phân quyền
  • Dạngsốbátphân

Octal Binary Permissions

0 000 ---

1 001 --x

2 010 -w-

3 011 -wx

4 100 r--

5 101 r-x

6 110 rw-

7 111 rwx

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide48
Ví dụ

$mkdir perm

$touch test

$ls –l

total 110

drwxr-xr-x 15 a01 other 512 Aug 10 2001 perm

-rw-r--r-- 1 a01 other 0 Aug 10 2001 test

$chmod o-rx perm

$chmodg+w perm

$ls -al

total 1170

drwxrwx--- 15 a01other 512 Aug 10 2001 perm

-rw-r--r-- 1 a01other 0 Aug 10 2001 test

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide49
Ví dụ

$chmod 750 perm

$chmod 700 test

$ls -al

total 1170

drwxr-x--- 15 a01 other 512 Aug 10 2001 perm

-rwx------ 1 a01 other 0 Aug 10 2001 test

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

thay i quy n m c nh
Thay đổi quyền mặc định
  • Khi một file/thư mục được tạo ra, nó được gán một quyền hạn đã được định nghĩa trước
  • Người dùng cóthểthay giátrịmặc định này bằng cách thay đổi mặt nạquyền(file-creationmode mask).
  • Hiển thị mặt nạ quyền:

$umask

022

  • Thay đổi mặt nạquyền:

umask nnn

("n”:0..7)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c gi tr c a m t n quy n
Cácgiátrịcủamặtnạquyền

Octal number Access permissions given

0 rwx

1 rw

2 r-x

3 r--

4 -wx

5 -w

6 --x

7 ---

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide52
Ví dụ
  • Thay đổi mặt nạ đểcác file được tạo ra sau đókhông cho những người ngoài chủsởhữu truy cập:

$ umask 077

$ touch newfile ; ls –l

  • Thay đổi mặt nạ đểcác file được tạo ra sau đókhông cho những người ngoài chủsởhữu thay đổi nội dung:

$umask 022

$ touch newfile2 ; ls –l

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c ph n quy n tr n file th m c
Các phân quyền trên file/thư mục

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

qui tr nh ki m tra quy n h n
Qui trìnhkiểmtraquyềnhạn
  • Gọi UID1, GID1 làuid vàgid của một quátrình, còn UID2, GID2 làuid vàgid của file/thư mục màquátrình đótruy xuất

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung4
Nộidung
  • Giớithiệu
  • Kháiniệmcơbảnvềngườidùng – account
  • Cáclệnhcơbảntrong Linux
  • Hệthống file, lệnhthaotáctrênhệthống file
  • Đổihướngxuấtnhập, pipe
  • Trìnhsoạnthảo vi (visual interpreter)
  • Lậptrình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

i h ng xu t nh p
Đổi hướng xuất nhập
  • Mỗi quátrình trong UNIX gắn với 3 thiết bịchuẩn được đánh chỉsố (descriptor) tương ứng:
    • Thiếtbịnhậpchuẩn: bànphím (0)
    • Thiếtbịxuấtchuẩn: mànhình (1)
    • Thiếtbịbáolỗichuẩn: mànhình (2)
  • Các thiết bịchuẩn này cóthể được thay thếbằng các file thông thường.
  • Tái định hướng cho lệnh bằng cách dùng các ký hiệu:

<Tái định hướng thiết bịnhập

>Tái định hướng thiết bịxuất

>>Nối vào file được tái định hướng (thay vìtạo mới)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

i h ng nh p chu n
Đổi hướng nhập chuẩn

command < input_file

  • Ví dụ
    • Đổi hướng nhập chuẩn cho lệnh sort

$sort < /etc/passwd

    • Đổi hướng nhập chuẩn cho lệnh wc

$wc -l < /etc/passwd

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

i h ng x u t chu n
Đổi hướng xuất chuẩn

command > output_file

  • Ví dụ
    • Đổi hướng xuất cho lệnh ls

$ls –al /usr > /tmp/usrlist

    • Đổi hướng xuất vànhập cho lệnh sort:

$sort < /etc/passwd > /tmp/userlist

    • Đổi hướng xuất cho lệnh cat

$cat file1 file2 > file

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i thi t b xu t chu n v o file
Nốithiếtbịxuấtchuẩnvào file

command >> output_file

  • Ví dụ

$ls/ > dirlist

$ls/etc >> dirlist

$date > log

$who >> log

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

k t n i c c l nh v i nhau
Kết nối các lệnh với nhau
  • UNIX chophépkếtnốinhậpxuấtcủacáclệnhvớinhauthông qua cácống (pipe).
  • Một pipe cónhiệm vụnhận dữliệu xuất từmột lệnh và đưa vào như dữliệu nhập cho lệnh kếtiếp theo dạng sau

command1 | command2 | command3

(Dấu sổ đứng| (vertical bar) dùng đểchỉ định cho một pipe)

  • Cóthểdùng pipe kết nối các lệnh với nhau đểthực hiện các thao tác phức tạp hơn.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

slide61
Ví dụ
  • $who | sort
    • (xem danh sách cósắp xếp các user đang trong hệthống)
  • $who | wc –l
    • (đếm số người dùng đang trong hệthống)
  • $ls -al /etc | more
    • (liệt kê từng trang nội dung thư mục /etc)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

th c thi nhi u l nh tr n m t d ng
Thựcthinhiềulệnhtrênmộtdòng
  • *NIX cho phép dùng các dấu chấm phẩy (;), dấu ampersand (&) đểviết nhiều lệnh trên cùng một dòng.
  • Vídụ

$ cd /etc ; ls

$ date ; cal ; who

$ mkdir abc && cd abc && mkdir def

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung5
Nộidung
  • Giớithiệu
  • Kháiniệmcơbảnvềngườidùng – account
  • Cáclệnhcơbảntrong Linux
  • Hệthống file, lệnhthaotáctrênhệthống file
  • Đổihướngxuấtnhập, pipe
  • Trìnhsoạnthảo vi (visual interpreter)
  • Lậptrình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

tr nh so n th o vi
Trình soạn thảo vi
  • vi (visual interpreter)
  • Cóhai chế độhoạt động
    • Chế độlệnh (command)
    • Chế độchèn (insert)

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

hai ch ho t ng
Hai chế độ hoạt động
  • Chế độlệnh:
    • Chế độlệnh bắt đầu khi vào chương trình vi. Cóthểthực hiện các thao tác di chuyển, thao tác trên các đối tượng text...
    • Muốn chuyển vềchế độlệnh, chỉcần ấn ESC
  • Chế độchèn:
    • Cho phép nhập văn bản vào buffer.Cónhiều lệnh đểchuyển vào chế độchèn như:a, A, i, I, o, O
    • Khi ởchế độchèn, cuối màn hình cóchuỗi INSERT

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

b t u vi
Bắt đầu vi

$vi test.txt

~

~

~

~

‘test.txt’[New file]

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c thao t c n gi n
Các thao tác đơn giản
  • Ấn‘a’(append) đểvào chế độchèn.
  • Nhập vào văn bản
  • Sau khi nhập xong, chuyển sang chế độlệnh:ấnESC
  • Lưu dữliệu vào file vàthoát khỏivi
    • Lưu :w <Enter>
    • Thoát :q <Enter>
    • Vừa lưu vàthoát :wq <Enter>hoặc ZZ

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c l nh di chuy n
Các lệnh di chuyển

hlùi 1 ký tự

jxuống 1 dòng

klên 1 dòng

lqua phải 1 ký tự

:ndi chuyển đến dòngn

Gdi chuyển đến cuối dòng

Tuy nhiên, trong Linux ta cóthểdùng các phím mũi tên đểdi chuyển.

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c l nh ch n v n b n
Các lệnh chèn văn bản

ichèn trước cursor

Ichèn ở đầu dòng

a chèn sau cursor

A nối vào cuối dòng

omởmột dòng trống phía dưới

O mở một dòng trống phía trên

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

t m ki m tr n v n b n
Tìm kiếm trên văn bản
  • Tìm xuôi (forward)

:/pattern<Enter>

  • Tìm ngược (backward)

:?pattern<Enter>

  • Lặp lại lần tìm trướcn
  • Lặp lại lần tìm trước chiều ngược lạiN

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c l nh xo
Các lệnh xoá

XoáLệnh

KítựhiệnhànhDEL hoặc x

Xóatừhiệnhànhdw

Xóa từ trướcdb

Cảdòngdd

Xóa đến cuối dòngd$

Xóa đến đầu dòngd0

Xóa n dòngkếtiếpndd

Undo p hoặc u

Paste p

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c c thao t c kh c
Các thao tác khác
  • Ghi ra file :w
  • Ghi ra file có tên ‘filename’:w filename
  • Thoátvi (khi nội dung file chưa đổi):q
  • Thoát và không ghi :q!
  • Ghi và thoát :x! hoặcZZ

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

n i dung6
Nộidung
  • Giới thiệu
  • Khái niệm cơ bản về người dùng – account
  • Các lệnh cơ bản trong Linux
  • Hệ thống file, lệnh thao tác trên hệ thống file
  • Đổi hướng xuất nhập, pipe
  • Trình soạn thảo vi (visual interpreter)
  • Lập trình Shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l p tr nh shell
Lập trình Shell
  • Giới thiệu
  • Điều khiển shell
  • Cú pháp ngôn ngữ shell
    • Sử dụng biến
    • Cấu trúc điều khiển
    • Hàm
    • Các lệnh nội tại của shell

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

gi i thi u1
Giới thiệu
  • Dùngđểkếthợpnhiềulệnhlạivớinhauđểtạothànhmộtkịchbảncóchứcnăngmạnhmẽ.
  • Cácloại shell trên Linux
    • sh (Bourne)
    • csh, tcsh, zsh
    • bash (Bourne Again Shell)
    • rc
  • Ta cóthểdùnglệnh file đểxemkiểu file của bash hay sh

$file /bin/bash

$file /bin/sh

Kếtluận??

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

i u khi n shell
Điều khiển Shell
  • Điều khiển shell từ dòng lệnh

$for file in *

>do

> if grep –l ‘cp –v’ $file

> then

> more $file

> fi

>done

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

i u khi n shell1
Điều khiển Shell
  • Điều khiển shell bằng tập tin kịch bản (script file)

File first.sh

#!/bin/sh

for file in *

do

if grep –l ‘cp –v’ $file

then

more $file

fi

done

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

th c thi script
Thực thi script
  • Lấy tên file làm đối số của shell

$/bin/sh first.sh

  • Gọi trực tiếp từ dòng lệnh

$chmod +x first.sh

$./first.sh

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c ph p ng n ng shell
Cú pháp ngôn ngữ shell
  • Sử dụng biến

$xinchao=Hello

$echo $xinchao

Hello

$xinchao=“I am here”

$echo $xinchao

I am here

$xinchao=12+1

$echo $xinchao

12+1

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c ph p ng n ng shell1
Cú pháp ngôn ngữ shell
  • Cấu trúc điều khiển
    • if
    • for
    • while
    • until
    • case

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh if
Lệnh if
  • Cúpháp

if condition

then

statements

else

statements

fi

  • Ví dụ

#!/bin/sh

if [ $HOME = “/home/a01” ]

then

echo “Hello a01”

else

echo “Guest”

fi

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh for
Lệnh for
  • Cúpháp

for variable in values

do

statements

done

  • Vídụ

#!/bin/sh

for user in a01 mpi grid

do

echo $user

done

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh while
Lệnh while
  • Cúpháp

whilecondition

do

statements

done

  • Vídụ

#!/bin/sh

foo=1

while [ “$foo” –le 16 ]

do

echo “Here $foo”

foo=$(($foo+1))

done

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh until
Lệnh until
  • Cúpháp

until condition

do

statements

done

  • Vídụ

#!/bin/sh

foo=1

until [ “$foo” –eq 10 ]

do

echo “Here $foo”

foo=$(($foo+1))

done

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh case
Lệnh case
  • Cú pháp

case variable in

pattern [ | pattern ] … ) statements;;

pattern [ | pattern ] … ) statements;;

esac

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

l nh case1
Lệnh case
  • Vídụ

#!/bin/sh

echo “Is it morning? Please answer yes or no”

read timeofday

case “$timeofday” in

“yes” | “y” | “Yes” | “YES” )

echo “Good Morning”

;;

[nN]* )

echo “Good Afternoon”

;;

* )

echo “Please answer yes or no”

exit 1

;;

esac

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c ph p ng n ng shell2
Cú pháp ngôn ngữ shell
  • Hàm

#!/bin/sh

foo() {

echo “Function foo is executing”

}

echo “script is starting”

foo

echo “script ended”

exit 0

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

c ph p ng n ng shell3
Cú pháp ngôn ngữ shell
  • Các lệnh nội tại của shell

==> Tự tìm hiểu

Khoa KH&KTMT - Đại học Bách Khoa Tp. HCM

ad