1. Trang chủ
  2. » Thể loại khác

Bài giảng quản trị hệ thống linux it55 Đại học mở hà nội

80 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 7,53 MB

Nội dung

BÀI 1 - GIỚI THIỆU CHUNG VỀ LINUX Mục đích: Bài học sẽ giới thiệu đến anh/chị phần mềm tự do và phần mềm nguồn mở, giấy phép phần mềm nguồn mở. Giới thiệu về lịch sử hình thành và cách sử dụng Linux. Các bản phối đặc biệt của Linux 1.1. Giới thiệu phần mềm tự do và phần mềm nguồn mở Phần mềm tự do và mã nguồn mở (Free and OpenSource Software - FOSS) là các phần mềm sau khi qua quy trình cấp phép thì hội đủ các yếu tố: - Nó được phân phối đến người sử dụng cùng với mã nguồn của nó và chúng có thể được sửa đổi. - Nó có thể được phân phối lại mà không bị một ràng buộc nào khác. - Chúng ta có thể phân phối cả những thay đổi mà chúng ta đã thực hiện trên mã nguồn gốc. Phần mềm tự do là phần mềm máy tính được phân phối theo các điều khoản cho phép người dùng chạy phần mềm cho bất kỳ mục đích nào cũng như nghiên cứu, thay đổi và phân phối phần mềm cũng như mọi phiên bản phù hợp.

Trang 1

BÀI 1 - GIỚI THIỆU CHUNG VỀ LINUX Mục đích:

Bài học sẽ giới thiệu đến anh/chị phần mềm tự do và phần mềm nguồn mở, giấy phép phần mềm nguồn mở Giới thiệu về lịch sử hình thành và cách sử

dụng Linux Các bản phối đặc biệt của Linux

1.1 Giới thiệu phần mềm tự do và phần mềm nguồn mở

Phần mềm tự do và mã nguồn mở (Free and OpenSource Software - FOSS)

là các phần mềm sau khi qua quy trình cấp phép thì hội đủ các yếu tố:

- Nó được phân phối đến người sử dụng cùng với mã nguồn của nó và chúng có thể được sửa đổi

- Nó có thể được phân phối lại mà không bị một ràng buộc nào khác

- Chúng ta có thể phân phối cả những thay đổi mà chúng ta đã thực hiện trên mã nguồn gốc

Phần mềm tự do là phần mềm máy tính được phân phối theo các điều khoản cho phép người dùng chạy phần mềm cho bất kỳ mục đích nào cũng như nghiên cứu, thay đổi và phân phối phần mềm cũng như mọi phiên bản phù hợp

Phần mềm nguồn mở là phần mềm máy tính cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi và cải tiến phần mềm, và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi

Richard Stallman thành lập Free Software Foundation (FSF – Phần mềm tự do) có đóng góp lớn cho khởi đầu của FOSS

FOSS nhằm xóa bỏ sự thống trị và khắc phục một số hạn chế của phần mềm độc quyền

Mỗi phần mềm FOSS đều có đi kèm một giấy phép thỏa thuận về việc sử dụng, sửa đổi bổ sung, phân phối, phần mềm và mã nguồn phần mềm đó

Các quyền tự do thiết yếu của phần mềm tự do là

Trang 2

 Tự do sử dụng chương trình như bạn muốn, cho bất kỳ mục đích nào

 Tự do nghiên cứu cách chương trình hoạt động và thay đổi chương trình theo bất kỳ mục đích nào Truy cập vào mã nguồn là điều kiện tiên quyết cho việc này

 Tự do phân phối lại các bản sao để có thể giúp đỡ người khác

 Tự do phân phối các bản sao của các phiên bản sửa đổi của cá nhân cho người khác

1.2 Giấy phép phần mềm nguồn mở

1.2.1 Giấy phép mã nguồn mở:

a) Các giấy phép mã nguồn mở là các giấy phép bản quyền dành cho các phần mềm máy tính trong đó đặt ra các quy định buộc người sử dụng phần mềm đó phải tuân theo

Các giấy phép không quy định bất cứ sự hạn chế nào trong việc sử dụng

mã nguồn (hay gọi là giấy phép không bảo hộ - dễ dãi):

Phổ biến có: Apache Software License, BSD License, MIT License, b) Các giấy phép có quy định các hạn chế trong việc sử dụng mã nguồn (hay gọi là giấy phép bảo hộ - không dễ dãi):

Phổ biến có: GNU General Public License (GPL), Common Public License, Python Software Foundation License (PSFL), Mozilla Public License (MPL)…

Ví dụ: Phần mềm Mozilla Firefox sử dụng giấy phép nguồn mở Mozilla Public License (MPL)

Một giấy phép mã nguồn mở có copyleft được sử dụng rộng rãi, đảm bảo cho người dùng khả năng chạy, nghiên cứu, tùy biển về phần mềm

Năm 2006 tổ chức OSI thì đã nhận hằng trăm giấy phép và cấp phép khoảng 60 loại giấy phép

Tỷ lệ sử dụng của các loại giấy phép:

Trang 3

Hình 1: Sơ đồ thống kê độ phổ biến của các loại giấy phép Phần mềm Tự do Nguồn mở

Mức giới hạn của GPL so với Apache/BSD:

Hình 2: Bảng so sánh giữa 6 loại giấy phép phổ biến

1.2.2 Liên hệ giấy phép FOSS với Linux:

Tổ chức FSF (Free Software Foundation) và cộng đồng các lập trình viên yêu FOSS đã và đang đóng góp nhiều để Linux có thể hoàn thiện như ngày nay

và cũng là cảm hứng cho Linus Torvalds tạo nên Linux kernel

Hạt nhân Linux sử dụng giấy phép GPL, dùng GPL giúp đảm bảo:

Trang 4

 Hạt nhân Linux - các phiên bản hạt nhân sửa đổi trên các phần cứng đặc biệt, các module của hạt nhân luôn là FOSS

 Chỉ có một Linux duy nhất, không bị phân mảnh thành nhiều bản GPL Sử dụng khá niệm “copyleft”, khi nhà sản xuất chỉnh sửa & ứng dụng thì cần công khai mã nguồn nếu không vi phạm thỏa thuận pháp lý

Hình 3: Hệ điều hành GNU/Hurd

Vào năm 1991, Linus Torvalds (21 tuổi, đại học Helsinki, Phần Lan) đã bắt đầu một dự án nguồn mở nhỏ và sau này trở thành dự án hạt nhân Linux

Ý tưởng về một hệ điều hành tự do nguồn mở và miễn phí cho mọi người

đã thu hút được nhiều người, một hệ điều hành bắt đầu là một sở thích riêng của

Trang 5

một sinh viên dần đã trở thành hệ điều hành được sử dụng rộng dãi nhất, chạy trên nhiều loại thiết bị nhất

Năm 1994, cái tên “Linux” chính thức được sử dụng và hệ điều hành này được phát hành trên Internet

Ngày nay, Linux là một hạt nhân giúp các phân phối Linux cùng các phần mềm FOSS có thể chạy trên hầu hết tất cả các loại phần cứng từ chip nhúng rất chậm tới các siêu máy tính lớn nhất

Hình 4: Linus Torvalds tạo ra Linux thay thế MINIX và Unix

khi vẫn đang học đại học

Khái quát quá trình phát triển của Linux từ xưa tới nay:

Hình 5: Sơ đồ dòng thời gian của Linux

Trang 6

1.3.2 Một hệ điều hành Linux:

Hạt nhân Linux đi cùng và đóng gói với bộ phần mềm cơ bản của GNU thì

ta có ta có hệ điều hành tiêu chuẩn GNU/Linux

Ba thành phần cơ bản nhất của Linux/Unix:

1) Kernel: là chương trình nhân, chương trình đầu tiên chạy vào hệ thống Kiến trúc của kernel linux là monolithic

2) Shell (môi trường): cung cấp giao diện cho người dùng qua dạng văn bản, câu lệnh Shell là một trình thông dịch giúp người dùng thực hiện câu lệnh, chạy các chương trình Người dùng có thể chọn sử dụng đồ họa thay cho chế độ này nhưng Shell vẫn cần thiết cho hệ thống hoạt động được 3) File (hệ thống file): là cấu trúc cây các thư mục/tệp của hệ thống, bắt đầu bằng thư mục / (root)

Bố trí hệ thống file của Linux rất đơn giản và hiệu quả, file sẽ phân biệt chữ hoa và thường, không sử dụng drive letter như Windows, thay vào đó các phân vùng/thiết bị sẽ được gắn với thư mục như /media/USB, /home

Ưu điểm của linux là hoàn toàn miễn phí, chi phí phần cứng thấp, tốc độ cao, cộng đồng sử dụng lớn

Để sử dụng các ứng dụng windows trên môi trường ubuntu ta có thể sử dụng Wine hoặc PlayOnLinux

1.3.3 Công việc phát triển Linux:

Công việc phát triển Linux hiện tại được thực hiện bởi hàng nghìn lập trình viên trên toàn thế giới

Người đóng góp gửi những cải tiến, sửa lỗi, những thông tin để viết driver phần cứng từ các công ty phần cứng

Những đóng góp này sẽ được Torvalds và nhóm của ông duyệt và dẩy lên

hệ thống phiên bản Git

Trang 7

Hình 6: Sơ đồ quá trình phát triển Linux

1.3.4 Thành công hiện tại của Linux:

Các phân phối Linux và các hệ điều hành với nhân Linux như Android đã thành công trên nhiều lĩnh vực với ngoại lệ là mảng PC

Tới năm 2017 các server Linux chiếm trên 67% tổng số server trên thế giới Tuy vậy Linux vẫn chưa có vị trí trong mảng PC Hiện tại cộng đồng Linux

đã và đang góp phần phát triển Linux cho Desktop/PC Theo đó, cả trăm phân phối dành cho Desktop & Laptop khác nhau, phục vụ nhu cầu riêng biệt của nhiều người

Hình 7: Tới năm 2017, 99.6% các siêu máy tính trong TOP500 chạy

Linux

Trang 8

Hình 8: UbuntuTouch, hệ điều hành dành cho điện thoại

1.4 Bản phân phối của Linux

Cấu trúc, một phân phối thường có cần có:

 Thư viện hệ thống (system libraries)

 Công cụ (GNU tools, )

 Các module hạt nhân (kernel modules)

 Phần mềm tùy chọn thêm (user software)

 Tài liệu sử dụng (documentation)

 Hệ thống cửa sổ & hệ thống hiển thị (window & display system) và môi trường Desktop

Các thành phần của một phân phối Linux:

Trang 9

Hình 9: Minh họa các thành phần của một phân phối Linux

1.4.2 Hệ điều hành CentOS:

Là phiển bản không tốn phí của RedHat Enterprise Linux, có độ ổn định cao, cập nhật phần mềm chậm hơn phân phối khác nhiều, mục tiêu là dùng cho máy trạm và máy chủ Chúng ta sẽ lấy CentOS làm hệ điều hành mẫu cho môn Quản trị Linux

Website: https://www.centos.org/

Trang 10

Hình 10: Quá trình khởi động của CentOS

Hình 11: Giao diện đồ họa của CentOS 7

Trang 11

Ubuntu cũng có những phiên bản hỗ trợ dài hạn "Long Term Support", hỗ trợ trong vòng 3 năm đối với máy tính để bàn và 5 năm đối với máy chủ, 5 năm đối với máy tính để bàn và máy chủ và 10 năm đối với máy tính để bàn và máy chủ Ví dụ: “Ubuntu 18.04 LTS” là phiên bản Ubuntu được hỗ trợ dài hạn được xuất bản vào năm 2018

Trang 12

1.4.5 openSUSE:

Là phân phối con của SuSE Enterprise Linux (SLES), cả hai dựa trên Redhat Linux, được tài trợ chính bởi SuSE

openSUSE Leap có sự ổn định của CentOS và đa dạng của Ubuntu

Việc phát hành openSUSE Leap cùng với SLES tương đồng với quyết định phát hành CentOS của Redhat

Trang 13

1.4.6 Raspbian:

Là hệ điều hành dựa trên Debian dành riêng cho các chip nhúng Raspberry

Pi (nền tảng ARM)

Tới cuối 2016, 12.5 triệu máy tính RPi đã được bán ra

Được sử dụng trong IoT (Internet of Things), điều khiển thiết bị không người lái (Autopilot), giải trí - chiếu phim (Home entertainment), thậm chí như máy tính cá nhân (PC),

Hình 13: Máy tính nhúng Raspberry Pi

Hình14: Giao diện desktop Raspbian

Trang 14

Hình 15: khả năng kết nối và mở rộng của Raspberry Pi

Trang 15

Tài liệu tham khảo:

[1]: TS Ngô Bá Hùng - 2011, Phát Triển Phần Mềm Mã Nguồn Mở (Open Source Software Development)

Tìm hiểu thêm: https://sites.google.com/site/nbhung/open-source

[2]: Linus Torvalds - 2016, “GPL là yếu tố xác định sự thành công Linux” – LinuxCon bắc Mỹ

Nguồn: defining-factor-in-linuxs-success.html

http://www.cio.com/article/3112582/linux/linus-torvalds-says-gpl-was-[3]: Lịch sử phát triển Linux

Nguồn: https://tusachlinux.com/lich-su-phat-trien-unix-va-linux/

[4]: TS Ngô Bá Hùng - 2013, Linux Kernel

Nguồn: https://tailieu.vn/doc/linux-kernel-ts-ngo-ba-hung 900209.html

Trang 16

sử dụng quyền Superuser(root) để thực thi các lệnh

2.1 Quá trình khởi động Linux

2.1.1 Khái quát

Trên CentOS 7, hệ thống khởi động/quản lý các dịch vụ có tên systemd sẽ giúp hệ thống khởi động nhanh và hiệu quả hơn initd cũ

2.1.2 Các giai đoạn khởi động

Các giai đoạn khởi động đối với các phân phối dùng systemd:

1) Boot Manager tải hạt nhân Linux và initd (ramdisk) Init ramdisk - một hệ thống file đã nén tải lên RAM để hạt nhân tải driver, chứa các dịch vụ systemd cần thiết, chứa màn hình khởi động, Nó được sử dụng trước khi truy cập vào hệ thống file chính trên ổ cứng

2) systemd kiểm tra và gắn kết hệ thống file chính

Hệ thống file sẽ được sửa lỗi nếu cần (sau khi hệ thống mất nguồn dễ

có lỗi xảy ra)

3) systemd chạy journald, udevd, dbus và readahead journald: dịch vụ logging

udevd: quản lý hotplug phần cứng dbus: dịch vụ giao tiếp liên tiến trình

Trang 17

readahead: đọc trước file để tăng tốc quá trình khởi động 4) systemd chạy udevd, rồi hiện màn hình khởi động

Ở đây udev thực hiện nhận diện và tải module/driver cần thiết 5) Chế độ Basic

Chế độ câu lệnh, chế độ đơn người dùng hoặc chế độ cấp cứu khi cần thiết

Nếu hệ điều hành được chỉ định chạy chế độ này thì shell sẽ hỏi mật khẩu của root để truy cập

6) Chế độ Multiuser Đây là chế độ màn hình câu lệnh, chạy dịch vụ quản lý kết nối mạng, SSH, bluetooth, … Chế độ đa người dùng sẽ mặc định có 7 terminal ảo 7) Có thể chạy chế độ Graphical (phân phối Desktop)

Đây là chế độ đồ họa, chủ yếu là khởi động trình quản lý hiển thị để đăng nhập nếu ta dùng phân phối Linux dành cho Desktop

8) Các dịch vụ khác Ngoài ra trong quá trình khởi động còn có nhiều dịch vụ hệ thống khác hoặc những dịch vụ ta sử dụng đã cài đặt thêm vào

Tối ưu khởi động:

 Tắt các dịch vụ không cần thiết -> giảm sử dụng tài nguyên về sau này

 Kích hoạt và tối ưu thời gian ReadAHead rebuild system lại theo cấu hình mong muốn

2.2 Đăng nhập và thoát khỏi hệ thống

2.2.1 GUI (đồ họa)

Đối với đăng nhập vào Desktop qua trình quản lý hiển thị (display manager)

Trang 18

Có nhiều trình giao diện Desktop khác nhau tùy vào môi trường Desktop mà ta đã cài đặt Thường ta cần chọn username và nhập mật khẩu

để đăng nhập

Trình Display manager mặc định của CentOS là GDM (Trình quản lý hiển thị Gnome), trong hình demo là trình quản lý LXDM, do Linux cho khả năng tùy biến rất cao:

Hình 1: màn hình đăng nhập sau khi khởi động xong

2.2.2 Command Line (màn hình câu lệnh):

Chế độ Basic thì chỉ được nhập mật khẩu root; chế độ Multiuser mặc định ở terminal F1

Để sử dụng chế độ này cần chú ý:

 Virtual Terminal nhằm cho phép đăng nhập nhiều người dùng

 Khi ở chế độ GUI, dùng tổ hợp Ctrl + Alt + Fx để chuyển VT (Virtual Terminal), thường là từ F1-F6 là 6 trình command line,

và F7 (hoặc F1) thường là truy cập chế độ GUI

 Để thoát (Shell): Ctrl+D hoặc lệnh exit

VD đăng nhập xem thông tin & đổi mật khẩu:

Trang 19

Hình 2: thực hiện đăng nhập người dùng admin, xem phiên bản hạt nhân và đổi mật khẩu

2.2.3 SSH (Secure Shell, đăng nhập từ xa):

SSH là phương thức kết nối có tính bảo mật cao giúp ta có một trình Command Line từ xa qua Internet và có thể quản lý file qua phương thức SFTP (Secure FTP)

Ta có thể đăng nhập với username vào SSH bằng các phương thức mật khẩu/public-key/keyboard

Cài đặt SSH server trên CentOS:

Trang 20

Giờ ta có thể đăng nhập với username & password, tiếp theo ta cần biết IP của server, có thể qua trang quản trị

Lệnh lấy IP WAN: curl 'https://wtfismyip.com/json'

 Nếu cần IP LAN, chạy lệnh rồi xem mục 'inet addr' của adapter

hiện mạng đã kết nối:/sbin/ifconfig

 Phần mềm client truy cập SSH:

 PuTTY (SSH, SFTP)

 MobaXterm (ngoài ra truy cập VNC, SFTP, RDP, Xdmcp client)

 Trên máy khách là Linux/MacOS hoặc Windows Subsystem for Linux ta có thể dùng câu lệnh ssh

Hình 3: Demo SSH PuTTY (Windows 10)

2.2.4 Remote Desktop/VNC (Quản lý Desktop từ xa):

VNC (virtual network computing): truyền tải hình ảnh trực tiếp từ hệ thống đồ họa trên Server tới máy khách qua Internet/LAN

Trang 21

Remote Desktop: có chung mục đích với VNC, do Microsoft phát triển

Cài đặt RDP/VNC server:

 Có hai chương trình thông dụng trên Linux là xrdp và tigervnc-server

 Hai gói chương trình này nằm trong EPEL repository,

 Repository chính của CentOS chỉ chứa những chương trình

ổn định và quan trọng

Lệnh: yum install epel-release yum install xrdp tigervnc-server

Hình 4: Remote desktop với máy ảo từ client Windows

Trang 22

Hình 5: Demo với môi trường đồ họa KDE desktop qua RDP

2.3 Các lệnh lấy thông tin, ngày giờ, đổi mật khẩu

 Câu lệnh date: #lấy/đặt thông tin ngày giờ Ngày giờ hiện tại:

 Câu lệnh time: #kiểm tra một chương trình chạy trong bao lâu

time <chuoi cau lenh>

 Câu lệnh passwd: #để đổi mật khẩu, cần nhập mật khẩu cũ

passwd

Câu lệnh tzselect: #chọn timezone (vùng thời gian) mới

tzselect

Trang 23

Nhập 1 số tương ứng với tùy chọn hiện Chọn từ vùng (VD Asia), tới nước (VD Vietnam) rồi tới vùng (VD South VN hoặc Indochina Time)

 Câu lệnh ntpdate: #cập nhật ngày giờ hiện tại về giờ chuẩn từ server

ntpdate <ip hoặc domain_server>

VD server NTP: time.nist.gov, asia.pool.ntp.org

 Câu lệnh rpm (các bản phối dựa trên Redhat) hoặc dpkg (các bản phối dựa trên Debian): dùng để quản lý package gói đã được cài đặt, xóa package hoặc cài đặt tệp package vào hệ thống

Điểm mạnh của Linux so với Windows/Mac là kiểm soát các gói tốt,

nó là trình duy nhất, không để chương trình sử dụng installer riêng

Các gói phụ thuộc vào nhau, các chương trình phụ thuộc được cài đặt/xóa tự động nhờ các trình quản lý cao hơn như: yum (CentOS) hay apt (Debian)

rpm -e <tên_gói>

rpm -e no-deps <tên_gói>

rpm -i <đườngdẫn_tệp_gói>.rpm rpmquery info <tên_gói>

rpm -U <đườngdẫn_tệp_nâng_cấp_gói>.rpm dpkg -i <ten_goi.deb>

Trang 24

Hình 6: Demo lệnh cơ bản

Hình 7: Demo lệnh cơ bản

2.4 Sử dụng Shell và các lệnh tính toán số học

2.4.1 Khái quát

Trang 25

Shell là trình thông dịch (Intepreter) và thực thi các lệnh nhận từ thiết

bị nhập chuẩn (bàn phím) hoặc từ tệp tin; sử dụng các cấu trúc điều khiển if-for-while, có thể ghi/đọc file văn bản, …

Khi ta đăng nhập qua Command Line hoặc SSH thì ta được đưa đến trình Shell Còn khi ta đăng nhập qua GUI thì ta cần mở phần mềm đồ họa Terminal, màn hình câu lệnh sẽ chạy trong một cửa sổ tiện lợi cho ta đa nhiệm

Cấu trúc gọi chạy trương trình trong Shell:

 <ten_hoac_duong_dan> <-tuy-chọn-ngan > < tuy-chon-dai >

<chuoi-tham-so-dua-vao >

 các -ts (tùy chọn ngắn, tham số) phân biệt chữ hoa và thường

 các tuy-chon ở công cụ GNU thường có cú pháp ngắn gọn VD: trong rpm -a và all là một

 các tùy chọn có thể tương ứng với tham số

VD: find -type f -mode 0644 /thumuc Dãy các câu lệnh kịch bản Shell lưu vào một file văn bản để có thể

thực thi sau: sh <file>

Có thể chạy trực tiếp file bằng cách:

 Thêm '#!/bin/sh' vào đầu file (không có ngoặc đơn)

 Tiếp theo là thêm quyền thực thi cho file bằng câu lệnh 'chmod +x <file>'

 Lệnh shell để trong tệp sẽ hoạt động chong chế độ interactive (không tương tác từ người dùng)

non-Truy cập Shell:

 Khi ta đăng nhập qua Command Line hoặc SSH thì ta được đưa đến trình Shell

Trang 26

 Khi ta đăng nhập qua GUI thì ta cần mở phần mềm đồ họa Terminal, màn hình câu lệnh sẽ chạy trong một cửa sổ tiện lợi cho ta đa nhiệm

Shell có thể chạy nhiều câu lệnh trong 1 dòng: bằng đấu ';' (chấm phẩy), '&&' hay '|' …

Đối với lệnh gõ trong Shell: một số là lệnh có sẵn của Shell, không phải dẫn từ tệp chương trình nhị phân bên ngoài trong các thư mục /bin

VD: sudo -i tương đương sudo login

sudo help (để xem danh sách các tùy chọn)

ls all / ls -a tương đương nhau

VD: tùy chọn tương đương tham số:

find -type f (f là tìm file, hoặc d là tìm thư mục)

2.4.2 Các cú pháp/lệnh thông dụng trong Shell

bien=1000 #Gán giá trị số

let bien=2000 #Gán giá trị số dùng let

bien='Chuỗi' #Gán chuỗi

echo $bien #Sử dụng biến

echo "$bien1 $bien2" #Dùng ngoặc kép thì có thể dùng biến trong

chuỗi Chú ý: khi gán giá trị cho biến không được sử dụng khoảng trống

`<các câu lệnh>` #Gộp câu lệnh (trong mệnh đề của if, while,

nối chuỗi, )

expr <s1> <toán_tử> <s2> hoặc $[ <toán> ] # thực hiện tính toán

số học (int)

Ví dụ: expr 5 \* 10 (thực hiện tính toán 5 nhân 10) Chú ý: giữa các

tham số phải có ít nhất 1 khoảng trắng

jot <lựa chọn> <số lượng> <bắt đầu> <kết thúc> (để sinh ra dãy

số)

Trang 27

Ví dụ: jot -r 4 1 5 (sinh ra 4 số ngẫu nhiên từ 1 đến 5)

bc (dùng để tính toán với số thực) Ví dụ: echo 8.5 + 5.8 | bc

>> vs > vs < vs << vs X>&X vs | # chuyển hướng

input/output/error của lệnh, (X là 0, 1, 2 tương đương stdin, stdout, stderr) và X>X

factor <d> hoặc factor $bien sử dụng để phân tích 1 số thành các

fi

while <câu lệnh điều kiện>; do

# thực hiện đến khi lệnh điều kiện sai

if [ -x /duongdan/tep ] # Kiểm tra thuộc tính

if [ ! `test mệnh đề` ] # Thực hiện nếu sai

# một số tùy chọn: -f -E -e -d –z

if [ "$bien" == 'something’ ] # kiểm tra =

if [ $bien -le 123 ] # le: nhỏ hơn, ge: >

Biến môi trường PATH:

Trang 28

Nếu PATH rỗng ta không thể gõ tên câu lệnh mà là không phải đường dẫn đến tệp đó

VD tệp /bin/ls, tệp /usr/bin/rpm, tệp /usr/sbin/fdisk

VD về `echo $PATH` của một hệ thống đang chạy:

/home/qtlinux/.npm-packages/bin:/usr/local/bin:/usr/bin:/bin:/usr/games Phím tắt:

Tab # Thực hiện auto-completion -> thực hiện tự động hoàn

Tùy chọn help và usage (hoặc ngắn là -h, -help):

Là tùy chọn mà tất cả công cụ chuẩn đều có

Cần thật cẩn thận khi nhận quyền Superuser từ các câu lệnh như `sudo` hay `su`

2.6 Tổng quan hệ thống file & cấu trúc thư mục

Trang 29

2.6.1 Khái quát

Hệ thống file (FS) trên Linux được gắn tới các điểm gắn kết là các thư mục, thường được kết nối qua / (gốc cây thư mục), nguồn của một hệ thống file bao gồm: phân vùng bộ nhớ, RAM, mạng (Network FS), thẻ

 XFS: hệ thống file hướng năng suất & tự gỡ lỗi

 Ext4: hệ thống file truyền thống của Linux

 Btrfs: hệ thống file có khả năng mở rộng, snapshot, backup, nén, … mạnh

 F2FS: hệ thống file tối ưu cho bộ nhớ Flash Windows thường sử dụng định dạng là NTFS

Tên tệp (File) và thư mục (Directory) trên Linux có thể chứa tất cả các

ký tự trong bảng mã ASCII hoặc Unicode, phân biệt chữ hoa và chữ thường

và không được chứa:

\ / : * ? " < > |

Một tệp/thư mục có các thuộc tính như:

 Type #tệp thường/thư mục (D)/liên kết (L)

 Access time #thời gian cuối tệp được truy cập (obsoleted)

 Modify time #thời gian cuối tệp được ghi

 Created time #thời gian tệp được tạo

 Owner/Owner Group #người sở hữu, nhóm sở hữu

 Permission Sets #các cài về quyền hạn (có chứa Type)

Trang 30

 Links #số liên kết tới tệp/thư mục nó

 Blocks #số block mà tệp chiếm của hệ thống file Lưu ý:

Tệp trong /dev (trừ /dev/shm), /sys là các tệp đặc biệt (Special file) Tệp thực thi không cần có định dạng (Windows cần exe, dll) Tệp thư viện chương trình thường là so (hay so.V.E.R, VD: libfam.so.1.0)

2.6.2 Mount

Mount là một quá trình mà trong đó hệ điều hành làm cho các tập tin

và thư mục trên một thiết bị lưu trữ có thể truy cập được bởi người dùng thông qua hệ thống tệp của máy tính

Trên Windows chúng ta thường mount FS vào C: D: , trên Linux ta phải mount vào thư mục duuy nhất

Có thể được mount vào hệ thống tệp vật lý Tức là một thư mục trong

hệ thống file này làm mount point cho FS khác mount vào

Không cần Superuser mới được mount Mount có thể lấy quyền root

để mount nếu thêm thuộc tính user vào một mục mount cho 1 FS tệp cấu hình /etc/fstab, hoặc dùng fuser

Hình 8: cây thư mục

2.6.3 Link

Trang 31

Là liên kết tới File hoặc Directory khác mà không hề làm tăng dung lượng sử dụng

2.7 Cấu trúc thư mục (CentOS 7)

/lib64 => tương tự /lib nhưng chỉ dành cho chương trình 64bit

/etc => thư mục chứa các configurations (cài đặt, cấu hình) của hệ thống

/boot => chứa các file của Boot Manager (trình quản lí khởi động) và hạt nhân Linux

/bin => chứa các Excecutable (file thực thi chương trình) cho tất cả người dùng

/sbin => chứa các Excecutable (file thực thi chương trình) dành cho quản trị viên root

Trang 32

/home => thư mục chứa các thư mục con có tên là tên của user (người dùng) chứa tất cả dữ liệu của user không phải root (người dùng Desktop) /proc =>chứa hệ thống file ảo 'proc' dùng để giám sát và điều khiển các chương trình đang chạy, các thông tin hệ thống, các thông tin phần cứng, các cài đặt mạng và cài đặt cho hạt nhân được cài lúc hệ thống khởi động

/dev => chứa hệ thống file ảo 'devtmpfs' bên trong có các 'nút' (device node) dể đại diện cho các thiết bị được gắn vào hệ thống, các 'nút' này rất quan trọng để hệ thống Linux hoạt động được

/sys => chứa hệ thống file ảo 'sysfs' dùng để tăng khả năng hỗ trọ việc giám sắt và điều khiển các thiết bị hot-plug và hiển thị theo hướng thứ bậc

/include => chứa header C/C++ của hạt nhân, các thư viện (.so) để dịch ra chương trình từ trình dịch (như GNU Compiler Collection – GCC) /games => chứa games - tách biệt vs chương trình làm việc

/share => thư mục chứa data chia sẻ/dùng chung cho các chương trình Các thư mục lib64, lib, sbin, bin ở trong /usr được liên kết bằng Symbolic link tới thư mục có tên tương tự như ở / (root) Điều này chỉ có Fedora/RHEL/CentOS (RedHat based) làm

Trang 33

/usr/local => thư mục có cấu trúc tườn tụ /usr để dùng thay lúc người dùng cài đặt ngay chương trình sau khi build (dịch từ mã nguồn) do không

/opt => chứa các phần mềm cài theo kiểu standardalone

Hình 9: sơ đồ cấu mô phỏng trúc thư mục

Trang 34

2.8 Quyền truy cập thư mục và file

 Owner (người tạo)

 Owner Group (nhóm tạo)

 World (toàn bộ các User khác) Mỗi file/directory (link đến bị ảnh hưởng theo) trên hđh Linux/Unix đều có 2 thông tin cơ bản là Owner, Group Owner Mỗi người/nhóm người dùng là Owner/Owner Group/World đều sở hữu tổ hộp quyền chỉ định riêng Chỉ có Owner hoặc Superuser mới có thể thay đổi quyền chỉ định trên file/directory

Lưu ý:

 Owner Group thường là nhóm chính của người tạo

 Chỉ có Owner mới thay đổi quyền chỉ định (chmod), ngoại trừ root Chỉ có Owner/Superuser mới có thể thay đổi được Owner Group

 Chỉ có Superuser mới thay đổi được Owner của một file/directory

Thực thi file/thực thi các file trong directory

 SUID (thuộc tính superuser id)

Trang 35

Làm cho chương trình chạy trên người dùng Owner chứ không phải chính người dùng chạy chương trình đó - nguy hiểm nếu sử dụng không đúng cách -> chỉ có 1 cho Owner

 STICKY BIT (thuộc tính dính)

Thuộc tính chỉ cho phép Owner đổi tên hoặc xóa nó đi, quyền hạn đã cài cho Owner Group và World bị bỏ qua -> chỉ có 1 cho Owner

Mỗi đối tượng người dùng (Owner/Owner Group/World) đều sở hữu

tổ hộp quyền như trên; Chỉ có Owner/Superuser có thể thay đổi quyền chỉ định trên file/directory

VD về đường dẫn:

‘thumuc1/thu muc_2/tep_or_thu muc’

đường dẫn relative bắt đầu là hoặc không

'/tmp/thumuc1/thu muc 2/tep'

đường dẫn absolute bắt đầu là /

./

Trang 36

thư mục hiện tại (CWD)

ls <duongdan> #Liệt kê tại đường dẫn cụ thể

ls –l #Hiển thị dạng dài với nhiều thông tin hơn là chỉ

tên

ls -a hoặc ls –A #Hiển thị cả nhữnng file/directory được ẩn có bắt

đầu là '.' (dấu chấm), với -A thì không hiện thư mục '.' và ' '

ls –h #Hiển thị kích thước file dạng kB/mB/gB thay vì

chỉ hiện số bytes

ls color=auto #Dạng hiện màu tùy theo loại file/directory/link

ls -1A #Liệt kê tệp/thư mục trong thư mục hiện tại Dạng

1 cột, hiện tệp ẩn

Trang 37

ls –lhS #Liệt kê theo dạng chi tiết và sắp xếp theo dung

lượng tệp

ls –ltr #Liệt kê sắp xếp tăng dần theo thời gian sửa/tạo

ls –help #Để xem rất nhiều nhiều tùy chọn khác

ls –l #Để liệt kê đầy đủ thông tin của các file

ls –d */ #Để liệt kê các thư mục trong thư mục hiện hành

VD: muốn đọc nội dung của một đĩa CD ta cần phải mount trước

# Gắn kết hệ thống file với tùy chọn

mount <nguon_cua_htfile> <duongdan_thumuc_dich> -o

Dùng thay đổi Permission Sets cho tệp/thư mục

Với Symbolic link thì chmod sẽ sửa đích đến Hard link thì không do mỗi file có bảng thuộc tính riêng

Cấu trúc sử dụng:

chmod +x +w +r +s +t <path_ten_tep_thumuc>

Trang 38

 Câu lệnh chmod dùng thêm lần lượt quyền thực thi, quyền ghi, quyền đọc, quyền SUID và sticky bit

 Dấu + dùng để thêm permission này, dấu - để xóa

 Ta có thểm thêm u, g, o vào trước dấu cộng hoặc trừ để chỉ thêm, xóa quyền cho lần lượt Owner, Owner Group và Others (World)

 VD: u+w g-w

chmod 1764 <ten_tep_thumuc>

 Câu lệnh chmod dùng dãy số hệ octal

 1764 có format là BUGO (Bits, Owner, Owner Group, Others – World)

 Giải mã 1764:

- Trong đó 7 là mục quyền cho Owner tương đương 4+2+1 – 'r+w+x'

- 6 là mục quyền cho Owner Group tương dương 2+4 – 'r+w'

- 4 là mục quyền cho World tương đương 4 – 'r'

- Và cuối cùng, 1 ở đầu là mục quyền riêng cho sticky bit (1) và SUID bit (2), 1 tương đương có sticky bit và không có SUID bit được đặt: 1+0

chown <user>:<group> <duongdan>

chown <user> <duongdan>

Trang 39

 Có thểm thêm tùy chọn -R: thay đổi luôn cho tất cả các tệp/thư mục con trong <duongdan> nếu có

 Và tùy chọn -h: sử dụng chính đối tượng liên kết (symbolic link) thay vì sửa tệp/thư mục ở đường dẫn liên kết đó trỏ đến

# Tùy chọn -p để giữ nguyên các thuộc tính

# Tùy chọn -R để copy cả file mà liên kết

 Câu lệnh mv Dùng di chuyển file/directory

Sử dụng:

mv <duongdan_tep_thumuc> <duongdan_dich_den>

Trang 40

 Câu lệnh ln Dùng tạo Hard link (mặc định) và Symbolic link (tùy chọn -s)

Sử dụng:

cat <duongdan_tep>

Ngoài ra có thể dùng để copy nội dung file này vào cuối file khác

cat <duongdan_tep1> >> <duongdan_tep2>

 Câu lệnh tail Dùng đọc những dòng cuối file văn bản (dùng xem log vv)

Sử dụng:

Đọc 100 dòng cuối

 Cú pháp Shell '>', '<', '<<', '>>' Dùng ghi tiếp/ghi đè (tạo nếu chưa có file) lên file, lấy dữ liệu, lấy và chồng dữ liệu từ file

Sử dụng:

gunzip -c <duongdan_tep>.gz > <duongdan_tep>

#Giải nén tệp gzip ra một tệp khác

echo Something To Say >> <duongdan_tep>.txt

#Nối thêm dòng AHIHI vào tệp txt Các công cụ trên màn hình câu lệnh khác như nano, vi, dhex, pico, :

Để tạo, xử lý, chỉnh sửa tệp khác

Sử dụng:

Ngày đăng: 04/06/2024, 18:05