Nhập môn Hệ điều hành Linux
Nhập môn Hệ điều hành Linux Đặng Nguyên Phương dnphuong1984@gmail.com Ngày 24 tháng 12 năm 2013 Mục lục Mở đầu 2 Giới thiệu Linux 2.1 Linux gì? 2.2 Nhân Linux 2.3 Lịch sử hình thành Linux 2.4 Kiến trúc Linux 2.5 Một số đặc tính hệ điều hành 2.6 Các phân phối hệ điều hành Linux 2 Linux 3.1 Shell 3.2 Terminal 3.3 Các lệnh thao tác với tài khoản người dùng 3.4 Các lệnh thao tác với thư mục tập tin 3.5 Các lệnh điều khiển tiến trình 3.6 Lệnh cài đặt gói phần mềm, ứng dụng 7 11 14 15 Các 4.1 4.2 4.3 4.4 4.5 4.6 16 16 18 19 20 22 23 công cụ Linux thông dụng Lệnh echo Một số lệnh Linux Các kí tự đặc biệt Filter pipe Mảng chuỗi Trình soạn thảo văn Shell script 5.1 Cách tạo 5.2 Biến 5.3 Cấu trúc 5.4 Hàm 25 25 26 27 31 Cách thức biên dịch thực thi chương trình 6.1 Trình biên dịch 6.2 Các thức biên dịch thực thi chương trình 6.3 Biên dịch với thư viện 6.4 Biên dịch với Makefile 32 32 32 33 34 thực thi shell script điều khiển Tài liệu tham khảo 37 Đặng Nguyên Phương Tài liệu nội NMTP Mở đầu Có thể nói phần lớn sinh viên Việt Nam nay, cụ thể sinh viên ngành khoa học kĩ thuật hạt nhân, hệ điều hành Linux điều xa lạ Trái với hệ điều hành mã nguồn đóng Windows hay MacOS, hệ điều hành Linux sử dụng rộng rãi giới khoa học, đặc biệt lĩnh vực hạt nhân hạt bản, từ thực nghiệm lý thuyết Những ưu điểm Linux so với hệ điều hành khác phần mềm miễn phí, tính bảo mật cao, khả can thiệp sâu vào bên hệ thống, giúp cho hệ điều hành có vị trí cao mắt nhà khoa học cơng nghệ Trong hầu hết thí nghiệm lớn hạt nhân hạt nay, hệ điều hành Linux hệ điều hành sử dụng suốt q trình tiến hành thí nghiệm Do đó, việc tìm hiểu sử dụng hệ điều hành Linux cách thành thạo ưu lớn cho bạn sinh viên có ý định gắn bó lâu dài với ngành khoa học Tập tài liệu viết với mục đích cung cấp cho bạn số kiến thức hệ điều hành Linux cách thức hoạt động nó, hướng dẫn sử dụng số công cụ cung cấp hệ điều hành Nội dung tài liệu tổng hợp từ nhiều nguồn khác (xem phần Tài liệu tham khảo) Ở phần đầu tài liệu, tác giả trình bày định nghĩa Linux nguyên lý hoạt động nó, phần cung cấp lệnh hệ điều hành Sau hoàn thành xong phần bản, bạn làm quen với phương thức lập trình shell script trình bày phần Đối với bạn muốn xây dựng chương trình mơ phỏng, xử lý số liệu hệ điều hành Linux, phần giúp bạn tìm hiểu cách thức biên dịch thực thi chương trình từ mã nguồn Tác giả hi vọng với tập tài liệu này, bạn sinh viên với niềm đam mê nghiên cứu có đủ tự tin để bắt tay vào việc tìm hiểu hệ điều hành Linux làm cho trở thành cơng cụ đắc lực phục vụ cho công việc bạn Giới thiệu Linux 2.1 Linux gì? Thuật ngữ Linux thực chất sử dụng để “nhân Linux” (Linux kernel ) Tuy nhiên thực tế, tên gọi Linux sử dụng cách rộng rãi để • Một hệ điều hành giống Unix (Unix-like) theo chuẩn POSIX (Portable Operating System Interface) tạo việc đóng gói nhân Linux với thư viện cơng cụ GNU • Các phân phối Linux (xem Phần 2.6) 2.2 Nhân Linux Nhân hệ điều hành (operating system kernel hay OS kernel ) thành phần trung tâm hầu hết hệ điều hành máy tính, có nhiệm vụ quản lý tài nguyên hệ thống, liên lạc thành phần phần cứng phần mềm (xem Hình 1) Nó cung cấp chức cho hệ điều hành • Cung cấp tài nguyên máy tính (bộ nhớ, CPU, thiết bị vào/ra mà phần mềm ứng dụng cần điều khiển để thực chức mình) cho tiến trình (process) phần mềm ứng dụng qua chế liên lạc tiến trình (inter-process communication) hàm hệ thống (system call ) • Xác lập rào chắn tiến trình khác nhau, tiến trình bị hỏng khơng làm ảnh hưởng đến tiến trình Đây ưu điểm lớn Linux so với hệ điều hành DOS Windows Đặng Nguyên Phương Tài liệu nội NMTP Hình 1: Sơ đồ hoạt động nhân hệ điều hành Nhân Linux xây dựng ngơn ngữ lập trình C mơ lại nhân Unix (một hệ điều hành máy tính xây dựng vào năm 1960-1970 với thiết kế theo module) Linus Torvalds phát triển vào năm 1991 Một số đặc điểm nhân Linux thừa kế từ nhân Unix gồm có • Nhân kiểu ngun khối (monolithic kernel ): thực nhiệm vụ cách thực thi toàn mã hệ điều hành địa nhớ để tăng hiệu hệ thống • Thiết kế theo module: hệ điều hành cung cấp tập hợp công cụ đơn giản, công cụ thực chức giới hạn định nghĩa rõ ràng • Hệ tập tin phân cấp (Filesystem Hierarchy Standard − FHS): hệ thống tập tin tổ chức theo hệ thống phân bậc tương tự cấu trúc phân cấp, bậc cao hệ thống tập tin thư mục gốc, ký hiệu vạch chéo “/” (root directory) • Unix shell: giao diện trung gian người dùng nhân Unix • Cơ chế pipeline: xây dựng lệnh phức tạp cách kết hợp lệnh đơn giản 2.3 Lịch sử hình thành Linux Hệ điều hành Linux phát triển dựa hai tảng hệ điều hành Unix Dự án GNU Hệ điều hành Unix kiến nghị phát triển viện nghiên cứu Bell công ty AT&T (Mỹ) vào năm 1969 Ken Thompson, Dennis Ritchie, Douglas McIlroy Joe Ossanna Bản hệ điều hành đời vào năm 1971 viết ngôn ngữ Assembly Năm 1973, Dennis Ritchie viết lại Unix ngôn ngữ C (trừ nhân hệ điều hành I/O) Lợi ích việc viết hệ điều hành ngơn ngữ bậc cao có khả mang mã nguồn hệ sang máy tính khác biên dịch lại, nhờ điều mà hệ điều hành có chạy hệ máy tính khác Hệ điều hành Unix nhanh chóng phát triển sử dụng rộng rãi trường học doanh nghiệp Năm 1983, Dự án GNU khởi xướng Richard Stallman, với mục đích tạo "Hệ thống phần mềm hồn chỉnh tương thích với Unix" bao gồm toàn phần mềm tự (Free Software) Sau vào năm 1985, Stallman bắt đầu thành lập Tổ chức phần mềm tự tạo Giấy phép chung GNU (GNU General Public License − GNU GPL) vào năm 1989 Năm 1987, hệ điều hành MINIX (viết tắt “mini-Unix”) thiết kế giáo sư Andrew S Tanenbaum dựa tảng Unix nhằm phục vụ cho mục đích giáo dục Chính MINIX nguồn cảm hứng cho Linus Torvalds để tạo Linux sau Đặng Nguyên Phương Tài liệu nội NMTP Khoảng đầu 1990, nhiều chương trình ứng dụng cho Unix đời, thành phần cấp thấp cần thiết trình điều khiển thiết bị, daemons, chưa hoàn thành Như nhu cầu cấp bách lúc cần có hệ điều hành hồn chỉnh để chạy chương trình Vào năm 1991, học Đại học Helsinki, Linus Torvalds bắt đầu có ý tưởng việc xây dựng hệ điều hành, ông nhận thấy hạn chế giấy phép MINIX sử dụng giáo dục mà Torvalds bắt tay vào việc phát triển nhân Linux môi trường MINIX để ứng dụng viết cho MINIX sử dụng Linux Dần dần ứng dụng GNU bắt đầu thay thành phần MINIX, lợi ích sử dụng mã nguồn có sẵn cách tự từ dự án GNU Phiên Linux 1.0 đời vào năm 1994 quyền GNU, tải xem mã nguồn Linux Từ đến có hàng loạt phiên Linux đời với nhiều hướng phát triển khác Hệ điều hành Linux đạt thành công cách nhanh chóng nhờ vào mơ hình phát triển phần mềm nguồn mở hiệu quả, với đặc tính bật so với hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với phiên Unix độc quyền) khả bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) đặc điểm giá thành rẻ, không bị phụ thuộc vào nhà cung cấp 2.4 Kiến trúc Linux Ta chia kiến trúc Linux thành khu vực (xem Hình 2) Vùng nhân hệ điều hành (kernel space) gồm thành phần • Mã nhân phụ thuộc kiến trúc vi xử lý (Architecture-dependent kernel code) phần lớn Linux độc lập với kiến trúc vi xử lý, có phận cần phải theo kiến trúc cụ thể để hoạt động hiệu quả, thư mục /linux/arch chứa mã nguồn phụ thuộc kiến trúc (vd: thư mục i386) • Nhân hệ điều hành (kernel ) phần mã nhân độc lập với kiến trúc vi xử lý, trình bày bên • Giao diện hàm hệ thống (System call interface − SCI) thực nhiệm vụ gọi hàm hệ thống từ vùng ứng dụng vào nhân Linux Giao diện độc lập với kiến trúc vi xử lý họ vi xử lý Các gói liên quan cài thư mục ẩn /linux/kernel phần phụ thuộc vào kiến trúc vi xử lý nằm /linux/arch Vùng không gian người dùng (user space) gồm thành phần • Các ứng dụng người dùng (User Applications) bao gồm phần mềm, gói ứng dụng • Các thư viện C (GNU C Library) phục vụ cho giao diện hàm hệ thống, tạo liên kết ứng dụng nhân Linux Giao diện quan trọng nhân Linux ứng dụng chiếm vùng địa nhớ bảo vệ khác Mỗi ứng dụng có vùng địa ảo riêng cịn nhân có vùng địa Các thành phần hệ điều hành Linux hồn chỉnh gồm có • Bộ khởi động (bootloader ) chương trình thực thi máy tính lần mở lên, nhiệm vụ chương trình tải nhân Linux vào nhớ Một số khởi động phổ biến GRUB, LILO, Đặng Nguyên Phương Tài liệu nội NMTP Hình 2: Kiến trúc hệ điều hành Linux • Trình khởi động (init program) tiến trình khởi động nhân Linux, tiến trình gốc tiến trình, hay nói cách khác tất tiến trình khởi động thông qua init chẳng hạn tiến trình dịch vụ hệ thống, dấu nhắc đăng nhập (bất kể giao diện đồ họa hay dòng lệnh), • Thư viện phần mềm, chứa tập tin thư viện sử dụng tiến trình chay Trên hệ thống điều hành Linux sử dụng tập tin thực thi dạng ELF (Executable and Linkable Format), trình liên kết động (dynamic linker ) ld-linux.so có nhiệm vụ quản lý việc sử dụng thư viện liên kết động Thư viện phần mềm chung dùng nhiều hệ thống Linux thư viện ngôn ngữ C GNU Nếu hệ thống cài đặt cho người dùng tự biên dịch phần mềm, tập tin header thêm vào để mô tả giao diện cho thư viện cài đặt • Các chương trình giao diện người dùng shell môi trường cửa sổ (windowing environments) 2.5 Một số đặc tính hệ điều hành Linux • Mã nguồn mở (open source) theo giấy phép GNU, người sử dụng Linux có phần mềm miễn phí, thay đổi mã nguồn phần mềm muốn Ngoài ra, người dùng cịn phân phối lại phần mềm thích, miễn cung cấp kèm mã nguồn ghi thay đổi • Đa nhiệm (multi-tasking) tất tiến trình Linux độc lập, khơng tiến trình cản trở cơng việc tiến trình khác Nhân Linux thực chế độ phân chia thời gian vi xử lý trung tâm (Central Processing Unit − CPU), chia cho tiến trình khoảng thời gian thực • Đa người dùng (multi-user ) cho phép nhiều người làm việc lúc, Linux cung cấp tất tài nguyên hệ thống cho người dùng làm việc qua terminal, ứng dụng giao diện dòng lệnh (Command Line Interface − CLI) • Làm việc phần cứng khác Linux phát triển tảng Intel 386/486, làm việc tất vi xử lý Intel (bao gồm xử lý 64bit), đồng thời Linux cịn làm việc nhiều xử lý khác AMD hay ARM, DEC Alpha, SUN Sparc, Đặng Nguyên Phương Tài liệu nội NMTP • Khả chạy chương trình HĐH khác Linux phát triển trình giả lập (emulator ) cho DOS, Windows 3.1, Windows 95 Wine Ngồi ra, Linux có loạt chương trình tạo máy ảo mã nguồn mở sản phẩm thương mại: qemu,bochs,vmware, • Đưa nhớ swap lên đĩa cho phép làm việc với Linux dung lượng nhớ có hạn, nội dung số phần nhớ ghi lên vùng đĩa cứng xác định từ trước, việc có làm giảm tốc độ làm việc cho phép chạy chương trình cần nhớ dung lượng lớn mà thực tế khơng có máy tính • Tổ chức nhớ theo trang hệ thống nhớ Linux tổ chức dạng trang với dung lượng 4KB cung cấp trang nhớ theo yêu cầu, phần mã cần thiết chương trình nằm nhớ, cịn phần mã khơng sử dụng thời điểm nằm lại đĩa • Cùng sử dụng chương trình cần chạy lúc nhiều ứng dụng đó, Linux nạp vào nhớ mã chương trình tất tiến trình giống sử dụng mã • Thư viện chung phân chia thư viện thành thư viện động (dynamic) tĩnh (static), cho phép giảm kích thước nhớ bị ứng dụng chiếm • Bộ đệm động đĩa nhớ dự trữ cho đệm giảm xuống nhớ không sử dụng, tăng lên hệ thống hay tiến trình cần nhiều nhớ • Hỗ trợ định dạng hệ thống tập tin khác hỗ trợ số lượng lớn định dạng hệ thống tập tin, bao gồm hệ thống tập tin DOS OS/2, hệ thống tập tin mới, reiserfs, HFS, Trong hệ thống tập tin Linux, gọi Second Extended File System (ext2fs) Third Extended File System (ext3fs) cho phép sử dụng không gian đĩa cách có hiệu • Khả hỗ trợ mạng hỗ trợ tất dịch vụ Unix, bao gồm Networked File System (NFS ), kết nối từ xa (telnet, rlogin, ssh), làm việc mạng TCP/IP, truy cập dial-up qua giao thức SLIP PPP, đồng thời có hỗ trợ chia sẻ tập tin in từ xa mạng Macintosh, Netware Windows 2.6 Các phân phối hệ điều hành Hiện có nhiều phân phối hệ điều hành Linux toàn giới, phần lớn tải cài đặt thơng qua kết nối mạng Điều cho phép người dùng lựa chọn hệ điều hành cho họ theo nhu cầu cần thiết Các phân phối trì quản lý cá nhân, tổ chức tình nguyện cơng ty Một phân phối hoàn chỉnh bao gồm nhân Linux cài đặt, hệ thống bảo mật chung gói phần mềm cần thiết Các phân phối khác sử dụng trình quản lý gói khác dpkg, Synaptic, YAST, yum Portage để cài đặt, loại bỏ, cập nhật tất phần mềm hệ thống Một số phân phối Linux bật nhiều người sử dụng bao gồm • Debian GNU/Linux: hệ điều hành xây dựng từ Dự án Debian, dựa nhân Linux với nhiều công cụ lấy từ dự án GNU, sử dụng hệ thống quản lí gói ứng dụng APT (Advanced Packaging Tool ) Trang web: http://www.debian.org/ • Ubuntu: hệ điều hành dựa Debian GNU/Linux Trang web: http://www.ubuntu.com/ Đặng Nguyên Phương Tài liệu nội NMTP • Red Hat Enterprise Linux: phân phối Linux phát triển công ty Red Hat mục tiêu hướng tới thị trường thương mại Trang web: http://www.redhat.com/rhel/ • Fedora: phân phối Linux dựa hệ thống quản lý gói ứng dụng RPM (RedHat Package Manager ), phát triển theo Dự án Fedora Trang web: http://www.fedoraproject.org/ • SUSE Linux: hệ điều hành mã nguồn mở xây dựng dựa nhân Linux Trang web: http://vi.opensuse.org/ • CentOS: có nguồn gốc từ phân phối Red Hat Enterprise Linux (RHEL) Trang web: http://www.centos.org/ • OpenSolaris: hệ điều hành mã nguồn mở dựa tảng hệ điều hành Solaris (dành cho Unix) trước tạo cơng ty Sun Microsystems Trang web: http://www.opensolaris.org/ • Scientific Linux: hệ điều hành phát triển dựa tảng Enterprise Linux Fermilab, CERN nhiều phịng thí nghiệm khác giới nhằm đưa vào số công cụ (vd: Alpine,OpenAFS, ) phục vụ cho nghiên cứu tiến hành thiết lập tảng chung cho thí nghiệm khác toàn giới Trang web: https://www.scientificlinux.org/ 3.1 Linux Shell Như nói trên, hệ thống Linux nhìn đơn khái qt thành phần chính: phần hệ thống (đặc trưng nhân hệ điều hành), phần người dùng (bao gồm chương trình ứng dụng, cơng cụ) Việc thao tác trực tiếp tới nhân hệ điều hành phức tạp đòi hỏi kỹ thuật cao, để trách phức tạp cho người sử dụng để bảo vệ nhân từ sai sót người sử dụng, người ta xây dựng ứng dụng tương tự lớp vỏ (shell ) bao quanh nhân (xem Hình 3) Hình 3: Hình ảnh minh họa cấu trúc hệ điều hành Linux Về bản, shell giao diện (interface) tương tác người dùng nhân hệ điều hành Nó thơng dịch lệnh người dùng nhập vào từ tập tin theo cú pháp cho trước chuyển đển nhân hệ điều hành để xử lý tiếp, sau trả lại kết cho người Đặng Nguyên Phương Tài liệu nội NMTP dùng Shell phần nhân hệ điều hành sử dụng nhân để thực thi lệnh, chương trình Các loại shell thường sử dụng Linux gồm có • Bourne Shell (sh) shell nguyên thủy từ hệ điều hành Unix, phát triển Stephen Bourne thuộc phịng thí nghiệm AT&T Bell phát hành lần phiên Unix năm 1977 Phần khởi tạo mặc định cho tiến trình shell mặc định /bin/sh • C Shell (csh) phát triển Bill Joy phát hành vào năm 1979 hệ thống BSD Unix, cung cấp ngơn ngữ dịng lệnh tương tự ngơn ngữ lập trình C giúp tạo thuận lợi cho người lập trình ngơn ngữ Ngày nay, C shell khơng cịn sử dụng nhiều hệ thống Unix/Linux mà thay TENEX C Shell (tcsh) • Korn Shell (ksh) phát triển David Korn (cũng phịng thí nghiệm AT&T Bell) đầu năm 80 Nó có khả tương thích ngược với Bourne shell kế thừa số tính C Shell Phần khởi tạo mặc định cho tiến trình shell mặc định /bin/ksh • Bourne Again Shell (bash) viết Brian Fox năm 1987 cho dự án GNU, shell mặc định Linux, cài sẵn hầu hết hệ điều hành Linux nay, ngồi cịn có Mac OS X Phần khởi tạo mặc định /bin/bash • Z Shell (zsh) viết Paul Falstad vào năm 1990, shell tích hợp đầy đủ tính shell trước cải tiến tính tự hồn thành câu lệnh (autocomplete), kiểm tra lỗi cú pháp (spelling correction), câu lệnh nhiều dòng (multi-line command ), 3.2 Terminal Để tương tác với shell cần chương trình giao tiếp, Linux có hai phương thức giao tiếp gồm có • Sử dụng Giao diện đồ họa người dùng (Graphical User Interfaces − GUI) hầu hết hệ điều hành Linux có sẵn phần giao diện này, ta thoải mái sử dụng chuột tương tự hệ điều hành Windows • Sử dụng Giao diện dịng lệnh (Command Line Interface − CLI) giao diện truyền thống Linux, tất điều khiển máy tính phải thơng qua việc nhập dịng lệnh Ưu điểm phương thức nhanh gọn xử lí nhiều cơng việc, nhiên khuyết điểm việc học ghi nhớ câu lệnh khó khăn Trong tài liệu này, tác giả tập trung vào việc hướng dẫn sử dụng CLI GUI vốn quen thuộc với người dùng Để giao tiếp với shell qua dòng lệnh ta cần chương trình giao tiếp, Linux chương trình gọi Terminal Emulator hay gọi tắt Terminal Có nhiều Terminal khác viết cho Linux, chẳng hạn Konsole (KDE), Gnome Terminal (Gnome), nhiên lệnh Terminal thống phiên Linux Một số phím tắt thường dùng Terminal : Ctrl-L xóa hình Ctrl-D Ctrl-R tìm lệnh chạy trước Tab tự động hoàn tất câu lệnh Ctrl-Ins chép Shft-Ins dán Đặng Nguyên Phương Shft-PgUp (PgDn) Shft-Alt-Fn 3.3 Tài liệu nội NMTP cuộn hình lên (xuống) chuyển sang terminal thứ n Các lệnh thao tác với tài khoản người dùng Linux hệ điều hành đa người dùng, có nghĩa nhiều người truy cập sử dụng máy tính lúc Trong Linux có hai loại người dùng người dùng thông thường (regular user ) siêu người dùng (super user ) Để truy cập hệ thống máy tính có sử dụng Linux, người dùng cần phải tạo tài khoản (account) cho riêng mình, thơng tin tài khoản người dùng gồm có • Tên tài khoản (username): tối đa ký tự, tên tài khoản có phân biệt chữ hoa, chữ thường; thông thường người dùng hay đặt tất chữ thường • Mật (password ): mã hoá đặt file /etc/shadow • UID (user identification): số ID người dùng, số nguyên dương hệ điều hành gán cho tài khoản người dùng giúp hệ thống phân biệt người dùng khác Một số điểm lưu ý dành cho UID: – Người dùng có UID = người dùng có quyền quản trị hệ thống cao (root) – UID người dùng bình thường có giá trị khác – UID = 65534 gán cho tài khoản nobody (người dùng khơng có quyền quản trị) – UID = − 999 dành cho tài khoản hệ thống (mail, daemon, sshd, ) • GID (group identification): số ID nhóm người dùng (mỗi người dùng ln thành viên nhóm) Người dùng nhóm có quyền hạn nhau, thơng thường tất người dùng thuộc vào nhóm User (trừ root tài khoản dành riêng cho hệ thống), người dùng có quyền thao tác thư mục riêng thư mục khác phép hệ thống Người dùng truy cập vào thư mục riêng người dùng khác (trừ trường hợp người dùng root cho phép) • Thơng tin cá nhân: thường gồm tên đầy đủ người dùng thơng tin khác có liên quan • Thư mục riêng (home directory): người dùng cấp thư mục riêng, thường thư mục thư mục /home có tên đặt trùng với tên tài khoản để tránh nhầm lẫn (vd: tên tài khoản phuong thư mục riêng /home/phuong Riêng tài khoản root thư mục riêng /root Để đăng nhập (login) vào hệ thống, người dùng cần cung cấp hai thơng tin cần thiết tên người dùng (username) mật (password ) Kiểm tra thông tin người dùng cách xem tập tin /etc/passwd thông qua lệnh sudo cat / etc / passwd Tập tin passwd lư trữ tồn thơng tin tất người dùng, bên ví dụ nội dung tập tin passwd Trong tập tin, thông tin người dùng nằm dòng, ngăn cách dấu ‘:’ Trong ví dụ dưới, tài khoản dang (chữ màu đỏ) bao gồm thông tin tên tài khoản (dang), mật (đã mã hoá), UID (1000), GID(1000), thông tin cá nhân (Dang Nguyen Phuong), thư mục riêng (/home/dang), shell đăng nhập (/bin/bash) Đặng Nguyên Phương Tài liệu nội NMTP kernoops : x : : 5 : Kernel Oops Tracking Daemon , , , : / : / bin / false pulse : x : : 1 : PulseAudio daemon , , , : / var / run / pulse : / bin / false rtkit : x : 1 : 1 : RealtimeKit , , , : / proc : / bin / false hplip : x : 1 : : HPLIP system user , , , : / var / run / hplip : / bin / false saned : x : 1 : : : / home / saned : / bin / false dang : x : 0 : 0 : Dang Nguyen Phuong , , , : / home/ dang : / b i n / bash mpd : x : 1 : : : / var / lib / mpd : / bin / false sshd : x : 1 : 5 : : / var / run / sshd : / usr / sbin / nologin guest : x : 1 : : Guest , , , : / tmp / guest−home hy7SXb : / bin / bash Tài khoản root gọi tài khoản siêu người dùng, tài khoản có quyền cao hệ thống Linux Người dùng sử dụng tài khoản root để thực số công việc quản trị hệ thống thêm tài khoản người dùng mới, thay đổi mật người dùng, cài đặt gỡ bỏ phần mềm, thay đổi quyền tập tin thư mục, Khi sử dụng tài khoản root, người dùng phải cẩn thận thao tác tài khoản ảnh hưởng trực tiếp đến hệ thống Một số lệnh làm việc với tài khoản root • Thay đổi password cho root sudo passwd root • Chuyển sang tài khoản root su • Thực thi lệnh với quyền root cách thêm sudo phía trước lệnh Trong số hệ điều hành chẳng hạn Ubuntu, tài khoản root mặc định bị khóa, điều có nghĩa người dùng khơng thể đăng nhập trực tiếp với tài khoản root sử dụng lệnh su để trở thành root Nhưng người dùng chạy chương trình với đặc quyền root thơng qua lệnh sudo Ngồi ra, cài đặt Ubuntu, tài khoản người dùng tạo thuộc nhóm Admin có quyền quản trị hệ thống Tài khoản người dùng tài khoản cho phép người dùng truy cập làm việc hệ thống Để tạo tài khoản người dùng mới, thay đổi xóa bỏ tài khoản này, ta phải sử dụng quyền siêu người dùng Một số lệnh làm việc với tài khoản người dùng • Tạo tài khoản người dùng sudo useradd [ options ] sudo adduser [ options ] Một số -d, -m, -p, -s, tùy chỉnh cho lệnh useradd home HOME_DIR create-home password PASSWORD shell SHELL khai báo thư mục riêng tạo thư mục riêng trường hợp khơng có trước khai báo mật khai báo shell đăng nhập 10 ... Linux làm cho trở thành công cụ đắc lực phục vụ cho công việc bạn Giới thiệu Linux 2.1 Linux gì? Thuật ngữ Linux thực chất sử dụng để “nhân Linux” (Linux kernel ) Tuy nhiên thực tế, tên gọi Linux... với Bourne shell kế thừa số tính C Shell Phần khởi tạo mặc định cho tiến trình shell mặc định /bin/ksh • Bourne Again Shell (bash) viết Brian Fox năm 1987 cho dự án GNU, shell mặc định Linux, cài... nhân để thực thi lệnh, chương trình Các loại shell thường sử dụng Linux gồm có • Bourne Shell (sh) shell ngun thủy từ hệ điều hành Unix, phát triển Stephen Bourne thuộc phịng thí nghiệm AT&T Bell