Học các lệnh bash trong hệ điều hành Linux. Danh sách đệ quy và thông tin inode

Bash - thông dịch viên ngôn ngữ lệnh UNIX hệ thống tương thích. Thực thi các lệnh từ đầu vào tiêu chuẩn (chẳng hạn như cửa sổ đầu cuối) hoặc từ một tệp. Bash cũng bao gồm tiện ích mở rộng hữu ích shell của ngôn ngữ Korn và C (tương ứng là lệnh ksh và csh)

Cú pháp

đánh đập [tùy chọn]

Tùy chọn

-c sợi dây Nếu như thông số này có mặt thì lệnh sẽ được đọc từ dòng sợi dây. Nếu lệnh được truyền có các đối số bổ sung, chúng được coi là vị trí và bắt đầu ở mức $0. (Chương Tranh luận )
-Tôi Công việc tương tác của phiên dịch viên
-l Xem LỜI HỌP bên dưới
-r Hạn chế trong hoạt động của vỏ. Xem VỎ HẠN CHẾ
-S Nếu tham số này được chỉ định và tất cả các đối số bắt buộc bị thiếu, chúng sẽ được đọc từ đầu vào tiêu chuẩn
-D Danh sách tất cả các chuỗi kèm theo dấu ngoặc kép với $ ở đầu được xuất ra đầu ra tiêu chuẩn. Cần thiết để hoàn thành bản dịch. Sẽ không có lệnh nào được thực thi
[-+]0[shopt_option]

shopt_option - Tùy chọn bổ sung vỏ sò. Đọc phần phụ LỆNH XÂY DỰNG SHELL. Nếu tham số này có mặt6 thì -0 ở phía trước nó sẽ được đặt tham số đã chỉ định, và +0 hủy nó. Nếu shopt_option không được chỉ định, +0 sẽ in danh sách các tùy chọn đã đặt thành đầu ra tiêu chuẩn ở định dạng có thể được sử dụng lại làm đầu vào.

-- Báo hiệu kết thúc cài đặt tham số. Bất kỳ tham số nào sau nó đều được coi là tên tệp và đối số của tập lệnh. Tùy chọn "-" tương đương với "--".

Bash cũng cho phép tùy chọn nhiều ký tự. Chúng phải được mô tả trước các ký tự đơn để chúng được nhận dạng chính xác.

--trình gỡ lỗi Bắt đầu cấu hình trình gỡ lỗi trước khi chạy tập lệnh. Bật chế độ gỡ lỗi nâng cao (chi tiết hơn trong phần mô tả gỡ lỗi mở rộng) và chạy hàm theo dõi
(xem mô tả thông số -o).
--dump-po-string Tương đương với -D, nhưng đầu ra ở định dạng tệp localizations.po
--dump-chuỗi Hoàn toàn giống với -D
--giúp đỡ manh mối
--init-file tài liệu
--rcfile tài liệu Nếu trình thông dịch được khởi chạy ở chế độ tương tác, nó sẽ thực thi các lệnh khởi tạo của tệp đã chỉ định tài liệu, chứ không phải từ tệp khởi tạo tiêu chuẩn ~/.bashrc.
--đăng nhập Tương tự như -l
--không chỉnh sửa
--không có hồ sơ Không đọc các tệp cấu hình trên toàn hệ thống khi shell trình thông dịch khởi động /etc/hồ sơ và bất kỳ Tập tin có sẵn cài đặt như ~/.bash_profile, ~/.bash_login hoặc ~/.profile . Theo mặc định, bash sử dụng chúng khi chạy ở chế độ đăng nhập (chi tiết hơn trong tham số INVOCATION).
--norc Không đọc hoặc thực thi tập tin thiết lập cá nhân~/.bashrc khi chạy tương tác. Theo mặc định, tham số này được đặt khi shell được khởi động bằng lệnh sh.
--posix Thay đổi hành vi mặc định của bash khi gặp lệnh khác ngoài Tiêu chuẩn POSIX(để đảm bảo tính tương thích)
--hạn chế Các hành động của Shell bị giới hạn (đọc phần bên dưới về tham số RESTRICTED SHELL)
--dài dòng Tương tự như -v (đầu ra dài dòng)
--phiên bản In thông tin về phiên bản hiện tại của trình thông dịch ra đầu ra tiêu chuẩn

Tranh luận

Nếu sau khi xử lý các tham số vẫn còn các đối số không liên kết với tham số -c hoặc -s thì đối số đầu tiên được coi là tên của file chứa script chứa các lệnh. $0 là tên tệp và các đối số còn lại được viết theo vị trí. Bash đọc các lệnh của tập lệnh, thực thi chúng rồi thoát ra. Trạng thái thoát sẽ bằng trạng thái thoát của lệnh tập lệnh cuối cùng được thực thi. Nếu không có lệnh nào được thực thi, giá trị trả về sẽ là "0". Đầu tiên, cố gắng mở tập lệnh từ thư mục hiện tại; nếu không có tập lệnh đó, tệp đã chỉ định sẽ được tìm kiếm theo biến PATH cho các kịch bản.

cuộc gọi bash

đăng nhập vỏ bọc- nếu ký tự đầu tiên sau -- là 0 hoặc việc khởi chạy được thực hiện với tham số -login.

tương tác vỏ bọc -công việc tương tác. Nếu được khởi chạy mà không có đối số và không có tham số -c với thiết bị đầu vào/đầu ra tiêu chuẩn ở dạng terminal.app hoặc được khởi chạy với tham số -i.

Xử lý các tập tin khởi tạo. Nếu bất kỳ tệp tham số khởi tạo nào tồn tại nhưng không thể đọc được, bash trên Mac sẽ báo lỗi.

Khi bash được khởi động ở chế độ tương tác hoặc đăng nhập, các lệnh từ tệp sẽ được đọc và thực thi trước tiên /etc/hồ sơ (nếu có), thì sự hiện diện của tập tin sẽ được kiểm tra ~/.bash_profile , ~/.bash_login , Và ~/.profile và nếu chúng có sẵn và có thể truy cập được thì các lệnh từ chúng sẽ được thực thi theo thứ tự như chúng được liệt kê. Để bỏ qua quá trình xử lý các tệp trên, bạn có thể sử dụng tham số --không có hồ sơ

Nếu bash được khởi động ở chế độ đăng nhập, tệp sẽ được kiểm tra và nếu có, sẽ được thực thi ~/.bash_logout .

Nếu được khởi chạy ở chế độ tương tác, không có chế độ đăng nhập, thì trong quá trình khởi động, tệp sẽ được thực thi bổ sung~/.bashrc . Để tắt tập tin này, hãy sử dụng tham số --norc hoặc --rcfile tài liệu để thay thế tệp thực thi bằng tệp khác ( tài liệu).

Khi bash được bắt đầu trong chế độ bình thường, ví dụ: để thực thi một tập lệnh, nó sẽ xem xét biến môi trường toàn cầu BASH_ENV và sử dụng giá trị của nó để tìm tệp thực thi.

Khi bash được gọi bằng lệnh sh nó cố gắng sử dụng phiên bản cũ nhất để đảm bảo khả năng tương thích với tiêu chuẩn POSIX. Khi được gọi ở chế độ tương tác hoặc ở chế độ --login, các tệp sẽ được đọc và thực thi tuần tự trước tiên/etc/hồ sơ ~/.profile , để cấm sử dụng các tệp này, hãy sử dụng tham số --không có hồ sơ. Nó cũng đọc giá trị của biến ENV một cách tương tác để sử dụng làm đường dẫn tìm tệp thực thi. Khi chạy với sh, tùy chọn khởi động --rcfile bị bỏ qua và không thể sử dụng được. Khi bắt đầu vào chế độ căn bản không có tệp cấu hình nào được sử dụng, trình thông dịch hoạt động ở chế độ POSIX.

Khi bash đang chạy ở chế độ posix bằng tham số trong dòng lệnh --posix trình thông dịch sẽ tuân thủ tiêu chuẩn POSIX cho các tệp khởi tạo. Trong trường hợp này, chế độ tương tác sử dụng giá trị của biến ENV, biến này phải chứa tên của tệp khởi tạo; sẽ không có tệp khởi tạo nào khác được thực thi.

Bash là một shell lệnh hay nói cách khác là một trình thông dịch lệnh được sử dụng theo mặc định trong hầu hết các hệ thống. Bản phân phối Linux. Shell Bash có rất nhiều khả năng. Không chỉ là một thông dịch viên, nếu có bàn tay phù hợp, Bash có thể trở thành một ngôn ngữ lập trình chính thức.

Công việc chính của shell là thực thi các lệnh, nhưng ngoài các tiện ích nằm trên hệ thống file, Bash còn có bộ lệnh riêng, nhiều lệnh trong đó bạn sử dụng hàng ngày mà không nhận ra. Các lệnh Bash này không có trên đĩa mà được tích hợp sẵn trong shell. Trong bài viết này chúng ta sẽ xem xét lệnh cơ bản bash trên linux, điều này có thể hữu ích trong một số trường hợp.

Bài viết này sẽ không có phần giới thiệu dài và chúng ta sẽ đi thẳng vào vấn đề. Tất cả các phần tử trong danh sách được sắp xếp theo thứ tự ngẫu nhiên. Sau khi xem qua tất cả chúng, bạn sẽ hiểu rõ hơn về cách làm việc trong Bash.

1. nguồn

Lệnh này cho phép bạn đọc và thực thi tất cả các lệnh từ tệp được chỉ định trong tệp hiện tại. vỏ lệnh. Điều này có nghĩa là tất cả các biến môi trường được đặt trong đó sẽ hiển thị trong tất cả các tập lệnh hoặc lệnh mà bạn thực thi. Hãy để tôi nhắc bạn rằng nếu bạn chạy một tập lệnh thông thường và khai báo một biến trong đó thì biến đó sẽ chỉ có sẵn cho tập lệnh đó vì một phiên bản shell riêng biệt được tạo cho các tập lệnh. Nó kế thừa các biến cha mẹ, nhưng không phải ngược lại. Lệnh này thường được sử dụng để cập nhật môi trường sau chroot:

nguồn/etc/hồ sơ

2. bí danh

Lệnh bí danh cho phép bạn tạo bí danh cho các lệnh khác. Ví dụ: bạn có thể định cấu hình nó để chạy sudo apt update && sudo apt nâng cấp khi bạn gõ cập nhật. Nếu bạn gọi lệnh không có tham số, nó sẽ hiển thị danh sách các bí danh đã được xác định. Xem thêm chi tiết về cách tạo trong một bài viết riêng.

3. ràng buộc

Với lệnh này, bạn có thể liên kết tổ hợp phím với một lệnh hoặc chức năng cụ thể. Ví dụ: hãy định cấu hình lệnh pwd để được thực thi khi nhấn F12 trong cửa sổ terminal:

liên kết ""\e, ~, (, )) để tìm kiếm tệp bằng cách sử dụng mẫu tên.

  • Thay thế các biến có thể được shell sử dụng.
  • Chuyển hướng đầu ra của một lệnh làm đầu vào cho lệnh khác bằng cách sử dụng một đường ống.
  • Thực hiện việc hợp nhất lệnh.
  • Thực thi lệnh nếu đó là lệnh trình thông dịch tích hợp hoặc bắt đầu một quá trình nếu lệnh đó ở bên ngoài.
  • Chuyển hướng I/O tiêu chuẩn.
  • Để hoàn thành ba tính năng mới nhất sử dụng cần thiết toán tử đặc biệt. Hãy xem xét tất cả các chức năng được liệt kê.

    2.1. Biệt danh

    Bí danh lệnh được thiết kế để cho phép nhập lệnh shell hiệu quả hơn. Bằng bí danh, một lệnh có độ phức tạp gần như bất kỳ có thể được thay thế bằng một chuỗi tùy ý. Để xem danh sách bí danh và nếu cần, hãy thêm vào danh sách đó biệt danh mới, bạn nên sử dụng lệnh bí danh.

    Ví dụ:

    $ import HELLO="Xin chào từ môi trường! " # khoảng trắng phải được thoát bằng dấu ngoặc kép

    Biến môi trường

    Môi trường là một tập hợp các biến có giá trị có thể thay đổi hành vi của shell.

    Khi shell bắt đầu chạy, nó sẽ đặt một số biến môi trường cho chính nó. Tên của họ là tiêu chuẩn. Các chương trình và tập lệnh có thể yêu cầu các giá trị của chúng thay vì cố gắng tự mình tìm ra thông tin chúng cần.

    Bằng cách này, trình thông dịch lệnh sẽ xác định các biến môi trường được sử dụng trong phiên hiện tại. Mỗi lệnh mới được nhập thực sự được khởi chạy dưới dạng một tiến trình con của tiến trình cha, do đó, trong trong trường hợp này Trình thông dịch lệnh bash được sử dụng. Các biến môi trường khác với các biến thông thường ở chỗ chúng có thể truy cập được bởi cả tiến trình cha và tiến trình con. Tự động phát hiện các biến môi trường xảy ra sau khi xác thực người dùng trong hệ thống. Chương trình đăng nhập, nếu quá trình xác thực hoàn tất thành công, dựa trên tệp /etc/passwd, sẽ xác định trình thông dịch lệnh nào sẽ được sử dụng trong phiên của người dùng. Sau khi xác định thông dịch lệnh Phiên được cấu hình theo các tệp cấu hình được trình bày bên dưới.

    Tập tin cấu hìnhSự miêu tả
    /etc/hồ sơ

    Xác định các biến môi trường cho tất cả người dùng trên hệ thống. Tệp này được thực thi ở lần đăng nhập đầu tiên và chứa các biến môi trường cơ bản, chẳng hạn như biến tìm kiếm vị trí lệnh PATH, biến tên máy chủ HOSTNAME và biến kích thước lịch sử lệnh HISTSIZE. Ngoài ra, tệp này tạo ra các biến môi trường bổ sung từ các tệp cấu hình nằm trong thư mục /etc/profile.d.

    /etc/bashrc

    Được thực thi cho tất cả người dùng, mỗi khi lệnh được khởi chạy thông dịch viên bash. TRONG tập tin này Giá trị của biến PS1 được xác định, cũng như các bí danh lệnh (bí danh) bổ sung. Bí danh là tên rút gọn, được xác định tùy ý của một lệnh hoặc chuỗi lệnh cho phép bạn thực thi các chuỗi lệnh phức tạp mà không cần nhập chúng từ bàn phím mà bằng cách gọi chúng bằng cách gọi bí danh tương ứng. Các biến được xác định trong tệp này có thể được gán lại bởi một tệp tương tự do người dùng xác định -/.bashrc, có mức độ ưu tiên cao hơn.

    -/.bashprofile

    Được sử dụng như một tập tin chứa cài đặt riêng lẻ người dùng. Chỉ thực hiện một lần khi người dùng đăng nhập. Ngoài ra file này còn chạy file -/.bashrc

    ~/.bashrc

    Tệp này chứa các biến môi trường và bí danh do người dùng đặt. Nó được thực thi mỗi khi người dùng đăng nhập hoặc khi một phiên bash mới được mở. Tệp này phù hợp nhất để xác định các biến và bí danh của người dùng.

    ~/.bash_logout

    Tệp này được thực thi mỗi khi bạn đăng xuất hoặc kết thúc phiên cuối cùng của trình thông dịch bash. Theo mặc định, tệp này chứa lệnh xóa màn hình terminal.

    /etc/inputrc

    Tệp này chứa mô tả cách giải thích các tổ hợp phím khác nhau và cũng chứa các tổ hợp phím đặc biệt, việc nhấn sẽ thực hiện các lệnh được chỉ định.

    Các biến môi trường khá Một cách thuận tiện lưu trữ thông tin thường xuyên được sử dụng trong phiên làm việc hiện tại với hệ thống. Nếu cần, người dùng có thể tạo hầu hết mọi biến môi trường (cố gắng không thay đổi giá trị của các biến môi trường đã được sử dụng) và đọc giá trị của chúng trong suốt thời gian làm việc với lệnh shell. Để tạo biến môi trường tạm thời, bạn phải nhập tên của nó và gán giá trị thích hợp cho nó. Ví dụ,

    xuất AB=/usr/dog/contagious/ringbearer/xay

    TRONG trong ví dụ này Biến môi trường tạm thời AB được gán đường dẫn đến một thư mục nằm khá “sâu” trong hệ thống phân cấp thư mục hệ thống tập tin. Lệnh xuất cho biết sự cần thiết phải xuất giá trị của biến AB sang một hệ vỏ để cung cấp giá trị đó cho các hệ vỏ khác có thể mở trong phiên hiện tại với hệ thống. Bây giờ có thể truy cập thư mục trên bằng cách thực hiện lệnh cd $AB

    Hạn chế duy nhất của các biến môi trường tạm thời là chúng tự động bị hủy khi phiên hiện tại với hệ thống kết thúc. Để tạo một biến môi trường vĩnh viễn (trái ngược với tạm thời), nó phải được thêm vào tệp cấu hình shell.bashrc.

    Để thay đổi tệp cấu hình /etc/profile và /etc/bashrc, bạn phải root.

    Người dùng thông thường có thể sửa đổi các tệp cấu hình ~/.bash_profile, ~/.bashrc và ~/.bash_Iogout nằm trong thư mục chính của họ. Các tệp cấu hình này có thể được cấu hình để đặt các biến môi trường của bạn bằng lệnh xuất và có thể được sử dụng trong bất kỳ phiên nào.

    Một trong những biến môi trường được thay đổi thường xuyên nhất là biến PATH. Bạn cũng có thể ghi đè hoặc mở rộng biến môi trường PATH trong tệp cấu hình ~/.bashrc.

    trong ví dụ này, biến PATH sẽ chứa giá trị hiện tại của nó cộng với thư mục chính làm đường dẫn tìm kiếm các tệp thực thi.

    Để những thay đổi này được áp dụng trong môi trường của shell hiện tại, bạn phải chạy lệnh source .bashrc

    Các biến môi trường shell phổ biến nhất là:

    • BASH - Chứa đường dẫn đầy đủ đến lệnh bash (thường là /bin/bash).
    • BASH_VERSION - Số phiên bản Bash.
    • DIRSTACK - Một mảng chứa giá trị ngăn xếp thư mục hiện tại.
    • BIÊN TẬP- soạn thảo văn bản mặc định.
    • EUID - Mã định danh hiệu quả bằng số người dùng hiện tại.
    • FUNCNAME - tên chức năng hiện tại trong kịch bản.
    • NHÓM - Một mảng chứa danh sách các nhóm mà người dùng hiện tại thuộc về.
    • HISTFILE - Vị trí của tệp lịch sử lệnh. Thông thường, lịch sử lệnh được lưu trữ trong tệp ~/.bash_history.
    • HISTFILESIZE - Số lượng dòng lệnh có thể được lưu trữ trong tệp lịch sử. Sau khi đạt đến con số này, các dòng lệnh mới sẽ được đưa vào lịch sử bằng cách xóa các dòng lệnh cũ nhất. Theo mặc định, kích thước của danh sách các lệnh được sử dụng gần đây là 1000 dòng.
    • HOME - Thư mục chính của người dùng.
    • HOSTNAME - Tên của máy tính này (nút).
    • HOSTTYPE - Loại máy tính.
    • LANG - Ngôn ngữ mặc định hiện tại.
    • LC_CTYPE là biến nội bộ xác định mã hóa ký tự.
    • MAIL - Vị trí tệp hộp thư E-mail người dùng. Thông thường, đây là một tệp nằm trong thư mục /var/spool/mail có tên giống với tên đăng nhập của người dùng.
    • MAILCHECK - Khoảng thời gian tính bằng phút giữa các lần kiểm tra thư.
    • OLDPWD - Thư mục hiện tại cho đến khi thư mục được sửa đổi lần cuối.
    • OSTYPE - Hệ điều hành hiện tại.
    • PATH - Danh sách các thư mục được phân tách bằng dấu hai chấm để tìm kiếm các tệp thực thi. Thứ tự tìm kiếm tên thư mục là cực kỳ quan trọng. Khi thực thi lệnh, các thư mục liệt kê trong biến này sẽ được kiểm tra tuần tự từ trái sang phải. Như vậy, khi thực thi lệnh foo nằm trong thư mục /bin và /usr/bin thì lệnh nằm trong thư mục /bin sẽ được thực thi. Để chạy lệnh foo nằm trong thư mục /usr/bin trong tình huống tương tự, bạn phải chỉ định đường dẫn đầy đủ đến lệnh này hoặc thay đổi thứ tự tên thư mục trong biến môi trường PATH. Thư mục tìm kiếm hiện tại phải được chỉ định rõ ràng ("."); theo mặc định, shell không tìm kiếm thư mục hiện tại. Việc tìm kiếm các chương trình khởi động trong thư mục hiện tại có thể nguy hiểm do có khả năng thực thi ngoài ý muốn chương trình nguy hiểm, vì vậy biến PATH thường được khởi tạo mà không có dấu "." Để thêm đường dẫn đến các lệnh hoặc tập lệnh shell của riêng bạn vào biến PATH, bạn nên đặt chúng vào thư mục con /bin của thư mục chính, thư mục này sẽ tự động được thêm vào biến PATH. Không phải tất cả các lệnh thực thi đều nằm trong các thư mục được liệt kê trong biến môi trường PATH. Một số lệnh được tích hợp trực tiếp vào shell. Các lệnh khác có thể được xác định lại bằng cách sử dụng bí danh, cho phép các lệnh có tham số gần như bất kỳ độ phức tạp nào (về mặt cú pháp) được thay thế bằng một tên đơn giản. Ngoài ra, có thể tạo các hàm lưu trữ toàn bộ chuỗi lệnh.
    • PPID - Số nhận dạng của quy trình tương ứng với lệnh khởi chạy shell hiện tại (ví dụ: quy trình đã tạo shell).
    • PS1, PS2, PS3, PS4 - Các biến xác định loại dấu nhắc shell.

      Các biến PS1 và PS2 đặt dấu nhắc shell chính và phụ.

      Lời nhắc phụ (PS2) xuất hiện nếu bạn nhấn phím Enter mà không hoàn tất việc nhập lệnh về mặt cú pháp.

      Biến này chứa một dấu nhắc nhỏ xảy ra khi chỉnh sửa văn bản nhiều dòng hoặc nhập lệnh không đầy đủ. Theo mặc định, nó được ký hiệu là >.

      PS3. Biến này chứa lời nhắc có trong câu lệnh chọn được sử dụng để sắp xếp các menu của bảng điều khiển tương tác. Theo mặc định, dấu nhắc PS3 trong câu lệnh chọn là #?.

      PS4. Biến này được sử dụng chủ yếu khi gỡ lỗi các tập lệnh shell và theo mặc định chứa Chuỗi giá trị «++».

      Ví dụ: chạy lệnh để lấy thông tin DNS:

      # nslookup >

    • PWD - Thư mục làm việc hiện tại của người dùng. Giá trị này thay đổi mỗi khi bạn thay đổi sang một thư mục khác bằng lệnh cd.
    • GIÂY - thời gian chạy tập lệnh (tính bằng giây).
    • SHELL - Trình thông dịch lệnh hiện tại.
    • SHELLOPTS - Danh sách các tùy chọn trình thông dịch được kích hoạt.
    • SHLVL - Số lần khởi chạy bản sao mới của trình thông dịch lệnh.
    • UID - Số nhận dạng của người dùng hiện tại.
    • NGƯỜI DÙNG - Tên người dùng hiện tại.
    • $# - Tổng số tham số được truyền cho tập lệnh.
    • $* - Tất cả các đối số không được chuyển đến tập lệnh (xuất ra một dòng).
    • $@ - Tương tự như phần trước, nhưng các tham số được hiển thị trong một cột.
    • $! - PID của quá trình cuối cùng đang chạy ở chế độ nền.
    • $$ - PID của chính tập lệnh.

    Để xem giá trị của tất cả các biến trong phiên hiện tại, cả những biến bạn xác định và những biến trong môi trường, hãy ra lệnh set không có tham số hoặc env printenv .

    Bạn có thể xóa một biến bằng lệnh unset.

    2.4. Thay thế và tổ chức tương tác giữa các lệnh

    Thay thế các giá trị biến môi trường phiên hiện tại với hệ thống có thể được thực hiện bằng cách sử dụng siêu ký tự ký hiệu đô la ($). Kết quả là shell tự động thay thế tên biến bằng giá trị của nó. Ví dụ,

    Thay thế kết quả của một biểu thức số học

    Có hai dạng cú pháp để thay thế kết quả của một biểu thức số học: $[biểu thức] và $((biểu thức)). Ví dụ,

    echo "Tôi $ tuổi."

    Thay thế lệnh

    Thay thế lệnh cho phép bạn sử dụng đầu ra của một lệnh trên dòng lệnh có chứa lệnh khác. Có thể sử dụng hai định dạng thay thế thay thế: $(command) hoặc `command` (dấu ngoặc kép đơn). Ví dụ,

    Mở rộng ký tự dấu ngã

    Ký tự dấu ngã (~) cho phép bạn nhập nhanh tên thư mục.

    ~ Tên thư mục chính của người dùng ~/thư mục con Tên của một trong các thư mục con trong thư mục chính của người dùng ~+ Tên của thư mục hiện tại ~- Tên của thư mục trước đó

    Niềng răng nhọn mở rộng

    Sử dụng dấu ngoặc nhọn, bạn có thể nhập một lệnh thay vì nhiều lệnh cùng loại. Dấu ngoặc đơn phải chứa một danh sách, các phần tử trong đó phải được phân tách bằng dấu phẩy. Trình thông dịch đọc từng phần tử một và tạo thành một lệnh riêng với từng phần tử, sau đó thực thi lệnh này. Ví dụ, lệnh

    chi phí mkdir/(tháng 1, tháng 2, tháng 3) tương đương với chi phí mkdir/chi phí mkdir tháng 1/chi phí mkdir tháng 2/tháng 3

    Kênh truyền hình

    Siêu ký tự kênh (|) cho biết nhu cầu tổ chức tương tác giữa các lệnh bằng cách sử dụng kết quả thực hiện (đầu ra) của lệnh khác làm dữ liệu đầu vào (đầu vào) của lệnh. Nói cách khác, bằng cách sử dụng một đường ống (pipeline), kết quả của lệnh đầu tiên có thể được chuyển làm đầu vào cho lệnh thứ hai. Ví dụ,

    mèo /etc/passwd | sắp xếp | đầu -3

    Trình tự và nhóm lệnh

    Sử dụng chuỗi lệnh và nhóm lệnh cho phép bạn nhập nhiều lệnh trên một dòng.

    command1;command2 Thực thi lệnh 1 trước, sau đó đến lệnh 2 (command1;command2) Chạy bản sao riêng biệt trình thông dịch trong đó thực thi lệnh 1 và 2 một cách tuần tự ( command1;command2) Thực thi tuần tự các lệnh 1 và 2 trong trình thông dịch hiện tại command1 && command2 Chỉ thực thi lệnh 2 nếu lệnh 1 được thực thi thành công command1 || command2 Chỉ thực thi lệnh 2 nếu lệnh 1 thất bại

    Kết quả của bất kỳ việc thực thi lệnh nào (nghĩa là kết quả của việc chấm dứt quá trình tương ứng) là mã thoát. Hoàn thành thành công có mã 0, mã hoàn thành không thành công 1. Giá trị mã hoàn thành có được gán cho một biến được xác định trước không? (dấu chấm hỏi). Ví dụ: tiếng vang $?

    Thực hiện lại các lệnh

    Shell có các tiện ích cho phép bạn gọi lại các lệnh trước đó và chỉnh sửa chúng. Lịch sử lệnh Shell là danh sách các lệnh đã sử dụng trước đó. Danh sách này có thể được xem bằng lệnh history.

    Sau khi bạn nhập một dòng lệnh, shell sẽ lưu nó vào lịch sử lệnh. Danh sách các lệnh đã sử dụng trước đó được lưu trữ trong một tệp, cho phép bạn gọi bất kỳ dòng lệnh mong muốn nào từ đó bất kỳ lúc nào để thực hiện lại. Sau khi gọi lại dòng lệnh, nó có thể được chỉnh sửa. Lịch sử lệnh được lưu trữ trong tệp .bash_history, nằm trong thư mục chính của người dùng. Theo mặc định, shell lệnh có thể "ghi nhớ" tới 1000 dòng lệnh.

    Để xem danh sách các lệnh đã sử dụng trước đó, hãy chạy lệnh lịch sử. Nó có thể được sử dụng không có tham số hoặc có tham số cho phép bạn chỉ định số lượng lệnh sẽ được hiển thị. Mỗi dòng lệnh có số riêng trong lịch sử lệnh.

    Cú pháp mở rộng lịch sử: !n Thực hiện số lệnh đã cho!! Thực thi lệnh trước đó!chuỗi Thực thi lệnh gần đây nhất bắt đầu bằng chuỗi đã cho!?chuỗi? Thực thi lệnh gần đây nhất có chứa chuỗi đã cho

    Thay vì thực thi trực tiếp dòng lệnh có trong lịch sử lệnh, bạn có thể gọi nó để chỉnh sửa sau. Sử dụng các phím con trỏ "mũi tên lên" và "mũi tên xuống"xem từng bước lịch sử lệnh và chọn dòng lệnh cần thiết.

    3. Tích hợp Bash

    Bạn có thể lấy danh sách các phần mềm bash shell tích hợp bằng cách sử dụng lệnh trợ giúp hoặc tìm thấy trên trang man trong phần LỆNH BUILTIN SHELL.

    Dưới đây là một số lệnh tích hợp hữu ích:

    • echo [arguments] - In đối số ra màn hình.
    • kích hoạt - Làm cho shell thực thi một tệp thực thi có cùng tên thay vì lệnh dựng sẵn. Hữu ích nếu bạn có tập lệnh riêng có tên như echo.
    • eval [arguments] - Xây dựng một lệnh nhanh chóng từ các đối số đã chỉ định và gửi nó để thực thi.
    • let - Đánh giá các biểu thức.
    • - Đọc và thực thi các lệnh có trong file. Được sử dụng để xác định các biến người dùng. và chức năng.
    • basename - Đánh dấu tên địa phương.
    • expr - Đánh giá biểu thức.
    • đọc - Nhập giá trị của một biến.
    • shift - Dịch chuyển danh sách các tham số.
    • test - Kiểm tra điều kiện.
    Các lệnh tích hợp khác đóng vai trò là hướng dẫn trong ngôn ngữ lệnh bash.

    Viện công nghệ điện tử quốc gia Moscow

    (Đại học kỹ thuật)

    Khoa Điện tử tích hợp và Vi hệ thống

    THỰC HÀNH PHÒNG THÍ NGHIỆM

    THEO KHÓA HỌC:

    HỆ ĐIỀU HÀNHLINUX

    Biên soạn: Phòng trợ lý. IEMS Kozlov A.V.

    Mátxcơva, 2007

    Hội thảo trong phòng thí nghiệm chủ yếu dành cho các thạc sĩ kỹ thuật và công nghệ đang theo học chương trình Synopsys năm đầu tiên theo hướng 210100.68, để làm chủ hệ điều hành Red Hat Enterprise Linux (RHEL) 4.0. Nó cũng được thiết kế dành cho sinh viên FreeScale và tất cả người dùng có trình độ đầu vào hoặc không có kinh nghiệm về Linux muốn tìm hiểu môi trường nhóm Linux và các ứng dụng chính của nó mà người dùng yêu cầu khi làm việc với các hệ thống thiết kế có sự hỗ trợ của máy tính.

    Hội thảo này bao gồm tám công việc trong phòng thí nghiệm cho phép người dùng thành thạo một cách hiệu quả các lệnh của trình thông dịch lệnh, cũng như dần dần học cách viết các tệp - tập lệnh Shell, Gawk, Perl và Tcl. Mỗi công việc thí nghiệm bao gồm các phần: tên, nhiệm vụ, mục đích của công việc; thông tin lý thuyết kèm câu hỏi trắc nghiệm; ví dụ về công việc trong phòng thí nghiệm; quy trình thực hiện công việc trong phòng thí nghiệm; mẫu báo cáo công việc và nhiệm vụ thí nghiệm. Cú pháp viết lệnh trong shell, cùng với các tùy chọn, tham số, hành động, biểu thức và đường dẫn đối tượng, được thiết kế cho môi trường lệnh BASH. Một danh sách các tài liệu tham khảo được cung cấp ở cuối buổi hội thảo trong phòng thí nghiệm.

    VIỆN KỸ THUẬT ĐIỆN TỬ BANG MOSCOW (ĐẠI HỌC KỸ THUẬT)

    CÔNG TRÌNH PHÒNG THÍ NGHIỆM SỐ 1

    TRONG KHÓA HỌC “HỆ ĐIỀU HÀNH LINUX”

    Học lệnh bash trên Linux

    MÔ TẢ ĐÃ HOÀN THÀNH:

    KOZLOV A.V.

    MOSCOW 2007

    Công việc thí nghiệm số 1 Nghiên cứu lệnh bash trên Linux

    Mục tiêu của công việc : sử dụng trình thông dịch lệnh BASH, nắm vững các kỹ năng làm việc với các lệnh trong hệ điều hành Red Hat Enterprise Linux 4.0.

    Thời gian làm việc - 4 tiếng

    Thông tin lý thuyết

    hệ điều hành Linux ban đầu được phát triển như một nền tảng miễn phí, linh hoạt, giàu tính năng, nhiều người dùng, hiệu suất cao được thiết kế để phục vụ và giải quyết các vấn đề của các nhà khoa học trên khắp thế giới. Do "tập trung vào khoa học", nền tảng như vậy ban đầu không có giao diện đồ họa mở rộng, được sử dụng rộng rãi khi giải quyết các vấn đề gia đình - trò chơi máy tính, Internet, các chương trình tương tác để kết nối người dùng, cũng như khi giải quyết các vấn đề văn phòng - làm việc với hệ thống cơ sở dữ liệu, vẽ đồ thị và biểu đồ. Thông thường, công việc của các nhà khoa học với hệ điều hành Linux chỉ đơn giản là tương tác thông thường của người dùng (người làm việc trên máy tính) với bảng điều khiển (một cửa sổ đầu cuối trên màn hình điều khiển với thông tin văn bản). Để hiểu các lệnh do người dùng nhập vào Linux, các trình thông dịch lệnh đã được phát triển, là trình dịch các lệnh mà con người có thể hiểu được thành các tín hiệu điều khiển mà nhân hệ điều hành có thể hiểu được. Nhiệm vụ chính của hệ điều hành là làm trung gian truyền lệnh từ người sang máy tính. Và, mặc dù thực tế là ngày nay hệ điều hành Linux được sử dụng ở khắp mọi nơi không chỉ trong các viện nghiên cứu, trung tâm thiết kế, trung tâm máy tính mà còn cho mục đích gia đình và văn phòng, bảng điều khiển (cửa sổ đầu cuối) vẫn được sử dụng rộng rãi và đối với nhiều người, chúng dường như còn hơn thế nữa. thuận tiện hơn so với làm việc với chuột và các biểu tượng (icon trong Linux) trong môi trường đồ họa.

    Thông dịch lệnh là một giao diện tương tác chuỗi với dấu nhắc dòng lệnh giữa người dùng và hệ điều hành. Người dùng nhập lệnh trên dòng lệnh, trình thông dịch lệnh “chấp nhận” và gửi chúng dưới dạng hướng dẫn tới hệ điều hànhđể thi hành. Trình thông dịch lệnh cho phép bạn không chỉ nhập lệnh mà còn chuyển hướng đầu vào và đầu ra dòng lệnh cũng như thực hiện các thao tác ở chế độ nền, cho phép người dùng thực hiện các tác vụ khác cùng lúc.

    Nhiều trình thông dịch lệnh đã được phát triển cho Linux: Bourne Again shell (BASH), Public Domain shell (PDKSH), trình thông dịch TCSH và Z-shell. Mặc dù BASH là trình thông dịch mặc định nhưng bạn có thể sử dụng bất kỳ môi trường nào khác. Để thuận tiện cho công việc hàng ngày, chỉ cần một trình thông dịch lệnh là đủ. Red Hal Linux bao gồm tất cả các shell chính, nhưng shell BASH được cài đặt và sử dụng theo mặc định. Điều này có nghĩa là hệ điều hành này sử dụng BASH để hoạt động ở dòng lệnh trừ khi có quy định khác.

    Dòng lệnh. Giao diện dòng lệnh Linux bao gồm một dòng duy nhất nơi nhập các lệnh với các tùy chọn và tham số. Trong shell BASH, phần đầu dòng lệnh thường được đánh dấu lời mờiở dạng ký hiệu đô la ($); Các shell Linux khác có thể sử dụng một dạng dấu nhắc khác. Sau khi được nhắc, người dùng có thể nhập một lệnh hoặc một lệnh với các tùy chọn và tham số. Nếu người dùng không có đủ kích thước cho dấu nhắc lệnh thì có thể giới hạn nó bằng ký tự “/”. Lệnh được nhập từ bàn phím và được nhập bằng phím. Ví dụ, để xuất ngày hệ thống và thời gian hệ thống người dùng có thể sử dụng lệnh ngày .

    ngày $

    Thứ sáu ngày 8 tháng 6 15:42:35 MSD 2007

    Hoặc, ví dụ, để hiển thị lịch với tháng hiện tại, hãy sử dụng lệnh cal.

    $cal

    tháng 7 năm 2007

    Sư Mộ Tử 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

    Giao diện shell chính là giao diện dòng lệnh diễn giải các lệnh đã nhập và gửi chúng đến hệ thống. Các lệnh được nhập tại dòng lệnh phải tuân theo các quy tắc cú pháp nhất định. Nguyên tắc chung để nhập lệnh là: từ đầu tiên được nhập vào dòng lệnh phải là tên của lệnh; Các từ sau đây là các tùy chọn lệnh và tham số. Mỗi từ trên dòng lệnh được phân tách với các từ khác bằng một hoặc nhiều dấu cách hoặc tab.

    Lựa chọn - là một mã đơn hoặc nhiều chữ cái có dấu gạch nối đứng trước để sửa đổi loại hành động được thực hiện bởi lệnh. Ví dụ về lệnh có tùy chọn, chúng tôi đưa ra lệnh ls . Khi được sử dụng mà không có tùy chọn, lệnh này sẽ tạo danh sách tất cả các tệp và thư mục có trong thư mục hiện tại. Ngoài tên tệp có và không có phần mở rộng, không có gì khác trong danh sách này. Ví dụ khi bạn nhập lệnh ls với tùy chọn - tôiđội ls tạo ra thông tin đầu ra theo từng dòng cho mỗi tệp, cụ thể là kích thước, ngày và giờ sửa đổi lần cuối. Trong ví dụ sau, người dùng nhập lệnh ls với tùy chọn - tôi. Cần có dấu gạch nối trước một tùy chọn. Đây là cách hệ thống Linux phân biệt một tùy chọn với một tham số.

    $ ls -l

    tổng cộng 28

    Tùy chọn -a cho phép bạn hiển thị tất cả các tệp trong thư mục hiện tại, bao gồm cả cái gọi là Các tệp ẩn. Các tập tin cấu hình thường bị ẩn. Tên file ẩn luôn bắt đầu bằng dấu chấm nên chúng thường được gọi là đục khoétcác tập tin. Trong hầu hết các trường hợp, các tùy chọn được kết hợp. Trong trường hợp này, một dấu gạch nối chung được đặt trước nhóm tùy chọn. Ví dụ: tùy chọn -al hiển thị thông tin về tất cả các tệp có trong thư mục hiện tại, bao gồm cả các tệp ẩn. Tệp ttt mới được hiển thị.

    $ ls -al

    tổng cộng 40

    Tham số là từ được nhập vào dòng lệnh sau các tùy chọn. Các lệnh quản lý tệp thường sử dụng tên tệp làm tham số. Ví dụ: nếu bạn chỉ cần thông tin về một tệp, gauss.plx, hãy chỉ định tên của nó sau tùy chọn -l:

    $ ls -l gauss.plx

    Công việc của người dùng bắt đầu trong môi trường shell BASH, được tải theo mặc định. Nó có khả năng chỉnh sửa dòng lệnh đặc biệt có thể rất hữu ích khi tìm hiểu hệ điều hành Linux. Trước khi thực hiện lệnh, bạn có thể chỉnh sửa chúng bằng cách di chuyển con trỏ qua dòng lệnh và chèn hoặc xóa ký tự. Điều này đặc biệt hữu ích khi làm việc với các nhóm rất phức tạp. Thao tác chỉnh sửa sẽ giúp sửa lỗi khi gõ lệnh. Sử dụng |up| Bạn có thể hiển thị lệnh bạn vừa thực hiện. Sau đó, bạn có thể chạy lại lệnh hoặc sau khi chỉnh sửa, hãy chạy lệnh đã sửa đổi. Tính năng này rất thuận tiện khi lặp lại một số thao tác nhất định nhiều lần, chẳng hạn như khi chỉnh sửa một và cùng một tập tin.

    Mục đích của trình thông dịch lệnh là làm việc với các tệp: tạo, sao chép, đổi tên, di chuyển, xóa và sửa đổi dữ liệu. Ngay cả khi người dùng không trực tiếp làm việc với bảng điều khiển mà sử dụng các ứng dụng đồ họa, các thao tác tệp này vẫn diễn ra độc lập với anh ta.

    Tạo tập tin và thư mục. Trong Linux, tệp và thư mục là hai loại dữ liệu nên chúng được tạo bằng các lệnh khác nhau. Để tạo một thư mục (thư mục, thư mục), hãy sử dụng lệnh dành riêng trong Linux mkdir (“tạo thư mục” - tạo thư mục). Trong ví dụ sau, chúng ta sẽ tạo một thư mục mới trong thư mục hiện tại. Để thực hiện việc này, hãy sử dụng lệnh mkdir và tên của thư mục mới, cách nhau bằng dấu cách.

    $ mkdir mới

    Thư mục đã được tạo. Tuy nhiên, đôi khi bạn cần tạo toàn bộ cấu trúc lồng nhau, khi bên trong một thư mục đã được tạo sẽ có một cấu trúc khác, bên trong nó sẽ có một cấu trúc khác, v.v. Với những mục đích này, tùy chọn đính kèm –p được sử dụng như một phần của lệnh mkdir. Ví dụ sau sử dụng một lệnh để tạo các thư mục con: thư mục đầu tiên 1, bên trong thư mục 2 và bên trong thư mục 3.

    $ mkdir -p 1/2/3

    Bạn có thể tạo tệp bằng lệnh hoặc sử dụng trình soạn thảo văn bản Linux tích hợp và bên ngoài, chẳng hạn như kedit, nedit, gedit, v.v. Tuy nhiên, các trình soạn thảo được liệt kê yêu cầu hoạt động của lớp vỏ đồ họa, nghĩa là hoạt động của hệ thống đồ họa. Nếu bạn không có nó, chẳng hạn, bạn có thể sử dụng trình soạn thảo văn bản VIM hoặc các chất tương tự không yêu cầu hoạt động của hệ thống đồ họa. Bạn cũng có thể tạo tệp bằng trình quản lý tệp văn bản như Midnight Commander (lệnh mc). Người dùng (người thiết kế) thường cần tập tin văn bản giữ thông tin văn bản, đi kèm với quá trình tính toán một mạch tích hợp hoặc, ví dụ, các thông số điện của một thiết bị bán dẫn mô phỏng. Cũng cần phải xử lý (xóa, thêm, sắp xếp, tách) dữ liệu nhận được. Những hành động như vậy cũng được thực hiện bằng các lệnh Linux. Một trong những lệnh đơn giản nhất để tạo một file văn bản là lệnh con mèo.

    Lệnh cat không có giao diện riêng nên sau khi nhập lệnh cat có biểu tượng chuyển hướng (xem bên dưới) và tên file mới, bạn có thể ghi ngay thông tin văn bản bằng cách di chuyển từ dòng này sang dòng khác bằng phím Enter. Việc thoát trình soạn thảo mèo (bộ lọc) được thực hiện bằng tổ hợp phím Ctrl-D. Dưới đây là ví dụ về cách tạo file bằng lệnh cat.

    $ con mèo > mới _ tài liệu

    Tệp kết quả được xem bằng lệnh cat và tên tệp được phân tách bằng dấu cách.

    $ con mèo mới _ tài liệu

    Hoặc, ví dụ, lưu thông tin văn bản từ bảng điều khiển khi lệnh chạy ls với tùy chọn -a cho tệp r, bạn có thể sử dụng chức năng chuyển hướng dữ liệu (xem bên dưới) và lệnh phát bóng với tùy chọn -a.

    $ ls -l | tee-a r

    Sao chép tập tin và thư mục. Việc sao chép tệp và thư mục được thực hiện bằng lệnh cp, sau đó đối tượng sao chép được biểu thị bằng đường dẫn tương đối hoặc tuyệt đối, cách nhau bằng dấu cách và đích mới của bản sao của đối tượng này, cách nhau bằng dấu cách. Ví dụ sau sao chép tệp gauss.plx từ thư mục hiện tại sang thư mục con 1, nằm trong thư mục hiện tại.

    $ cp gauss . làm ơn 1

    Nếu bạn có quyền truy cập vào các đối tượng Linux (lab. work số 2), bạn cũng có thể sao chép tệp này cho người dùng Alex, thư mục làm việc của người này có đường dẫn tuyệt đối sau /home/alex, bằng cách sử dụng lệnh sau.

    $ cp gauss . làm ơn / trang chủ / alex

    Nếu một tệp có cùng tên đã tồn tại ở đích khi sao chép tệp, tệp đó sẽ bị ghi đè. Điều này có thể dẫn đến mất dữ liệu cần thiết. Để tránh điều này, hãy sử dụng lệnh cp với tùy chọn –i và mỗi lần Linux sẽ hỏi người dùng xem họ có thực sự muốn ghi đè lên tệp hay không. Loại mới Lệnh cuối cùng trông như thế này.

    $ cp -i gauss.plx /home/alex

    Các thư mục được sao chép giống như các tập tin. Tuy nhiên, khi sao chép các thư mục chứa các tập tin và thư mục con, tùy chọn –R được sử dụng như một phần của lệnh cp. Trong thư mục /home/antonk/111, sao chép thư mục laba2 lên cấp cao hơn, tức là. vào thư mục /home/antonk. Hai dấu chấm biểu thị mức phân cấp cao hơn một bậc.

    $ cp - R laba 2 ..

    Đổi tên và di chuyển tập tin, thư mục. Việc đổi tên tệp và thư mục được thực hiện bằng lệnh mv, sau đó đối tượng cần đổi tên được chỉ định, phân tách bằng dấu cách và tên mới của đối tượng, cách nhau bằng dấu cách. Việc đổi tên thư mục diễn ra giống như cách đổi tên tập tin. Hãy đổi tên tệp gauss.plx thành một tệp mới có tên gauss2.plx. Nếu một tệp có cùng tên với tên mới của tệp được đổi tên đã tồn tại trong thư mục này, nó sẽ bị ghi đè bằng nội dung của tệp đã được đổi tên. Để ngăn chặn điều này, hãy sử dụng tùy chọn –i. Nhân tiện, trên Linux việc sử dụng tiện ích mở rộng là không bắt buộc. Chúng chỉ được sử dụng để liên kết tập tin và chương trình thực thi.

    $ mv –i gauss.plx gauss2.plx

    Xóa tập tin và thư mục. Việc xóa các tệp và thư mục trong Linux được thực hiện bằng lệnh rm, trong đó tên của các tệp cần xóa được chỉ định, phân tách bằng dấu cách. !!! Hãy cẩn thận khi làm việc với lệnh này, bạn có thể xóa dữ liệu cần thiết. Tương tự như lệnh cp, sử dụng tùy chọn –i kết hợp với lệnh rm. Lệnh có tùy chọn này sẽ yêu cầu xác nhận xóa từng tệp và thư mục. Trong ví dụ sau chúng ta sẽ xóa tập tin gauss 2. làm ơn , yêu cầu xác nhận xóa .

    rm –i gauss2.plx

    Ký tự đại diện. Đôi khi, khi làm việc với trình thông dịch lệnh, bạn cần tìm hoặc khớp các tệp bằng cách sử dụng một mẫu. Ví dụ: bạn chỉ biết chữ cái đầu tiên của tên tệp và muốn tìm tất cả các tệp trong thư mục làm việc bắt đầu bằng chữ cái đó. Hoặc bạn biết trình tự của một số chữ cái trong tên hoặc phần mở rộng của một tệp và bạn cần tìm nó trong số hàng trăm tệp khác. Trong trường hợp này, bạn cần sử dụng các ký tự đặc biệt của Linux. Trình thông dịch lệnh sử dụng một chuỗi ký tự đặc biệt, được gọi là ký tự đại diện, có thể được sử dụng để tìm kiếm tệp, khớp chúng và tạo danh sách tên tệp. Các ký tự này là dấu hoa thị, dấu chấm hỏi và dấu ngoặc vuông (*, ?, ). Sau khi nhận được một phần tên tệp, trình thông dịch lệnh sẽ sử dụng các ký tự này làm mẫu để tìm kiếm và tạo danh sách tên của các tệp được phát hiện. Tham số có tên tệp không đủ tiêu chuẩn sẽ được thay thế bằng danh sách tên tệp phù hợp. Danh sách tên này có thể được sử dụng làm tham số trong các lệnh hoạt động trên nhiều tệp (ví dụ: ls). Các ký tự đại diện của trình thông dịch lệnh được liệt kê trong Bảng. 1.

    Bảng 1. Ký tự đặc biệt của Shell

    Ký hiệu chung

    Mục đích

    Tách lệnh trên một dòng lệnh

    "đội"

    Thực hiện một lệnh

    So sánh với lớp ký tự có thể có trong tên tệp

    Chỉ định ký tự tiếp theo là đặc biệt. Dùng để biểu thị các ký tự điều khiển

    Dẫn đầu ra tiêu chuẩn của một lệnh làm đầu vào cho lệnh khác

    Chạy lệnh ở chế độ nền

    Lệnh làm việc với danh sách các lệnh đã nhập trước đó

    Ký tự đại diện

    Kết quả của ứng dụng

    Khớp với bất kỳ bộ ký tự nào trong tên tệp

    Khớp với bất kỳ ký tự đơn nào trong tên tệp

    Ký hiệu chuyển hướng

    Kết quả của ứng dụng

    Chuyển hướng đầu ra tiêu chuẩn sang một tập tin hoặc thiết bị. Trong trường hợp này, nếu file không tồn tại thì nó được tạo, nhưng nếu file tồn tại thì nó bị ghi đè.

    Dấu chấm than khiến tập tin bị ghi đè nếu nó tồn tại. Biểu tượng này ghi đè tùy chọn ngăn các tệp hiện có bị ghi đè

    Chuyển hướng đầu vào tiêu chuẩn từ tệp hoặc thiết bị sang chương trình

    Chuyển hướng đầu ra tiêu chuẩn sang một tệp hoặc thiết bị, nối đầu ra vào cuối tệp

    Ký hiệu chuyển hướng

    Kết quả áp dụng đầu ra thông báo lỗi tiêu chuẩn

    Chuyển hướng và nối thêm đầu ra lỗi tiêu chuẩn vào một tệp hoặc thiết bị

    Chuyển hướng đầu ra lỗi tiêu chuẩn sang đầu vào tiêu chuẩn

    Chuyển hướng đầu ra lỗi tiêu chuẩn sang một tệp hoặc thiết bị

    Chuyển đầu ra lỗi tiêu chuẩn sang đầu vào của lệnh khác

    Ví dụ: ký tự dấu hoa thị (*) có thể được sử dụng để chỉ các tệp có tên bắt đầu hoặc kết thúc bằng một tổ hợp ký tự cụ thể. Ví dụ này cho thấy cách sử dụng ký tự dấu hoa thị (*) trong bất kỳ tổ hợp ký tự nào.

    $l

    docl doc2 tài liệu docs mydoc thứ hai thứ ba

    Hiển thị danh sách đầy đủ các tập tin trong thư mục làm việc.

    $ ls tài liệu*

    tài liệu tài liệu doc ​​doc2

    Ví dụ này cho thấy cách chúng tôi sử dụng ký tự dấu hoa thị để “lọc ra” các tên tệp không bắt đầu bằng tổ hợp chữ cái “doc”. Chỉ tên tệp có chứa tổ hợp “doc” mới được hiển thị. Trong trường hợp này, các tệp còn lại sẽ không bị xóa; chúng chỉ đơn giản là không được hiển thị cho người dùng.

    $ ls *ngày

    Thứ hai t thứ ba

    Ở đây chúng tôi đã hiển thị tên tệp kết thúc bằng tổ hợp “ngày”.

    $ ls [ tấn ] * d *

    Thứ hai Thứ ba

    Và ở đây chúng tôi đã hiển thị tên của các tệp có ký tự đầu tiên là chữ cái “m” hoặc “t”, các ký tự tiếp theo là tùy ý, sau đó là chữ cái “d” và một lần nữa các ký tự tùy ý.

    Hãy cẩn thận khi sử dụng dấu hoa thị với lệnh rm - nó có thể làm mất dữ liệu của bạn. Lệnh sau xóa tất cả nội dung của thư mục hiện tại.

    rm *

    $ ls *ngày

    doc doc2 tài liệu

    Dấu hỏi (?) chỉ biểu thị một ký tự không xác định trong tên tệp.

    Sau khi đọc bài viết này, bạn sẽ biết nó là gì đánh đập(trình thông dịch lệnh Linux tiêu chuẩn), tìm hiểu cách sử dụng các lệnh tiêu chuẩn: ls, cp, mv...hiểu mục đích của các nút, liên kết cứng và tượng trưng, ​​v.v.

    Hướng dẫn này dành cho những người mới làm quen với Linux và những người muốn xem lại hoặc nâng cao hiểu biết của họ về các nguyên tắc cơ bản của Linux, chẳng hạn như sao chép và di chuyển tệp, tạo liên kết, sử dụng các lệnh Linux tiêu chuẩn cùng với các chuyển hướng và đường dẫn. Trong bài viết này, bạn sẽ tìm thấy nhiều ví dụ giải thích tài liệu được trình bày. Đối với người mới bắt đầu, hầu hết thông tin sẽ là mới, nhưng đối với những người dùng nâng cao hơn, tài liệu này có thể là một công cụ tuyệt vời để tóm tắt kiến ​​thức và kỹ năng hiện có.

    Giới thiệu về bash

    Vỏ bọc

    Nếu bạn sử dụng Linux thì bạn biết rằng sau khi đăng nhập, bạn sẽ được chào đón bởi dấu nhắc trình thông dịch lệnh. Ví dụ thế này:

    \$

    Nếu sau khi đăng nhập nó tải vỏ đồ họa, sau đó để truy cập trình thông dịch lệnh, bạn cần khởi chạy trình mô phỏng thiết bị đầu cuối (gnome-terminal, xfce4-terminal, konsole, xterm, rxvt...) hoặc chuyển sang một trong các thiết bị đầu cuối ảo bằng cách nhấp vào Điều khiểnthay thếF1 hoặc Điều khiểnthay thếF2 vân vân.

    Lời nhắc shell trên máy tính của bạn có thể khác với những gì được hiển thị trong ví dụ. Nó có thể chứa tên người dùng, tên máy tính và tên của thư mục làm việc hiện tại. Nhưng bất chấp tất cả những khác biệt này, chương trình in lời mời này được gọi là " vỏ bọc"(shell), và rất có thể shell lệnh của bạn là một chương trình có tên đánh đập.

    Bạn đang chạy bash phải không?

    Bạn có thể kiểm tra xem bash có đang chạy hay không bằng lệnh sau:

    \$ tiếng vang \$SHELL/bin/bash

    Nếu bạn nhận được lỗi do thực thi lệnh này hoặc kết quả đầu ra của nó khác với trong ví dụ thì có thể hệ thống của bạn không sử dụng bash làm shell lệnh. Mặc dù vậy, hầu hết tài liệu đều có liên quan, nhưng chúng tôi vẫn khuyên bạn nên chuyển sang bash. Điều này có thể được thực hiện (nếu bash được cài đặt trên hệ thống) bằng lệnh:

    \$ đánh đập

    bash là gì

    Bash (viết tắt của " B của chúng ta- Một nhận được SHôi") là thông dịch viên tiêu chuẩn lệnh trên hầu hết các hệ thống Linux. Trách nhiệm của anh ta bao gồm xử lý và thực thi các lệnh mà người dùng điều khiển máy tính. Sau khi hoàn tất, bạn có thể thoát khỏi quá trình shell. Sau khi nhấn các phím Điều khiểnD, đội lối ra hoặc đăng xuất Quá trình shell sẽ kết thúc và bạn sẽ được nhắc nhập lại tên người dùng và mật khẩu của mình.

    Sử dụng "cd"

    Hãy bắt đầu sử dụng bash để điều hướng hệ thống tập tin. Để bắt đầu, gõ lệnh sau:

    $ đĩa CD/

    Với lệnh này, chúng tôi đã chỉ ra cho bash rằng chúng tôi muốn chuyển đến thư mục gốc - / . Tất cả các thư mục trong hệ thống được tổ chức theo cấu trúc cây và / đây là sự khởi đầu (hoặc gốc) của nó. Đội đĩa CD dùng để thay đổi thư mục làm việc hiện tại.

    Đường dẫn

    Để tìm ra vị trí trong hệ thống tập tin khoảnh khắc này bạn đang ở trong (thư mục làm việc hiện tại) gõ:

    \$ pwd /

    Trong ví dụ trên / - đối số lệnh đĩa CD- gọi điện con đường. Đây là vị trí trên hệ thống tập tin mà chúng tôi muốn di chuyển. Trong trường hợp này / - đường dẫn tuyệt đối, điều này có nghĩa là đường dẫn có liên quan đến thư mục gốc.

    Đường dẫn tuyệt đối

    Dưới đây là một số ví dụ về đường dẫn tuyệt đối

    /dev/usr/usr/bin/usr/local/bin

    Như bạn có thể đã nhận thấy, tất cả các đường dẫn này đều có điểm chung là bắt đầu bằng / . Bằng cách chỉ định đường dẫn /usr/local/bin làm đối số cho lệnh đĩa CD chúng tôi bảo cô ấy đi tới thư mục gốc / , sau đó vào thư mục usr, sau đó đến local và bin. Đường dẫn tuyệt đối luôn bắt đầu bằng /

    Đường dẫn tương đối

    Loại đường dẫn thứ hai được gọi là tương đối. đánh, đội đĩa CD và các lệnh khác tính các đường dẫn này liên quan đến thư mục hiện tại. Đường dẫn tương đối không bao giờ bắt đầu bằng / . Ví dụ: nếu chúng ta ở /usr

    \$ cd /usr

    Sau đó, chúng ta có thể truy cập /usr/local/bin bằng đường dẫn tương đối

    \$ cd cục bộ/bin \$ pwd/usr/local/bin

    Cách sử dụng ".."

    Đường dẫn tương đối có thể chứa một hoặc nhiều thư mục «..» . ".." cho biết thư mục mẹ của thư mục làm việc của chúng tôi. Ví dụ:

    \$ pwd/usr/local/bin\$ ĐĨA CD.. \$ pwd/usr/địa phương

    Như bạn có thể thấy, đội ĐĨA CD..'nâng chúng ta lên một tầm cao hơn'.

    Có thể thêm .. ĐẾN đường dẫn tương đối. Điều này sẽ cho phép chúng ta di chuyển đến một thư mục có cùng cấp độ với thư mục chúng ta đang ở. Ví dụ:

    \$ pwd/usr/local\$ cd ../chia sẻ \$ pwd/usr/chia sẻ

    Ví dụ sử dụng đường dẫn tương đối

    Đường dẫn tương đối có thể khá phức tạp. Dưới đây là một số ví dụ. Kết quả thực thi lệnh không được hiển thị, hãy thử xác định thư mục nào bạn sẽ sử dụng bash.

    \$ cd /thùng \$ cd ../usr/share/zoneinfo \$ cd /usr/X11R6/bin \$ cd ../lib/X11 \$ cd /usr/bin \$ cd ../bin/../bin

    Thư mục làm việc "."

    Trước khi chúng ta nói xong về đội đĩa CD, còn có vài điều đáng nói nữa. Đầu tiên, có một thư mục đặc biệt khác «.» , trỏ đến thư mục hiện tại. Thư mục này được sử dụng để chạy các tập tin thực thi nằm trong thư mục hiện tại.

    \$ ./myprog

    Trong ví dụ cuối cùng myprog là tập tin thực thi nằm trong thư mục hiện tại, thư mục này sẽ được khởi chạy để thực thi.

    cd và thư mục chính của người dùng

    Để đi đến thư mục chính, bạn cần quay số

    \$ đĩa CD

    Không cần tranh luận, cd sẽ chuyển bạn về thư mục chính. Đối với siêu người dùng, thư mục chính thường là /root và đối với người dùng thông thường- /home/tên người dùng/. Nhưng nếu chúng ta muốn chỉ ra tập tin cụ thể, nằm trong thư mục chính. Ví dụ, như một đối số cho chương trình 'myprog'? Bạn có thể viết:

    \$ ./myprog /home/user/myfile.txt

    Tuy nhiên, sử dụng đường dẫn tuyệt đối việc truy cập vào các tập tin không phải lúc nào cũng thuận tiện. Hoạt động tương tự có thể được thực hiện bằng cách sử dụng ~ –dấu ngã:

    \$ ./myprog ~/myfile.txt

    ~ - một tên đặc biệt trỏ đến thư mục chính của người dùng trong bash.

    Thư mục chính của người dùng khác

    Nhưng nếu chúng ta cần trỏ tới một file trong thư mục chính của người dùng khác thì sao? Để thực hiện việc này, sau dấu ngã bạn cần cho biết tên của người dùng này. Ví dụ: để trỏ đến tệp fredsfile.txt nằm trong thư mục chính của người dùng fred:

    \$ ./myprog ~fred/fredsfile.txt

    Lệnh Linux

    Giới thiệu về ls

    Có lẽ bạn đã quen thuộc với đội ls, được gọi không có đối số, hiển thị danh sách các tệp được lưu trữ trong thư mục làm việc:

    \$ cd /usr \$ ls X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

    Nếu bạn chỉ định tùy chọn -Một, bạn sẽ có thể xem tất cả các tệp, kể cả những tệp bị ẩn (có tên bắt đầu bằng dấu chấm).

    \$ ls -a. bin gentoo-x86 bao gồm libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

    Danh sách chi tiết các thư mục

    Sau lệnh chính nó ls một hoặc nhiều tệp hoặc thư mục có thể được chỉ định làm đối số của nó. Nếu bạn chỉ định tên tệp, lệnh ls sẽ chỉ hiển thị thông tin về tập tin này. Và nếu bạn chỉ định tên thư mục, ls sẽ hiển thị tất cả nội dung của nó. Lựa chọn '-l'đội ls có thể rất hữu ích nếu bạn muốn biết nhiều hơn ngoài tên tập tin thông tin chi tiết về chúng (quyền đối với tệp, tên chủ sở hữu, thời gian sửa đổi tệp cuối cùng và kích thước của tệp).

    Ví dụ sau đây cho thấy việc sử dụng tùy chọn '-l'để hiển thị thông tin về các tập tin được lưu trữ trong thư mục /usr

    \$ ls -l /usr drwxr-xr-x 7 gốc gốc 168 ngày 24 tháng 11 14:02 X11R6 drwxr-xr-x 2 gốc gốc 14576 ngày 27 tháng 12 08:56 bin drwxr-xr-x 2 gốc gốc 8856 ngày 26 tháng 12 12:47 distfiles lrwxrwxrwx 1 gốc gốc 9 Ngày 22 tháng 12 20:57 doc -> share/doc drwxr-xr-x 62 gốc gốc 1856 Ngày 27 tháng 12 15:54 gentoo-x86 drwxr-xr-x 4 gốc gốc 152 Ngày 12 tháng 12 23:10 i686-linux drwxr-xr-x 4 root root 96 24 tháng 11 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 24 tháng 12 22:30 bao gồm lrwxrwxrwx 1 root root 10 22 tháng 12 20:57 thông tin -> chia sẻ/thông tin drwxr-xr -x 28 root root 13552 26/12 00:31 lib drwxr-xr-x 3 root root 72 25/11 00:34 libexec drwxr-xr-x 8 root root 240 22/12 20:57 lrwxrwxrwx 1 root root 9 22/12 20 :57 man -> share/man lrwxrwxrwx 1 root root 11 ngày 8 tháng 12 07:59 portage -> gentoo-x86/ drwxr-xr-x 60 root root 1864 8 tháng 12 07:55 portage.old drwxr-xr-x 3 root root 3096 Ngày 22 tháng 12 20:57 sbin drwxr-xr-x 46 gốc gốc 1144 Ngày 24 tháng 12 15:32 chia sẻ drwxr-xr-x 8 gốc gốc 328 Ngày 26 tháng 12 00:07 src drwxr-xr-x 6 gốc gốc 176 Ngày 24 tháng 11 14: 25 ssl lrwxrwxrwx 1 gốc gốc 10 ngày 22 tháng 12 20:57 tmp -> ../var/tmp

    Cột đầu tiên hiển thị thông tin về quyền truy cập của từng tệp trong danh sách. (Một lát sau tôi sẽ giải thích chữ cái nào có nghĩa là gì) Cột tiếp theo hiển thị số lượng liên kết đến từng thành phần của danh sách. Cột thứ ba và thứ tư lần lượt là chủ sở hữu và nhóm của tệp. Cột thứ năm là kích thước. Thứ sáu là thời gian tệp được sửa đổi lần cuối ('thời gian sửa đổi lần cuối' hoặc mtime). Cột cuối cùng là tên của tập tin hoặc thư mục (Nếu đây là một liên kết thì sau dấu ‘ –> ‘ là tên của đối tượng mà nó đề cập đến).

    Cách chỉ xem thư mục

    Đôi khi chỉ cần xem thông tin về các thư mục chứ không phải về tất cả nội dung của chúng. Tùy chọn sẽ giúp bạn đối phó với nhiệm vụ này '-d', lệnh này chỉ hiển thị thông tin về các thư mục. Ví dụ:

    \$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 4 gốc gốc 96 ngày 18 tháng 12 18:17 ../share drwxr-xr-x 17 gốc gốc 576 ngày 24 tháng 12 09:03 /usr drwxr-xr-x 2 gốc gốc 3192 ngày 26 tháng 12 12:52 /usr /X11R6/bin drwxr-xr-x 2 gốc gốc 14576 27 tháng 12 08:56 /usr/bin

    Danh sách đệ quy và thông tin inode

    Hành động tùy chọn '-R' trái ngược với hành động '-d'. Nó cho phép bạn hiển thị đệ quy thông tin về các tập tin nằm trong một thư mục. Nội dung của thư mục được hiển thị đầu tiên cấp cao nhất, sau đó lần lượt là nội dung của tất cả các thư mục con, v.v. Đầu ra của lệnh này có thể khá dài nên chúng tôi không cung cấp ví dụ nhưng bạn có thể tự mình thử bằng cách gõ ' ls -R' hoặc ' ls -Rl‘.

    Và cuối cùng, tùy chọn '-Tôi'được sử dụng để in các nút của từng đối tượng hệ thống tệp.

    \$ ls -i /usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 cục bộ 13408 chia sẻ 8316 distfiles 1517 bao gồm 776 man 23779 src 43 doc 1386 info 2 portage 367 37 ssl 70744 gentoo-x86 1585 lib 5132 portage.old 784 tmp

    Inode là gì?

    Mỗi đối tượng hệ thống tệp (tệp, thư mục...) có một số duy nhất, được gọi là inode(số inode). Thông tin này có vẻ không đáng kể nhưng hiểu được chức năng của inode sẽ giúp bạn hiểu được nhiều thao tác trên hệ thống file. Ví dụ, chúng ta hãy nhìn vào «.» «..» giống như các liên kết có trong mỗi thư mục. Để hiểu thư mục là gì «..» , tìm inode của thư mục /use/local

    \$ ls -id /usr/local 5120 /usr/địa phương

    Như chúng ta có thể thấy, inode của thư mục /usr/local là 5120. Bây giờ hãy xem thư mục /usr/local/bin/.. có inode gì:

    \$ ls -id /usr/local/bin/.. 5120 /usr/local/bin/..

    Hóa ra các nút của thư mục /usr/local và /usr/local/bin/.. đều giống nhau! Điều này có nghĩa là inode 5120 được tham chiếu bởi hai tên: /usr/local và /usr/local/bin/.. Tức là đây là hai tên tên khác nhau một thư mục. Mỗi inode trỏ đến một vị trí cụ thể trên đĩa.

    Mỗi inode có thể có nhiều tên đối tượng hệ thống tập tin được liên kết với nó. Số lượng tệp 'từ đồng nghĩa' (các đối tượng hệ thống tệp tham chiếu cùng một nút) được hiển thị bằng số trong cột thứ hai của đầu ra lệnh ' ls -l‘.

    \$ ls -dl /usr/local drwxr-xr-x 8 gốc gốc 240 ngày 22 tháng 12 20:57 /usr/local

    Ví dụ này cho thấy (cột thứ hai) rằng thư mục /usr/local được tham chiếu bởi 8 đối tượng hệ thống tệp khác nhau. Đây là tên của họ:

    /usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/ src/..

    mkdir

    Chúng ta hãy nhìn vào lệnh mkdir. Nó được sử dụng để tạo các thư mục mới. Ví dụ sau minh họa việc tạo ba thư mục mới (tic, tac, toe) trong thư mục /tmp

    \$ cd /tmp $ mkdir tic tac toe

    Lệnh mặc định mkdir không thể tạo cấu trúc thư mục lồng nhau. Do đó, nếu bạn cần tạo một số thư mục lồng nhau ( tuyệt vời), thì bạn sẽ phải gọi lệnh này lần lượt ba lần:

    \$ mkdir won/der/ful mkdir: không thể tạo thư mục "won/der/ful": Không có tập tin hoặc thư mục như vậy \$ mkdir đã thắng \$ mkdir won/der \$ mkdir won/der/ful

    Bạn có thể đơn giản hóa thao tác này bằng cách thêm tùy chọn '-P' vào lệnh mkdir. Tùy chọn này cho phép bạn tạo cấu trúc thư mục lồng nhau:

    \$ mkdir -p dễ dàng/as/pie

    Để tìm hiểu thêm về các khả năng của tiện ích này, hãy đọc phần trợ giúp, được gọi bằng lệnh người đàn ông mkdir. Hầu hết các lệnh trong sách hướng dẫn này đều có trợ giúp (ví dụ: anh bạn ơi), ngoại trừ đĩa CD, bởi vì nó được tích hợp vào bash (đối với các lệnh như vậy, trợ giúp được gọi như thế này: đĩa CD giúp đỡ)

    chạm

    Hãy chuyển sang nghiên cứu các lệnh cpmv, được sử dụng để sao chép, đổi tên và di chuyển các tập tin và thư mục. Nhưng trước đó, hãy tạo một tệp trống trong thư mục /tmp bằng lệnh chạm:

    \$ cd /tmp \$ chạm vào sao chép tôi

    Đội chạm cập nhật thời gian truy cập cuối cùng của tệp (cột thứ sáu của đầu ra lệnh ls -l) nếu nó đã tồn tại hoặc tạo một tệp trống mới nếu nó chưa tồn tại. Sau thao tác này chúng ta sẽ có một tập tin trống /tmp/copyme.

    tiếng vọng

    Bây giờ chúng ta có một tập tin trống, hãy viết vào nó chuỗi văn bản sử dụng lệnh tiếng vọng, in đối số được truyền cho nó tới thiết bị đầu ra tiêu chuẩn (trong trường hợp của chúng tôi là thiết bị đầu cuối văn bản).

    \$ echo "tập tin đầu tiên" tập tin đầu tiên

    Để viết một dòng vào tệp của chúng tôi, hãy chuyển hướng đầu ra lệnh tới nó tiếng vọng:

    \$ echo "firstfile" > sao chép tôi

    Dấu hiệu > (thêm) yêu cầu shell chuyển hướng đầu ra của lệnh ở bên trái sang tệp có tên ở bên phải. Nếu tệp có cùng tên không tồn tại, nó sẽ được tạo tự động. Và nếu một tệp như vậy đã tồn tại, nó sẽ bị ghi đè (tất cả nội dung của nó sẽ bị xóa trước khi chúng ta viết dòng này). Đội 'ls -l' sẽ hiển thị rằng kích thước tệp của chúng tôi hiện là 10 byte - chín byte được chiếm bởi từ 'firstfile' và một byte cho ký tự nguồn cấp dữ liệu dòng.

    \$ ls -l sao chép tôi-rw-r--r-- 1 gốc 10 28/12 14:13 copyme

    mèo và cp

    Để xuất nội dung của tệp ra terminal, hãy sử dụng lệnh con mèo:

    \$ mèo bắt chước tôi tập tin đầu tiên

    Bây giờ chúng ta có thể bắt đầu phân tích chức năng cơ bản của lệnh cp. Lệnh này có hai đối số. Cái đầu tiên đã là một cái tên rồi tập tin hiện có(“copyme”), thứ hai là tên của bản sao mới mà chúng ta muốn tạo ra (“copyme”).

    \$ cp sao chép tôi sao chép tôi

    Chúng tôi có thể đảm bảo rằng bản sao mới của tệp có số inode khác (điều này có nghĩa là chúng tôi thực sự có một số inode mới tập tin riêng biệt và không chỉ là một liên kết đến cái cũ)

    \$ ls -i sao chép tôi đã sao chép tôi 648284 sao chép tôi 650704 sao chép tôi

    mv

    Bây giờ hãy sử dụng lệnh mvđể đổi tên tập tin (“copiedme” -> “movedme”). Số inode không thay đổi sau thao tác này, chỉ có tên tệp thay đổi.

    \$ mv sao chép tôi đã chuyển tôi \$ ls -tôi đã di chuyển tôi 648284 đã chuyển tôi

    Số inode không chỉ thay đổi với điều kiện tệp đã đổi tên vẫn còn trong hệ thống tệp nơi nó được đặt tập tin gốc. Chúng ta sẽ xem xét kỹ hơn cấu trúc của hệ thống tập tin ở một trong những phần sau của hướng dẫn này.

    Đội mv cho phép bạn không chỉ đổi tên tập tin mà còn di chuyển chúng. Ví dụ, để di chuyển một tập tin /var/tmp/myfile.txt vào thư mục /Người dùng gia đình bạn cần đưa ra lệnh:

    \$ mv /var/tmp/myfile.txt /home/user

    Tệp sẽ được chuyển đến thư mục chính của người dùng người dùng ngay cả khi nó nằm trên một hệ thống tệp khác (trong trường hợp này, tệp sẽ được sao chép sang một vị trí mới, sau đó tệp gốc sẽ bị xóa). Như bạn có thể đoán, việc di chuyển một tệp sang hệ thống tệp khác sẽ thay đổi nút của nó. Điều này xảy ra vì mỗi hệ thống tập tin có tập hợp các nút riêng biệt.

    Cần lưu ý rằng có khả năng số inode mới được gán có thể trùng với số inode cũ nhưng cực kỳ nhỏ.

    Để di chuyển nhiều tệp cùng lúc vào một thư mục, bạn cần viết:

    \$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt /home/user \$ mv -t /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

    Nếu bạn thêm tùy chọn '-v', trên màn hình sẽ hiển thị báo cáo về thao tác đã thực hiện:

    \$ mv -vt /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"