Chọn trình thông dịch dòng lệnh Linux. Ngôn ngữ lệnh hệ thống Unix

Phần này mô tả các lệnh và ký hiệu có ý nghĩa đặc biệt cho phép bạn:

  • - tìm bằng cách sử dụng mẫu và thao tác với các nhóm tệp;
  • - chạy lệnh ở chế độ nền hoặc tại một thời điểm cụ thể;
  • - thực hiện một nhóm lệnh một cách tuần tự;
  • - chuyển hướng đầu vào và đầu ra tiêu chuẩn;
  • - chấm dứt các chương trình đang chạy.

Trình thông dịch SHELL là một shell cho toàn bộ hệ điều hành và thực hiện các chức năng giao diện giữa người dùng và HĐH. Nó chặn và giải thích tất cả các lệnh của người dùng, tạo và hiển thị các thông báo phản hồi.

Ngoài việc chạy các lệnh UNIX tiêu chuẩn và các tệp thực thi, trình thông dịch còn bao gồm ngôn ngữ riêng của nó, có khả năng gần giống với các ngôn ngữ lập trình cấp cao. Ngôn ngữ này cho phép bạn tạo các chương trình (tệp shell, tập lệnh) có thể bao gồm các toán tử ngôn ngữ và lệnh UNIX. Các tệp như vậy không yêu cầu biên dịch và được thực thi ở chế độ thông dịch, nhưng chúng phải có quyền thực thi (được đặt bằng lệnh chmod).

Người dùng giao tiếp với trình thông dịch lệnh bằng cách nhập lệnh từ bàn phím sau khi xuất hiện lời nhắc (lời mời), thường là ký hiệu "$". Trình thông dịch sẽ coi chuỗi ký tự được nhập là tên của lệnh nội bộ hoặc là tên của tệp thực thi.

Thủ tục shell (tập lệnh) có thể được truyền các đối số khi khởi chạy. Mỗi đối số trong số chín đối số đầu tiên được gán một tham số vị trí từ $1 đến $9 ($0 là tên của chính thủ tục) và bằng những tên này, chúng có thể được truy cập từ văn bản của thủ tục.

Trước khi xem xét một số câu lệnh shell, chúng ta nên chú ý đến việc sử dụng các ký hiệu nhất định trong lệnh.

Dưới đây là các siêu ký tự được sử dụng vỏ bọc:

* ? - cho phép bạn chỉ định tên tệp viết tắt khi tìm kiếm theo mẫu;

& - có nghĩa là lệnh sẽ được thực thi ở chế độ nền;

; - phân tách các lệnh trên dòng lệnh;

Ghi đè ý nghĩa đặc biệt của các ký tự như *, ?, [, ], &, ;,<,

"..." - hủy giá trị của khoảng trắng dưới dạng dấu phân cách và giá trị đặc biệt

tất cả nhân vật;

"..." - hủy giá trị khoảng trắng dưới dạng dấu phân cách và ý nghĩa đặc biệt của tất cả các ký tự ngoại trừ $ và;

> - chuyển hướng đầu ra lệnh sang một tệp;

< - chuyển hướng đầu vào lệnh từ một tập tin;

>> - chuyển hướng đầu ra lệnh cần được thêm vào

kết thúc tập tin hiện có;

| - tạo một đường dẫn hướng đầu ra của một lệnh tới đầu vào của lệnh khác

`...` - dùng theo cặp; cho phép bạn sử dụng đầu ra lệnh như

đối số dòng lệnh;

$ - được sử dụng với các tham số vị trí và do người dùng xác định

tên biến, cũng được sử dụng theo mặc định trong

như một gợi ý vỏ bọc.

Ngoài ra, để thuận tiện cho việc làm việc với các tập tin, hầu hết tất cả các trình thông dịch lệnh đều diễn giải các ký tự "?". và "*", sử dụng chúng làm mẫu tên tệp (được gọi là siêu ký tự):

  • ? - bất kỳ một biểu tượng nào;
  • * - số lượng ký tự bất kỳ tùy ý.

Ví dụ: *.c - chỉ định tất cả các tệp có phần mở rộng "c";

pr???.* - chỉ định các tệp có tên bắt đầu bằng "pr", chứa năm ký tự và có bất kỳ phần mở rộng nào.

Biến vỏ

Ngôn ngữ shell cho phép bạn làm việc với các biến (không cần khai báo trước). Tên biến bắt đầu bằng một chữ cái và có thể bao gồm các chữ cái và số. Quyền truy cập vào các biến bắt đầu bằng dấu "$".

Ví dụ. Đi tới thư mục chính của người dùng: cd $HOME

Toán tử gán. Việc gán giá trị cho các biến được thực hiện bằng toán tử `=" không có dấu cách.

Trình thông dịch lệnh, trình thông dịch dòng lệnh- một chương trình máy tính, một phần của hệ điều hành cung cấp khả năng điều khiển máy tính cơ bản thông qua đầu vào lệnh tương tác thông qua giao diện dòng lệnh hoặc thực thi tuần tự các tệp lệnh hàng loạt.

Theo quy định, các chức năng của nó bị giới hạn trong việc cung cấp cho người dùng khả năng chạy các chương trình khác; nó cũng có thể chứa một số lệnh đầu vào/đầu ra cơ bản và ngôn ngữ lập trình tập lệnh đơn giản của riêng nó.

@ echo off : bắt đầu Cls Tiêu đề Máy tính Màu 71 Echo Nhập phương trình: Set /P exp = Set /A result =% exp % Title Tính Echo Phương trình của bạn: %exp% Echo Solution: %result% Pause > nul goto started

Máy tính, cho bash shell:

#!/usr/bin/env bash echo "Máy tính" trong khi đọc -p "Nhập biểu thức:" expr do echo "Kết quả: $(($expr )) " xong

Các khái niệm

Shell hoạt động với các lệnh đơn giản.

Lệnh đơn giản là một chuỗi các từ được phân tách bằng dấu cách. Nhấn phím Enter khi nhập lệnh hoặc nguồn cấp dòng khi xử lý tập lệnh là dấu hiệu cho trình thông dịch lệnh rằng lệnh đã hoàn thành. Nó được xử lý và thực thi.

Băng tải là một chuỗi gồm một hoặc nhiều lệnh được phân tách bằng |(& cho cmd.exe). Đầu ra tiêu chuẩn của mỗi lệnh ngoại trừ lệnh cuối cùng được kết nối qua một ống phần mềm với đầu vào tiêu chuẩn của lệnh tiếp theo. Mỗi lệnh chạy như một tiến trình riêng biệt; Trình thông dịch đợi lệnh cuối cùng kết thúc. Trạng thái thoát của đường ống là trạng thái thoát của lệnh cuối cùng của nó. Đây là một ví dụ về một quy trình đơn giản cho trình thông dịch bash:

$ls | tee lưu | wc 15 15 100

Trình thông dịch lệnh

Ngôn ngữ điều khiển dữ liệu - ngôn ngữ cơ sở dữ liệu cho các chức năng quản trị

Ngôn ngữ lệnh kỹ thuật số là trình thông dịch dòng lệnh cho hệ điều hành DEC.

DCL - xe cứu hộ bọc thép hạng nặng hiện đại của Pháp

MZ (định dạng)

MZ là định dạng tệp thực thi 16 bit tiêu chuẩn có phần mở rộng .EXE cho DOS. Được đặt tên theo chữ ký của nó - ký tự ASCII MZ (4D 5A) trong hai byte đầu tiên. Chữ ký này là tên viết tắt của Mark Zbikowski, một trong những người tạo ra MS-DOS. Định dạng này được phát triển để thay thế cho định dạng .COM đã lỗi thời. Các tệp thực thi MZ bao gồm siêu dữ liệu, có thể có kích thước lớn hơn 64 KB và sử dụng một số phân đoạn bộ nhớ thuộc các loại khác nhau (mã, dữ liệu và ngăn xếp), đồng thời điểm nhập chương trình cũng có thể ở bất kỳ đâu (trong tệp .COM, việc thực thi lệnh luôn bắt đầu ngay lập tức ở đầu tập tin). Phương thức tải tệp thi hành được xác định bằng chữ ký: nếu có, tiêu đề MZ sẽ được xử lý, nếu không có, tệp sẽ được khởi chạy dưới dạng .COM - bất kể đuôi tệp là gì (ví dụ: trong các phiên bản mới nhất của MS-DOS , trình thông dịch dòng lệnh COMMAND.COM thực sự là một tệp EXE).

Các định dạng thực thi Windows sau này bắt đầu bằng một sơ khai MZ. Thông thường, một đoạn sơ khai được trình biên dịch thêm vào sẽ xuất ra một thông báo như "Chương trình này không thể chạy ở chế độ DOS".

Các trình liên kết DOS cũ hơn có thể đã sử dụng chữ ký ZM, chữ ký này cũng được MS-DOS và một số hệ điều hành tương thích nhận ra.

SQL*Plus

SQL*Plus là chương trình thông dịch dòng lệnh để làm việc với hệ thống quản lý cơ sở dữ liệu Oracle, trong đó các lệnh SQL và PL/SQL có thể được thực thi một cách tương tác hoặc từ một tập lệnh.

SQL*Plus hoạt động như một công cụ tương đối đơn giản với giao diện dòng lệnh. Các lập trình viên và quản trị viên cơ sở dữ liệu thường sử dụng nó làm công cụ mặc định vì giao diện này có sẵn trong hầu hết mọi bản cài đặt phần mềm Oracle.

TOPS-20

TOPS-20 (trước đây là TENEX) là hệ điều hành được phát triển bởi BBN Technologies (Bolt, Beranek và Newman) cho máy tính DEC PDP-10. TENEX bao gồm việc triển khai đầy đủ hệ thống bộ nhớ ảo, cho phép các chương trình không chỉ truy cập tất cả 262 kiloword bộ nhớ (tương đương 1152 kilobyte) mà còn truy cập đồng thời; Hệ thống phân trang bộ nhớ đã sao chép dữ liệu từ và sang phương tiện bên ngoài nếu cần.

Một trong những tính năng nổi bật của TENEX là trình thông dịch dòng lệnh hướng đến người dùng. Không giống như các hệ thống điển hình của thời đó [cái nào?], TENEX sử dụng tên lệnh dài, ngay cả với các từ dư thừa, để tạo sự rõ ràng. Ví dụ: để in nội dung của một thư mục trong UNIX, lệnh ls được sử dụng và trong TENEX - DIRECTORY (OF FILES), trong đó DIRECTORY là một từ khóa và OF FILES là phần dư thừa được giới thiệu để thực hiện mục đích của lệnh rõ ràng hơn. Đối với TENEX, nó được viết một chương trình Creeper tự sao chép qua mạng cục bộ, bị nhầm lẫn là một trong những loại virus máy tính đầu tiên trên thế giới.

Nhận mệnh lệnh

Take Command là tên JP Software được sử dụng cho trình thông dịch dòng lệnh giao diện đồ họa người dùng (GUI) cho Windows 3.1 (TC16), phiên bản 32-bit của Windows (TC32) và Trình quản lý bản trình bày OS/2 (TCOS2) sau này. Chúng được phát hành song song với các phiên bản 4DOS 5.5, 4NT 2.5 và 4OS2 2.52. Các sản phẩm dành cho OS/2 và Windows ở phiên bản 16-bit tồn tại cho đến phiên bản 2.02 và vẫn có thể tải xuống từ trang JP Software FTP.

Take Command hôm nay là trình thông dịch dòng lệnh cho các hệ điều hành thuộc dòng Microsoft Windows. Ưu điểm của nó so với shell lệnh Windows tiêu chuẩn cũng giống như ưu điểm của 4DOS so với COMMAND.COM từ gói MS-DOS.

Kể từ phiên bản 9, cái tên Take Command dùng để chỉ toàn bộ gói phần mềm: TCI (Tabbed Command Interface) và 4NT. Việc phát triển phiên bản gốc của Take Command đã bị ngừng. Thành phần TCI hiện đã được mở rộng: nó bao gồm trình quản lý tệp, bảng tùy chỉnh và một số cửa sổ khác, đồng thời 4NT đã được đổi tên thành TCC và ngoài phiên bản đầy đủ, còn có sẵn ở phiên bản “lite” miễn phí (TCC/ LÊ).

Trình chỉnh sửa và trình gỡ lỗi tích hợp cho các tệp hàng loạt đã được thêm vào Take Command; các lệnh bao gồm quyền truy cập vào tệp qua FTP và HTTP, truy cập vào hệ thống tệp mạng, tích hợp với Active Scripting, các lệnh để giám sát hệ thống và kiểm soát các dịch vụ Windows.

Sử dụng Bảng điều khiển lệnh (TCC)

Take Command Console (TCC) (trước đây là 4DOS cho Windows NT và 4NT) là trình thông dịch dòng lệnh do JP Software sản xuất như một sự thay thế giàu tính năng hơn cho trình thông dịch dòng lệnh tiêu chuẩn trong Microsoft Windows - CMD.EXE. TCC dựa trên shell 4DOS đã phát hành trước đó cho DOS và 4OS/2 cho OS/2.

Kể từ phiên bản 12, 4NT đã loại bỏ hỗ trợ cho Windows 95, 98, ME, NT và 2000. Kể từ phiên bản 16, TCC đã loại bỏ hỗ trợ cho Windows XP, mặc dù vẫn có thể hoạt động trong XP. 4NT đã được đổi tên thành Take Command Console (TCC) như một phần của JP Software Take Command phiên bản 9 trở lên.

TCC cung cấp nhiều khả năng để làm việc với dòng lệnh và tệp bó. Để cung cấp quyền truy cập rộng rãi vào hệ điều hành, TCC cho phép bạn làm việc cùng với các ngôn ngữ kịch bản lệnh khác - REXX, Ruby và Perl hoặc các ngôn ngữ kịch bản Windows, dưới dạng công cụ Active Scripting - VBScript và JScript, cũng như PerlScript ( thông qua ActivePerl), TclScript (thông qua ActiveTcl ), PythonScript (thông qua ActivePython) và một phiên bản của công cụ tập lệnh Object REXX.

Giao diện dòng lệnh

Giao diện dòng lệnh (CLI) là một loại giao diện văn bản (CUI) giữa người và máy tính, trong đó các hướng dẫn đến máy tính được đưa ra chủ yếu bằng cách nhập các dòng văn bản (lệnh) từ bàn phím trong hệ thống UNIX có thể sử dụng; con chuột. Còn được gọi là bảng điều khiển.

Giao diện dòng lệnh tương phản với các hệ thống điều khiển chương trình dựa trên menu, cũng như các cách triển khai GUI khác nhau.

Định dạng thông tin đầu ra trong giao diện dòng lệnh không được quy định; Thông thường đây cũng là một đầu ra văn bản đơn giản, nhưng nó cũng có thể là đồ họa, âm thanh, v.v.

Bảng điều khiển khôi phục

Recovery Console là một thành phần có trong Windows 2000, Windows XP và Windows Server 2003. Nó cung cấp cho quản trị viên một phương tiện để thực hiện một số tác vụ giới hạn bằng giao diện dòng lệnh. Mục đích chính của nó là cho phép quản trị viên khôi phục HĐH trong trường hợp Windows không khởi động về trạng thái GUI. Recovery Console được sử dụng để cung cấp quyền truy cập khẩn cấp vào ổ cứng của bạn thông qua dòng lệnh. Vì vậy, Recovery Console có thể được truy cập thông qua phương tiện cài đặt gốc được sử dụng để cài đặt Windows hoặc cũng có thể được cài đặt vào ổ cứng và thêm vào menu NTLDR, tuy nhiên việc dựa vào phương tiện cài đặt sau sẽ nguy hiểm hơn vì nó yêu cầu máy tính phải khởi động vào NTLDR .

So sánh các ngôn ngữ lập trình

Bảng dưới đây cho biết sự hiện diện hay vắng mặt của một số tính năng nhất định trong một số ngôn ngữ lập trình phổ biến hiện nay. Các cột được sắp xếp theo thứ tự abc. Nếu một tính năng trong một ngôn ngữ không có sẵn trực tiếp nhưng có thể được mô phỏng bằng các phương tiện khác thì bảng cho biết rằng tính năng đó không tồn tại.

Khi điền vào bảng, chỉ dữ liệu thực tế mới được tính đến, mặc dù thực tế là sự hiện diện của một tính năng không nhất thiết là một lợi thế của ngôn ngữ và sự vắng mặt của một tính năng là một bất lợi.

Điểm kết nối NTFS

NTFS Junction Point là một cải tiến trong hệ thống tệp NTFS 3.0 (hệ thống tệp mặc định trong Windows 2000). Bản chất của sự đổi mới là ổ đĩa hoặc thư mục logic được chỉ định sẽ được hiển thị dưới dạng một thư mục trên ổ đĩa logic khác hoặc trong một thư mục khác. Tính năng này cho phép bạn tạo một số hiệu ứng với hệ thống tệp (ví dụ: lưu trữ hai hồ sơ của cùng một người dùng và chuyển đổi giữa chúng mà không gặp vấn đề gì). Điểm nối được triển khai trong NTFS dưới dạng một loại điểm phân tích lại đặc biệt.

Chức năng này có thể được cấu hình trong phần đính vào “Quản lý đĩa”: nhấp chuột phải vào ổ đĩa được kết nối, chọn “Thay đổi ký tự ổ đĩa hoặc đường dẫn ổ đĩa…”, sau đó danh sách sẽ hiển thị tất cả các đường dẫn có thể đến ổ đĩa theo mặc định; , ổ đĩa có thể được truy cập bằng chữ cái của nó (“ X:" - trong đó X là ký tự ổ đĩa). Bạn có thể thay đổi đường dẫn tới đĩa bằng các nút tương ứng bên dưới danh sách.

Để tạo một điểm kết nối tới một thư mục, bạn có thể sử dụng tiện ích linkd, tiện ích này có trong Windows 2000 và Windows XP Resource Kits. Trong Windows Vista trở lên, bạn có thể tạo điểm nối hoặc liên kết tượng trưng bằng lệnh bảng điều khiển mklink tiêu chuẩn.

Để truy cập một thư mục như vậy, không cần cài đặt ứng dụng bổ sung, nghĩa là có thể truy cập bằng cách nhập địa chỉ thư mục. Do đó, giới hạn về 26 ổ đĩa cục bộ trên một máy tính (số lượng chữ cái tiếng Anh để đặt tên đĩa) sẽ biến mất, vì ổ đĩa có thể được truy cập mà không cần gán tên cho nó.

Shebang (Unix)

Shebang (tiếng Anh là shebang, sha-bang, hashbang, pound-bang hoặc hash-pling) - trong lập trình, một chuỗi gồm hai ký tự: hàm băm và dấu chấm than (“#!”) ở đầu tệp tập lệnh .

Khi tập lệnh shebang được thực thi dưới dạng chương trình trên các hệ điều hành giống Unix, trình tải chương trình sẽ coi phần còn lại của dòng sau shebang là tên của tệp chương trình thông dịch. Trình tải khởi chạy chương trình này và chuyển cho nó tên của tệp tập lệnh có shebang làm tham số. Ví dụ: nếu tên đầy đủ của tệp tập lệnh là "path/to/script" và dòng đầu tiên của tệp này là:

#!/bin/sh thì trình tải sẽ chạy "/bin/sh" (thường là trình bao Bourne hoặc trình thông dịch dòng lệnh tương thích) và chuyển "path/to/script" làm tham số đầu tiên.

Dòng Shebang thường bị trình thông dịch bỏ qua vì ký tự "#" là ký tự bắt đầu của nhận xét trong nhiều ngôn ngữ tập lệnh. Một số trình thông dịch không sử dụng ký tự băm để biểu thị phần bắt đầu nhận xét (chẳng hạn như Lược đồ) có thể bỏ qua dòng shebang để xác định mục đích của nó. Các giải pháp khác dựa vào bộ tiền xử lý để xử lý và loại bỏ dòng Shebang trước khi phần còn lại của tập lệnh được chuyển tới trình biên dịch hoặc trình thông dịch. Ví dụ: đây là cách InstantFPC hoạt động, cho phép bạn chạy các chương trình được viết bằng Free Pascal dưới dạng tập lệnh trên một số hệ điều hành.

BAT Phần mở rộng tệp: .bat, .cmd (chỉ dành cho Windows NT) Loại định dạng: Ngôn ngữ lập trình tập lệnh Tệp hàng loạt - một tệp văn bản trong OS/2 hoặc Windows chứa một chuỗi các lệnh dự định được thực thi bởi lệnh ... Wikipedia

- (từ shell tiếng Anh) một trình thông dịch các lệnh của hệ điều hành, cung cấp giao diện để người dùng tương tác với các chức năng của hệ thống. Nhìn chung, có các shell với hai loại giao diện để tương tác với... ... Wikipedia

Shell hệ điều hành (từ shell tiếng Anh) là trình thông dịch các lệnh của hệ điều hành (OS), cung cấp giao diện để người dùng tương tác với các chức năng của hệ thống. Nói chung, có các shell với hai loại giao diện cho ... Wikipedia

Shell hệ điều hành (từ shell tiếng Anh) là trình thông dịch các lệnh của hệ điều hành (OS), cung cấp giao diện để người dùng tương tác với các chức năng của hệ thống. Nói chung, có các shell với hai loại giao diện cho ... Wikipedia

Cây gia đình của các hệ thống UNIX Họ UNIX (đọc UNIX) của hệ thống di động, đa nhiệm và nhiều người dùng ... Wikipedia

Cây gia đình của các hệ thống UNIX UNIX (đọc là Unix) là một nhóm các hệ điều hành di động, đa nhiệm và nhiều người dùng. Hệ thống UNIX đầu tiên được phát triển vào năm 1969 tại bộ phận Bell Labs của AT T. Kể từ đó, nó đã được tạo ra ... Wikipedia

Cây gia đình của các hệ thống UNIX UNIX (đọc là Unix) là một nhóm các hệ điều hành di động, đa nhiệm và nhiều người dùng. Hệ thống UNIX đầu tiên được phát triển vào năm 1969 tại bộ phận Bell Labs của AT T. Kể từ đó, nó đã được tạo ra ... Wikipedia

Cây gia đình của các hệ thống UNIX UNIX (đọc là Unix) là một nhóm các hệ điều hành di động, đa nhiệm và nhiều người dùng. Hệ thống UNIX đầu tiên được phát triển vào năm 1969 tại bộ phận Bell Labs của AT T. Kể từ đó, nó đã được tạo ra ... Wikipedia

Gửi công việc tốt của bạn trong cơ sở kiến ​​thức rất đơn giản. Sử dụng mẫu dưới đây

Các sinh viên, nghiên cứu sinh, các nhà khoa học trẻ sử dụng nền tảng kiến ​​thức trong học tập và công việc sẽ rất biết ơn các bạn.

Đăng trên http://www.allbest.ru/

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

THÔNG DỊCH LỆNH

Mục đích của công việc trong phòng thí nghiệm là làm quen với ngôn ngữ lệnh của hệ thống UNIX (đặc biệt là với các lệnh để làm việc với hệ thống tệp), với việc chuyển hướng các luồng đầu vào/đầu ra và với các đường dẫn chương trình.

1. THÔNG TIN LÝ LUẬN

1.1 Quy định chung

chương trình lệnh tập tin thông dịch

UNIX là cốt lõi của hệ điều hành chia sẻ thời gian, tức là một chương trình quản lý tài nguyên máy tính và cung cấp chúng cho người dùng. Nó cho phép người dùng chạy chương trình của họ, quản lý các thiết bị ngoại vi và duy trì hệ thống tệp. UNIX là hệ điều hành đa nhiệm, đa người dùng.

Hoạt động của hệ điều hành UNIX có thể được biểu diễn dưới dạng hoạt động của nhiều quy trình được kết nối với nhau. Khi hệ thống khởi động, kernel được khởi chạy lần đầu tiên, từ đó bắt đầu tác vụ chính, sinh ra tất cả các tiến trình tiếp theo - tiến trình init (quy trình số 1).

Tương tác của người dùng với hệ thống UNIX xảy ra tương tác thông qua ngôn ngữ lệnh. Hệ điều hành shell - shell - diễn giải các lệnh đã nhập, khởi chạy các chương trình (quy trình) tương ứng, tạo và hiển thị các thông báo phản hồi.

Một phần quan trọng của UNIX là hệ thống tập tin. Nó có cấu trúc phân cấp, tạo thành một cây thư mục và tập tin. Thư mục gốc được biểu thị bằng ký tự "/" và đường dẫn qua cây thư mục bao gồm các tên thư mục được phân tách bằng ký tự "/".

Mỗi tệp hệ điều hành UNIX có thể được xác định duy nhất bởi một số cấu trúc dữ liệu được gọi là bộ mô tả tệp. Nó chứa tất cả thông tin về tệp: loại tệp, chế độ truy cập, ID chủ sở hữu, kích thước, địa chỉ tệp, ngày truy cập cuối cùng và ngày sửa đổi cuối cùng, ngày tạo, v.v.

Tệp được truy cập theo tên. Tên tệp cục bộ là một tập hợp các ký tự, có độ dài từ 1 đến 14 trong Hệ thống V. Trên các hệ thống hỗ trợ hệ thống tệp FFS, tên tệp có thể dài tới 255 ký tự. Các ký tự được sử dụng phải là số, chữ cái Latinh và ký hiệu `_'. mục lục. Đường dẫn đến tệp từ thư mục gốc được gọi là tên tệp đủ điều kiện. Nếu việc truy cập một tệp bắt đầu bằng ký tự "/", thì coi như tên đầy đủ của tệp đã được chỉ định và việc tìm kiếm tệp bắt đầu từ thư mục gốc; trong mọi trường hợp khác, việc tìm kiếm tệp bắt đầu từ thư mục hiện tại.

1.2 Đăng ký vào hệ thống

Công việc của người dùng trong hệ thống bắt đầu bằng việc kích hoạt máy chủ truy cập đầu cuối Getty, chạy chương trình đăng nhập, nhắc người dùng nhập tên và mật khẩu.

· tên đăng ký người dùng;

· mật khẩu được mã hóa;

· tên người dùng;

· định danh nhóm;

· thông tin về thời hạn hiệu lực tối thiểu của mật khẩu;

thông tin chung về người dùng

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

· sự đăng ký vỏ bọc người dùng

Nếu người dùng đăng nhập và nhập đúng mật khẩu, đăng nhập chạy chương trình được chỉ định trong /etc/passwd - sự đăng ký vỏ bọc người dùng.

1.3 Người dùng hệ thống và chủ sở hữu tệp

Người dùng hệ thống là một đối tượng có một số quyền nhất định xác định khả năng khởi chạy chương trình để thực thi cũng như quyền sở hữu các tệp. Người dùng duy nhất của hệ thống có quyền không giới hạn là siêu người dùng hoặc người quản lý hệ thống.

Hệ thống xác định người dùng bằng cái gọi là. tên người dùng(UID - Mã định danh người dùng). Mỗi người dùng là thành viên của một hoặc nhiều các nhóm- danh sách người dùng có nhiệm vụ tương tự. Mỗi nhóm có nét độc đáo riêng Id nhóm(GID - Mã định danh nhóm) ​​Thành viên nhóm xác định tập hợp các quyền mà các thành viên của nhóm này có.

Quyền của người dùng UNIX chủ yếu là quyền làm việc với các tập tin. Tệp có hai chủ sở hữu - chủ sở hữu người dùng và chủ sở hữu nhóm.

Theo đó, thuộc tính bảo mật tệp xác định quyền của người dùng sở hữu tệp (u), quyền của thành viên nhóm sở hữu (g) ​​và quyền của mọi người khác (o).

1.4 Cấu trúc hệ thống tập tin

Hệ thống tệp UNIX OS có cấu trúc phân cấp tạo thành cây thư mục và tệp. Thư mục gốc được biểu thị bằng ký tự "/" và đường dẫn qua cây thư mục bao gồm các tên thư mục được phân tách bằng ký tự "/", ví dụ:

/nhà/cơ quan/tài liệu

Tại bất kỳ thời điểm nào, bất kỳ người dùng nào cũng được liên kết với một thư mục hiện tại, tức là vị trí của người dùng trong hệ thống tệp phân cấp.

Thư mục gốc "/" có một số thư mục hệ thống quan trọng chứa:

/stand - nhân hệ thống và các tệp dữ liệu được sử dụng trong quá trình khởi động.

Đôi khi tệp kernel nằm trực tiếp trong thư mục gốc /;

/sbin - các chương trình thực thi chính được sử dụng trong quy trình

khởi động và phục hồi hệ thống;

/dev là các tệp đặc biệt đại diện cho các thiết bị ngoại vi (chẳng hạn như bảng điều khiển, máy in dòng, thiết bị đầu cuối người dùng và đĩa). Trong một danh sách dài ls -lĐối với mỗi tệp thiết bị, thay vì kích thước, hai số được chỉ định: số chính và số phụ. Số chính xác định trình điều khiển thiết bị cho hạt nhân; các thiết bị tương tự có cùng số chính. Số nhỏ xác định một phiên bản thiết bị cụ thể.

/etc - các tập tin cấu hình và cơ sở dữ liệu tổ chức hệ thống;

/home - thư mục gốc cho thư mục người dùng;

/tmp - tập tin tạm thời;

/var - thư mục gốc dành cho các tệp thay đổi thường xuyên (ví dụ: tệp nhật ký); Thư mục con của thư mục /var lưu trữ các tệp tạm thời hoặc dịch vụ của các chương trình khác nhau. Các thư mục con chính của thư mục /var:

/var/log - nhật ký các sự kiện trong hệ thống.

/var/adm - nhật ký sự kiện ngữ cảnh quản trị.

/var/mail - bài viết mới (chưa đọc) của người dùng.

/var/spool - các hàng đợi khác nhau (để in, gửi thư, để thực hiện các tác vụ đã lên lịch).

/var/tmp - các tập tin tạm thời khác nhau.

/usr - các thư mục khác, bao gồm lib và bin.

Tất cả các tệp mà người dùng có thể thao tác đều nằm trong một hệ thống tệp, đó là một cây có các đỉnh trung gian tương ứng với các thư mục và các lá của nó tương ứng với các tệp và thư mục trống. Trong thực tế, mỗi đĩa logic (phân vùng của gói đĩa vật lý) chứa một hệ thống phân cấp các thư mục và tệp riêng biệt. Để có được một cây chung một cách linh hoạt, các hệ thống phân cấp riêng lẻ được “gắn” vào một hệ thống tệp gốc cố định dưới dạng các nhánh của cây chung.

Mỗi thư mục và tệp trong hệ thống tệp có một tên đường dẫn đủ điều kiện duy nhất, chỉ định đường dẫn đầy đủ từ thư mục gốc của hệ thống tệp qua chuỗi thư mục đến thư mục hoặc tệp tương ứng. Thư mục gốc của hệ thống tệp (thư mục gốc) trong bất kỳ hệ thống tệp nào đều có tên được xác định trước "/" (dấu gạch chéo). Ký tự tương tự được sử dụng làm dấu phân cách tên trong đường dẫn. Tên tệp đủ điều kiện, chẳng hạn như /bin/sh, có nghĩa là thư mục gốc phải chứa tên của thư mục bin và thư mục bin phải chứa tên của tệp sh. Tên tệp ngắn hoặc tương đối là tên (có thể là tên ghép) chỉ định đường dẫn đến tệp từ thư mục làm việc hiện tại (có một lệnh và lệnh gọi hệ thống tương ứng cho phép bạn đặt thư mục làm việc hiện tại).

Mỗi thư mục chứa hai tên đặc biệt, tên ".", đặt tên cho chính thư mục đó và tên "..", đặt tên cho thư mục "cha" của thư mục này, tức là. thư mục ngay trước thư mục này trong hệ thống phân cấp thư mục.

Vì vậy, ví dụ, đối với cấu trúc được hiển thị trong hình sau, có thể truy cập vào tệp được đánh dấu trong hình từ thư mục hiện tại bằng tên đầy đủ của nó:

/home/apalko/file2

hoặc theo tên họ hàng:

./../../apalko/file2

Hình 1 Ví dụ về cây thư mục

Thư mục hoặc tập tin có tên bất kỳ theo quy tắc sau:

· cho phép tất cả các ký tự ngoại trừ /;

· Một số tên tốt nhất không được sử dụng, chẳng hạn như dấu cách, tab và các tên sau: ? "#$^();< >| \ * @ " ~ &. Nếu bạn sử dụng ký tự dấu cách hoặc tab trong tên tệp hoặc thư mục, bạn phải đặt tên đó trong dấu ngoặc kép trên dòng lệnh;

· Tránh sử dụng dấu + - hoặc. là ký tự đầu tiên trong tên tệp;

· Hệ thống UNIX phân biệt chữ hoa và chữ thường trong tên tập tin và thư mục.

Mỗi tệp hệ điều hành UNIX có thể được chỉ định duy nhất bởi một số cấu trúc dữ liệu được gọi là bộ xử lý hoặc bộ mô tả tệp. Cấu trúc này được mô tả trong tập tin , nó có dung lượng 64 byte và chứa thông tin sau:

( unsigned short di_mode; /* chế độ truy cập và loại tập tin */

di_nlink ngắn; /*đếm số lượng liên kết tới một file */

di_uid ngắn; /* ID của chủ sở hữu */

di_gid ngắn; /* Id nhóm */

off_t di_size; /*đếm số byte trong file */

char di_addr; /* trỏ tới khối đĩa chứa tập tin */

thời_t ngày_thời gian; /* ngày truy cập lần cuối */

time_t di_mtime; /* Ngày sửa đổi lần cuối */

thời_t di_cthời gian; /* ngày tạo */)

Trường di_mode bao gồm 16 bit:

Hình 2. Chế độ truy cập và loại tệp

Trường di_addr được sử dụng để lưu trữ các con trỏ tới vị trí của các khối đĩa chứa thông tin được đặt trong một tệp nhất định. Trường này có thể lưu trữ 13 con trỏ, trong đó 10 con trỏ đầu tiên tham chiếu đến 10 khối đầu tiên của tệp. Nếu tệp chiếm nhiều dung lượng hơn thì con trỏ thứ 11 chứa thông tin về vị trí của khối gián tiếp chính, bao gồm một trăm hai mươi tám con trỏ 32 bit tới các khối tệp; Con trỏ thứ 12 trỏ đến khối gián tiếp thứ cấp chứa 128 chỉ báo vị trí khối gián tiếp chính và con trỏ thứ 13 tương ứng trỏ đến vị trí của khối gián tiếp cấp ba bao gồm 128 con trỏ khối gián tiếp thứ cấp. Do đó, bằng cách sử dụng sơ đồ địa chỉ này, có thể truy cập vào một tệp bao gồm tối đa các khối (128x128x128+128x128+128+10). Tất cả các đối số này đều hợp lệ cho các khối 512 (128x4) byte.

Tệp được truy cập theo tên. Tên tệp cục bộ là một tập hợp các ký tự tùy ý. Nếu một dấu chấm được tìm thấy trong/trong số chúng, thì nó sẽ được theo sau bởi cái gọi là phần mở rộng, thường dùng để xác định loại tệp. Ví dụ: các tệp lưu trữ văn bản thường có phần mở rộng là “txt” hoặc “doc” (title.doc, book.txt, v.v.), các tệp có văn bản chương trình bằng ngôn ngữ C có phần mở rộng là “c” (progr. c, code.c, v.v.), các tệp thực thi - phần mở rộng "ra" hoặc không có phần mở rộng nào cả. Có thể có một số phần mở rộng (ví dụ: tên "progr.c.b" có thể có nghĩa là phiên bản cũ (tệp bak) của chương trình trong C).

Tên tệp cục bộ được lưu trữ trong thư mục thích hợp. Đường dẫn đến tệp từ thư mục gốc được gọi là tên tệp đủ điều kiện. Nếu quyền truy cập tệp bắt đầu bằng ký tự "/", thì việc tìm kiếm tệp bắt đầu từ thư mục gốc; trong mọi trường hợp khác, việc tìm kiếm tệp bắt đầu từ thư mục hiện tại. Bất kỳ tập tin có thể có nhiều tên. Trong thực tế, tên tệp là tham chiếu đến tệp được chỉ định bởi số mô tả. Do đó, bằng cách đặt tên của cùng một tệp trong các thư mục khác nhau, bạn có thể truy cập tệp trực tiếp trong mỗi thư mục thay vì chỉ định đường dẫn đầy đủ.

1 .4 . 1 Loại tập tin

Mỗi tệp hệ điều hành UNIX, tùy theo loại của nó, có thể được phân loại thành một trong các nhóm sau: tệp thông thường, thư mục, tệp đặc biệt và đường ống.

Tệp thông thường là một chuỗi byte. Hệ thống không áp đặt bất kỳ hạn chế nào đối với tệp và không có ý nghĩa nào được gán cho nội dung của nó: ý nghĩa của byte chỉ phụ thuộc vào các chương trình xử lý tệp.

Mục lục là một loại tệp đặc biệt khác với tệp thông thường ở chỗ có cấu trúc và hạn chế ghi: chỉ nhân hệ điều hành UNIX mới có thể ghi vào một thư mục. Thư mục thiết lập sự tương ứng giữa các tệp (chính xác hơn là số mô tả) và tên cục bộ của chúng. Một thư mục ví dụ cho hệ thống tệp UNIX System V - Hình 2 (2 byte - số mô tả, 14 byte - tên cục bộ).

Hình 3. Ví dụ về thư mục UNIX System V

Số mô tả tương ứng với tên "." là liên kết đến một tệp chứa thông tin về chính thư mục đó. Số mô tả tương ứng với tên ".." là tham chiếu đến thư mục mẹ của thư mục hiện tại. Số mô tả là 0 có nghĩa là liên kết tới tệp tương ứng đã bị xóa khỏi thư mục và mục nhập thư mục đó được coi là miễn phí.

Tập hợp tất cả các thư mục chỉ định cấu trúc của toàn bộ hệ thống tệp.

Tập tin đặc biệt là một tập tin được gán cho một số thiết bị bên ngoài và có cấu trúc đặc biệt. Nó không thể được sử dụng để lưu trữ dữ liệu như một tệp hoặc thư mục thông thường, nhưng bạn có thể thực hiện các thao tác tương tự trên đó như trên bất kỳ tệp nào khác. Trong trường hợp này, thông tin đầu vào/đầu ra vào tệp này sẽ tương ứng với đầu vào hoặc đầu ra của thiết bị bên ngoài.

Kênh là một công cụ phần mềm liên kết các tiến trình của hệ điều hành UNIX với bộ đệm I/O

2. NGÔN NGỮ LỆNH CỦA HỆ THỐNG UNIX. TRÌNH DUYỆT VỎ

2.1 Quy định chung

Phần này mô tả các lệnh và ký hiệu có ý nghĩa đặc biệt cho phép bạn:

Tìm và thao tác các nhóm tệp bằng cách sử dụng mẫu;

Chạy lệnh ở chế độ nền hoặc tại một thời điểm cụ thể;

Thực hiện tuần tự một nhóm lệnh;

Chuyển hướng đầu vào và đầu ra tiêu chuẩn;

Chấm dứt các chương trình đang chạy.

Trình thông dịch SHELL là một shell cho toàn bộ hệ điều hành và thực hiện các chức năng giao diện giữa người dùng và HĐH. Nó chặn và giải thích tất cả các lệnh của người dùng, tạo và hiển thị các thông báo phản hồi.

Ngoài việc chạy các lệnh UNIX tiêu chuẩn và các tệp thực thi, trình thông dịch còn bao gồm ngôn ngữ riêng của nó, có khả năng gần giống với các ngôn ngữ lập trình cấp cao. Ngôn ngữ này cho phép bạn tạo các chương trình (tệp shell, tập lệnh) có thể bao gồm các toán tử ngôn ngữ và lệnh UNIX. Các tệp như vậy không yêu cầu biên dịch và được thực thi ở chế độ thông dịch, nhưng chúng phải có quyền thực thi (được đặt bằng lệnh chmod).

Người dùng giao tiếp với trình thông dịch lệnh bằng cách nhập lệnh từ bàn phím sau khi xuất hiện lời nhắc (lời mời), thường là ký hiệu "$". Trình thông dịch sẽ coi chuỗi ký tự được nhập là tên của lệnh nội bộ hoặc là tên của tệp thực thi.

Thủ tục shell (tập lệnh) có thể được truyền các đối số khi khởi chạy. Mỗi đối số trong số chín đối số đầu tiên được gán một tham số vị trí từ $1 đến $9 ($0 là tên của chính thủ tục) và bằng những tên này, chúng có thể được truy cập từ văn bản của thủ tục.

Trước khi xem xét một số câu lệnh shell, chúng ta nên chú ý đến việc sử dụng các ký hiệu nhất định trong lệnh.

Dưới đây là các siêu ký tự được sử dụng vỏ bọc:

* ? - cho phép bạn chỉ định tên tệp viết tắt khi tìm kiếm theo mẫu;

& - có nghĩa là lệnh sẽ được thực thi ở chế độ nền;

; - phân tách các lệnh trên dòng lệnh;

\ - hủy bỏ ý nghĩa đặc biệt của các ký tự như *, ?, [, ], &, ;,<,

"..." - hủy giá trị của khoảng trắng dưới dạng dấu phân cách và giá trị đặc biệt

tất cả nhân vật;

"..." - hủy bỏ giá trị khoảng trắng làm dấu phân cách và ý nghĩa đặc biệt của tất cả các ký tự ngoại trừ $ và \ ;

> - chuyển hướng đầu ra lệnh sang một tệp;

< - chuyển hướng đầu vào lệnh từ một tập tin;

>> - chuyển hướng đầu ra lệnh cần được thêm vào

kết thúc tập tin hiện có;

| - tạo một đường dẫn hướng đầu ra của một lệnh tới đầu vào của lệnh khác

`...` - được sử dụng theo cặp; cho phép bạn sử dụng đầu ra lệnh như

đối số dòng lệnh;

$ - được sử dụng với các tham số vị trí và do người dùng xác định

tên biến, cũng được sử dụng theo mặc định trong

như một gợi ý vỏ bọc.

Ngoài ra, để thuận tiện cho việc làm việc với các tập tin, hầu hết tất cả các trình thông dịch lệnh đều diễn giải các ký tự "?". và "*", sử dụng chúng làm mẫu tên tệp (được gọi là siêu ký tự):

Bất kỳ một biểu tượng nào;

* - số lượng ký tự bất kỳ tùy ý.

Ví dụ: *.c - chỉ định tất cả các tệp có phần mở rộng "c";

pr???.* - chỉ định các tệp có tên bắt đầu bằng "pr", chứa năm ký tự và có bất kỳ phần mở rộng nào.

Biến vỏ

Ngôn ngữ shell cho phép bạn làm việc với các biến (không cần khai báo trước). Tên biến bắt đầu bằng một chữ cái và có thể bao gồm các chữ cái và số. Quyền truy cập vào các biến bắt đầu bằng dấu "$".

Ví dụ. Đi tới thư mục chính của người dùng: cd $HOME

Toán tử gán. Việc gán giá trị cho các biến được thực hiện bằng toán tử `=" không có dấu cách.

Ví dụ: S= Xin chào

tiếng vọng $ S

2.2 Nhận trợ giúp

Đội người đàn ôngtài liệu , Ở đâu tài liệu - một lệnh, chương trình, tệp cấu hình hoặc chức năng thư viện mà bạn muốn trợ giúp. Danh mục người đàn ông bao gồm một số phần:

1: Lệnh của người dùng

1M: Các lệnh quản trị hệ thống

2: Cuộc gọi hệ thống

3 (3B,3S,...): Chức năng thư viện

4: Định dạng tệp

5: Tiêu đề, bảng, macro, linh tinh

6: Biểu tình

7: Giao diện thiết bị và mạng

Khi một lệnh, chức năng hoặc tệp hệ thống được đề cập trong tài liệu Unix, số phần tham chiếu thường được chỉ định trong ngoặc đơn. người đàn ông, ví dụ: "lệnh ls(1) nhằm mục đích hiển thị danh sách các tập tin." Thông thường người đàn ông tìm phần có trợ giúp cần thiết, lần lượt xem qua tất cả các phần, để nhận trợ giúp bằng cách sử dụng lệnh ls chỉ cần nhập

Điều khiển cuộn văn bản:

· <không gian> - xuống trang

· <Đi vào> - xuống dòng

· <Điều khiển>+B- trang lên

· / từ- tìm từ từ

· q- lối ra

Tuy nhiên, đôi khi thuật ngữ bắt buộc có thể nằm ở nhiều phần cùng một lúc ( printf- chức năng lệnh và thư viện); trong trường hợp này người đàn ông sẽ trả về một tài liệu từ phần đầu tiên được tìm thấy. Để lấy tài liệu từ phần khác, hãy sử dụng khóa chuyển -s chương. Để có được danh sách các phần có thuật ngữ bắt buộc xuất hiện, hãy sử dụng phím -l. Công tắc -a hướng dẫn hiển thị lần lượt tất cả các tài liệu tham khảo được tìm thấy từ tất cả các phần.

tvâng lệnh - thông tin đầu ra về loại lệnh

cái mà lệnh - xác định thư mục chương trình nằm ở đâu

2 .3 Các lệnh làm việc với thư mục

pwd - in tên của thư mục hiện tại. Ví dụ:

ls - Hiển thị nội dung thư mục:

$ ls [-switch] [tên thư mục]

Nếu tên thư mục không được chỉ định, nội dung của thư mục hiện tại sẽ được hiển thị. Các phím xác định định dạng đầu ra, ví dụ:

L - hiển thị thông tin đầy đủ về từng tệp;

A - xuất ra danh sách đầy đủ các tệp, bao gồm "." Và "..";

T - sắp xếp danh sách theo thời gian tạo;

C - hiển thị danh sách theo nhiều cột theo thứ tự bảng chữ cái, v.v.

Ví dụ: ls -l

hiển thị danh sách các tệp có thuộc tính của chúng, ví dụ:

ABBBBBBBBB C DDDD EEEEEEEE FFFFF GGGGGGGGGGGG HHHHH- xem bên dưới để biết mô tả về các trường danh sách

A. Loại tệp

- tập tin thông thường;

d thư mục (thực ra, thư mục là một tệp đặc biệt liệt kê các tệp của thư mục đó);

l link tượng trưng (file chứa tên file khác là link tới file đó; chi tiết bên dưới trong lệnh ln );

thiết bị ký tự c (thiết bị thực hiện các thao tác đọc-ghi theo từng byte);

b khối thiết bị (các thao tác đọc-ghi được lưu vào bộ đệm). Một số thiết bị chỉ có ký tự (ví dụ: cổng nối tiếp) và một số thiết bị có cả hai (ví dụ: đĩa).

p pipe (ống; một kênh phần mềm được tổ chức dưới dạng hàng đợi để truyền dữ liệu giữa hai tiến trình).

B. Quyền sử dụng tệp

9 ký tự tiếp theo sau loại tệp thể hiện quyền sử dụng tệp: ba ký tự đầu tiên dành cho người dùng sở hữu tệp, ký tự thứ hai dành cho nhóm chủ sở hữu và ký tự thứ ba dành cho những người khác. Sự hiện diện của một chữ cái trong mỗi bộ ba có nghĩa là sự hiện diện của quyền tương ứng:

đối với các tập tin thông thường:

r - quyền đọc nội dung của file

w - quyền thay đổi nội dung của file

x - quyền thực thi (chạy) file

cho các thư mục:

r - quyền lấy danh sách các tập tin thư mục

w - quyền tạo và xóa file trong thư mục

x - quyền "tìm kiếm" trong thư mục

Quyền --x được đặt cho một thư mục cho phép bạn nhập nó và đọc một tệp có tên được biết trước (miễn là bạn có quyền đọc đối với tệp này). Bạn cũng có thể chạy các lệnh lsls -l cho tập tin này. Đồng thời, lấy danh sách các tập tin ( ls (-l) cho một thư mục) và bạn không thể tạo hoặc xóa một tập tin.

r-- bên phải cho một thư mục cho phép bạn đọc thư mục đó, nghĩa là lấy danh sách tên tệp của nó. Trong trường hợp này, không nhập thư mục cũng như không tìm ra thuộc tính của tệp ( ls -l), tệp cũng không thể đọc được (ngay cả khi bạn có quyền đọc tệp). Đương nhiên, bạn không thể tạo hoặc xóa một tập tin.

Việc sửa đổi tệp yêu cầu quyền ghi vào tệp vì đây là thao tác với tệp. Xóa một tập tin yêu cầu quyền ghi vào thư mục chứa tập tin - đó là một thao tác thư mục. Có quyền ghi vào một tệp không nhất thiết có nghĩa là bạn có thể xóa nó (mặc dù bạn có thể giảm kích thước tệp xuống 0).

C. Số lượng kết nối

Số lượng liên kết cứng (tên) của tệp - xem lệnh bên dưới để biết thêm chi tiết ln . Đối với một thư mục - số lượng thư mục con của nó (ít nhất hai - " . " dấu chấm Và " .. " hai điểm).

D. Người dùng chủ sở hữu tệp

E. Nhóm chủ sở hữu tệp

Nhóm là một tập hợp người dùng được đặt tên; các nhóm được tạo bởi quản trị viên. Mỗi người dùng là thành viên của ít nhất một nhóm. Người dùng sở hữu tệp (sau đây gọi đơn giản là chủ sở hữu) không nhất thiết phải là thành viên của nhóm sở hữu, mặc dù người đó có thể như vậy.

F. Kích thước tệp tính bằng byte

G. Ngày sửa đổi cuối cùng của tập tin

H. Tên tập tin

đĩa CD- thay đổi thư mục (thư mục):

$cd [tên thư mục đầy đủ]

Điều này sẽ làm cho thư mục được chỉ định trở thành thư mục hiện tại. Lệnh cd không có đối số sẽ khôi phục thư mục chính của người dùng làm thư mục hiện tại.

mkdir- tạo thư mục mới:

$ mkdir [-keys] new_directory_name

Để tạo thư mục mới, người dùng phải có quyền ghi vào thư mục mẹ của thư mục hiện tại.

rmdir- xóa thư mục:

$ rmdir thư mục_list

Hệ thống sẽ không cho phép bạn xóa thư mục nếu nó không trống hoặc nếu người dùng không có quyền ghi vào nó. Thư mục hiện tại không được thuộc cây con của thư mục bị xóa

du xác định tổng kích thước của các thư mục hiển thị thông tin về tổng kích thước của các tệp trong thư mục được chỉ định và - theo cách đệ quy - các thư mục con của nó (cộng với kích thước của chính thư mục đó); công tắc -k có nghĩa là dữ liệu được xuất ra tính bằng kilobyte, nếu không thì - ở khối 512 byte. Nếu thư mục không được chỉ định, thư mục hiện tại sẽ được giả sử. Công tắc -s ngăn chặn đầu ra đệ quy của thông tin về các thư mục con - lệnh chỉ báo cáo tổng khối lượng.

cp -R thư mục đích thư mục nguồn. Sao chép đệ quy một thư mục sang thư mục khác

2.4 Các lệnh làm việc với tập tin

chạmtên tập tin thay đổi thời gian sửa đổi cuối cùng của tập tin thành thời gian hiện tại. Tác dụng phụ: nếu tệp không tồn tại, nó sẽ được tạo với kích thước bằng 0.

rm- xóa tập tin (liên kết đến tập tin):

$ rm [-keys] file_list

Lệnh này loại bỏ các tham chiếu tệp (nghĩa là tên tệp cục bộ) nếu người dùng có quyền ghi vào thư mục chứa các tên đó. Nếu tệp bị xóa được bảo vệ chống ghi, lệnh sẽ yêu cầu xác nhận xóa tệp. Phím:

· -i - giới thiệu nhu cầu xác nhận cho từng tệp sẽ bị xóa;

· -f - hủy bỏ yêu cầu xác nhận đối với bất kỳ tập tin nào sẽ bị xóa;

· -r - đặt chế độ xóa đệ quy tất cả các tệp và thư mục con của một thư mục nhất định và sau đó là chính thư mục đó.

Xóa một tập tin thực chất là giảm số lượng tên của nó trong inode đi 1; cuộc gọi hệ thống tương ứng được gọi là hủy liên kết (2). Về mặt vật lý, hệ thống sẽ xóa tệp nếu nó bị đóng và nếu bộ đếm tên bằng 0.

chmod- thay đổi thuộc tính bảo vệ tập tin:

chmod [-R]quyền file_or_directory [file2 ...]

Công tắc -R tùy chọn mở rộng hành động của lệnh một cách đệ quy đến nội dung của các thư mục, nếu có bất kỳ nội dung nào được tìm thấy trong danh sách các tệp được truyền trên dòng lệnh.

Quyềnđược biểu thị bằng một trong hai ký hiệu: số và ký hiệu.

Ký hiệu số lệnhchmod

Tập hợp các quyền được chia thành 4 bộ ba:

và được coi là một trường bit: bit được đặt nếu có quyền tương ứng. Mỗi bộ ba bit được viết dưới dạng số thập phân.

Số 0 đứng đầu có thể được bỏ qua.

Ký hiệu lệnh tượng trưngchmod

Không giống như ký hiệu số, ký hiệu tượng trưng biểu thị những thay đổi về quyền chứ không phải quyền. Ký hiệu bao gồm 3 thành phần, được quy định theo trình tự sau: quyền thay đổi của ai, quyền thay đổi như thế nào và quyền gì.

Thêm quyền ghi vào nhóm:

%tập tin chmod g+w

Xóa quyền ghi âm và biểu diễn của người khác:

%tập tin chmod o-wx

Thêm quyền đọc và ghi cho chủ sở hữu và nhóm:

%tập tin chmod ug+rw

Đặt quyền của người khác giống như nhóm

%tập tin chmod o=g

Đặt quyền của người khác và nhóm giống như chủ sở hữu

%tập tin chmod og=u

Một số thay đổi có thể được liệt kê cách nhau bằng dấu phẩy:

Thêm quyền thực hiện cho người ở xa và xóa quyền viết khỏi nhóm và những người khác:

%tập tin chmod u+x,go-w

con mèo- hợp nhất và xuất tập tin sang thiết bị đầu ra tiêu chuẩn:

$ cat [-keys] [input_file1[input_file2...]]

Lệnh đọc lần lượt các tệp đầu vào được chỉ định, nếu có một vài tệp trong số đó, hãy kết hợp chúng và xuất dữ liệu đã đọc ra luồng đầu ra tiêu chuẩn (trên màn hình). Bằng cách chuyển hướng các luồng (kênh chương trình), lệnh cat có thể được sử dụng để thực hiện nhiều thao tác khác nhau.

cp- Sao chép các tập tin:

$ cp input_file_1 [input_file_2 [...input_file_n]] out_file

Lệnh này có hai chế độ sử dụng:

· Nếu tệp đầu ra là tệp thông thường thì chỉ có thể có một tệp đầu vào; nội dung của nó được sao chép vào tập tin đầu ra. Nếu tệp đầu ra tồn tại thì nội dung cũ của nó sẽ bị mất nhưng các thuộc tính bảo vệ vẫn còn; nếu tệp đầu ra không tồn tại, nó sẽ được tạo và kế thừa các thuộc tính của tệp đầu vào.

· Nếu tệp đầu ra là một thư mục thì tất cả các tệp đầu vào được chỉ định sẽ được sao chép vào đó, nhưng đương nhiên thư mục đó phải được tạo trước.

Ví dụ. Sao chép hai tệp từ thư mục hiện tại sang tệp được chỉ định có cùng tên:

$ cp f1.txt f2.txt ../usr/petr

mv- gửi tập tin:

$ mv input_file_1 [input_file_2 [...input_file_n]] out_file

Sự khác biệt giữa lệnh chuyển tiếp và lệnh sao chép chỉ là các tệp đầu vào sẽ bị hủy sau khi lệnh được thực thi.

Ví dụ. Di chuyển các tệp có phần mở rộng ".c" từ thư mục đã chỉ định sang thư mục hiện tại:

ln quản lý liên kết tượng trưng

Liên kết tượng trưng là một loại tệp đặc biệt chứa tên của tệp khác (trong danh sách ls -l những tập tin như vậy được biểu thị bằng chữ l trong cột đầu tiên). Việc đọc-ghi vào một liên kết tệp thực sự dẫn đến việc đọc-ghi vào tệp mà nó tham chiếu.

Tạo một liên kết tượng trưng:

ln -sfile_link hiện có

Tạo một liên kết cứng nhắc

Trong hệ thống tệp UNIX, tên tệp là một con trỏ tới một nút chứa các thuộc tính của tệp và một mảng địa chỉ của các khối đĩa chứa dữ liệu của tệp. Tuy nhiên, inode không chứa tham chiếu đến tên tệp nên một tệp có thể có nhiều tên. Bộ mô tả chỉ chứa bộ đếm số lượng tên này, giá trị của nó được hiển thị trong cột thứ hai của danh sách ls -l.

Tạo một liên kết cứng là tạo một tên khác tham chiếu đến cùng một nút:

lnhiện_file_name new_file_name

2.5 Lệnh xuất nội dung file

tài liệu tên tập tin [tên tập tin ...]

xác định loại tệp bằng cách phân tích nội dung của nó

con mèotên tập tin

xuất nội dung của tập tin vào thiết bị đầu cuối.

hơntên tập tin

máy nhắn tin (xuất tệp theo từng trang, có điểm dừng).

đuôi [-con số ] tên tập tin

in 10 dòng cuối cùng của tệp hoặc một số được chỉ định

cái đầu [-con số ] tên tập tin

in 10 dòng đầu tiên của tệp hoặc bất cứ thứ gì được chỉ định.

Các lệnh làm việc với tập tin văn bản

grep- tìm kiếm mẫu (chuỗi con) trong tệp:

$ grep [-keys] chuỗi con file_list

Các chuỗi tìm thấy được in ra đầu ra tiêu chuẩn ở định dạng được xác định bởi các phím. Nếu có nhiều tệp thì tên của tệp tương ứng sẽ được hiển thị trước mỗi dòng. Phím:

· -c - hiển thị tên của tất cả các tệp cho biết số dòng chứa mẫu;

· -i - bỏ qua trường hợp (sự khác biệt giữa chữ Latinh viết thường và viết hoa);

· -n - xuất trước dòng số tương đối của nó trong tệp;

· -v - dòng đầu ra không chứa mẫu (đảo ngược đầu ra);

· -l - chỉ xuất ra tên của các tập tin chứa mẫu.

wc- Đếm số dòng, số từ, ký tự trong file:

$ wc [-lwc] [file_list]

Đếm dòng - switch -l, từ - switch -w và ký tự - switch -c (mặc định -lwc). Nếu danh sách tệp trống thì việc đếm sẽ được thực hiện trên luồng đầu vào tiêu chuẩn.

· loại- sắp xếp tập tin:

sắp xếp [-keys] file_list

Lệnh này sắp xếp các tập tin đầu vào thành các dòng theo mã ký tự tăng dần. Phím:

o -r - thứ tự sắp xếp ngược lại;

o -f - bỏ qua sự khác biệt giữa chữ Latinh viết thường và viết hoa

o -n - thứ tự sắp xếp số, v.v.

cmp- đầu ra của vị trí của sự khác biệt đầu tiên:

$ tập tin cmp_1 tập tin_2

In số ký tự và số dòng (trong tệp văn bản) nơi xảy ra sự khác biệt đầu tiên trong tệp đầu vào. Hoạt động với bất kỳ tập tin nào.

khác biệt- đầu ra của tất cả những khác biệt trong các tập tin:

$tệp khác_1 tệp_2

In tất cả các dòng có sự khác biệt giữa các tệp đầu vào. Chỉ hoạt động với các tập tin văn bản.

2.6 Tìm kiếm hệ thống tập tin

Tìm kiếm theo nội dung tập tin ( grep)

Đội

%grep [-inv]chuỗi con tài liệu [ tập tin2 ...]

tìm kiếm chuỗi con được chỉ định trong các tệp được chỉ định. Thực ra grep tìm kiếm không phải một chuỗi ký tự mà tìm kiếm một biểu thức chính quy. Nếu bạn chỉ sử dụng ký tự chữ và số thì không có gì khác biệt. Tuy nhiên, không sử dụng dấu câu hoặc các ký tự đặc biệt khác trừ khi bạn chắc chắn rằng chúng sẽ không được diễn giải theo cách đặc biệt - như siêu ký tự biểu thức chính quy. Biểu thức chính quy sẽ được nghiên cứu sau trong khóa học này. Lệnh in các dòng từ (các) tệp được chỉ định, trong đó tìm thấy dòng được chỉ định chuỗi con. Nếu có nhiều tệp, dòng này đứng trước tên tệp bằng dấu hai chấm.

Các phím chính:

I - bỏ qua sự khác biệt giữa chữ hoa và chữ thường (trên các hệ thống không phải tiếng Nga, nó chỉ hoạt động với bảng chữ cái Latinh),

N - cùng với các dòng, hiển thị số của chúng,

V - dòng đầu ra trong đó Không cái được chỉ định đã được tìm thấy chuỗi con.

Biểu thức chính quy

Biểu thức chính quy là ngôn ngữ để mô tả các mẫu văn bản. Biểu thức thông thường chứa các mẫu ký tự có trong biểu thức văn bản được tìm kiếm và các cấu trúc được xác định bởi các ký tự đặc biệt (siêu ký tự).

Siêu ký tự được sử dụng trong biểu thức chính quy

đầu dòng

kết thúc dòng

bất kỳ ký tự nào được đặt trong dấu ngoặc vuông; để chỉ định một phạm vi ký tự, ký tự đầu tiên và cuối cùng của phạm vi được biểu thị trong dấu ngoặc vuông, phân tách bằng dấu gạch nối

bất kỳ ký tự nào ngoại trừ các ký tự được chỉ định trong dấu ngoặc vuông

bất kỳ ký tự đơn nào

ghi đè ý nghĩa đặc biệt của siêu ký tự sau

chỉ ra rằng mẫu trước đó xảy ra 0 lần trở lên

chỉ ra rằng mẫu trước đó xảy ra chính xác n lần

chỉ ra rằng mẫu trước đó xảy ra ít nhất n lần

chỉ ra rằng mẫu trước đó xảy ra không quá n lần

chỉ ra rằng mẫu trước đó xảy ra ít nhất n và nhiều nhất là m lần

Ví dụ về biểu thức chính quy

tìm kiếm các chuỗi bắt đầu bằng tổ hợp chữ cái "the"

tìm kiếm các chuỗi kết thúc bằng tổ hợp chữ cái "be"

tìm kiếm các chuỗi chứa các tổ hợp chữ cái: "signal", "Signal", "signaL" hoặc "SignaL"

tìm kiếm dòng có dấu chấm

tìm kiếm các chuỗi chứa ký tự "th" ở vị trí thứ 4 và thứ 5

tìm kiếm các chuỗi chứa ký tự "th" ở vị trí thứ 54 và 55

tìm kiếm các chuỗi chứa ký tự "th" ở bất kỳ vị trí nào từ ngày 11 đến ngày 31

tìm kiếm các chuỗi bao gồm 5 ký tự bất kỳ

tìm kiếm các chuỗi bắt đầu bằng chữ "t" và kết thúc bằng chữ "e"

tìm kiếm các chuỗi chứa sự kết hợp: chữ số-chữ hoa

tìm kiếm các chuỗi không chứa số "1" hoặc "2" hoặc "3"

tìm thấy mục lục [sự biểu lộ ... ]

Lệnh thực hiện tìm kiếm đệ quy trong thư mục được chỉ định và các thư mục con của nó. Đối với mỗi tệp, các giá trị logic được chỉ định trên dòng lệnh sẽ được tính toán. biểu thức, được kết hợp bởi "VÀ". Nếu kết quả là TRUE, thì tên tệp (chính xác hơn là đường dẫn đến nó, bắt đầu từ tên được chỉ định trong dòng lệnh mục lục, được in ra đầu ra tiêu chuẩn). Sự vắng mặt của biểu thức luôn là "TRUE" (nghĩa là trong trường hợp này tìm thấy hiển thị đệ quy tên của tất cả các tệp trong một thư mục và các thư mục con của nó).

Biểu thức cơ bảntìm thấy

(Lưu ý: Bên dưới là nơi có tham số số N, bạn có thể đặt dấu cộng hoặc dấu trừ ở phía trước nó và quy tắc sau là hợp lệ: "+ N" có nghĩa là "hơn N", "-N" có nghĩa là "ít hơn N", chỉ là một con số N có nghĩa là “bằng N".)

-tênmẫu tên tệp

đúng nếu tên tệp khớp với mẫu; Bạn có thể sử dụng ký hiệu "*", v.v. trong mẫu. - trong trường hợp này, mẫu phải được đặt trong dấu ngoặc đơn.

-uốnA B C D

đúng nếu quyền của tệp hoàn toàn bằng với quyền được chỉ định ( A B C D); quyền được viết bằng ký hiệu số lệnh chmod.

-uốn-A B C D

đúng nếu quyền truy cập được chỉ định ( A B C D) có sẵn trong tệp; quyền được viết bằng ký hiệu số lệnh chmod.

-kiểuT

đúng nếu loại tệp bằng loại được chỉ định T, Ở đâu T- một trong các ký tự: f (tệp thông thường), d (thư mục), l (liên kết tượng trưng), b hoặc c (khối hoặc thiết bị ký tự), p (đường ống).

-người dùngtên tài khoản

đúng nếu tệp thuộc sở hữu của người dùng được chỉ định.

-nhómtên nhóm

đúng nếu tệp thuộc về nhóm được chỉ định.

-kích cỡN c

đúng nếu kích thước tập tin là N byte (không có ký tự "c", kích thước được diễn giải theo khối 512 byte).

-mtimeN

đúng nếu nội dung của tập tin đã được sửa đổi N ngày trước (tức là N*24 giờ trước).

-một thời gianN

đúng nếu tập tin được truy cập lần cuối N ngày trước (tức là N*24 giờ trước).

-ctimeN

đúng nếu thuộc tính tệp đã được sửa đổi N ngày trước (tức là N*24 giờ trước).

-mới hơntên tập tin

đúng nếu tệp được sửa đổi muộn hơn tệp được chỉ định.

đúng nếu không tìm thấy chủ sở hữu của tệp trong danh sách người dùng (ví dụ: người dùng đã bị xóa nhưng các tệp của anh ta vẫn còn).

-nogroup

đúng nếu không tìm thấy nhóm sở hữu tệp trong danh sách nhóm (ví dụ: nhóm đã bị xóa nhưng các tệp vẫn còn).

Hoạt động "VÀ" một cách rõ ràng.

hoạt động "HOẶC".

dấu ngoặc đơn để nhóm các biểu thức nếu cần thiết (lưu ý sự hiện diện của dấu gạch chéo ngược).

Ví dụ: Tìm tất cả các tệp trong thư mục chính của bạn bắt đầu bằng "a":

%tìm thấy . -tên "a*"

Tìm trong thư mục chính của bạn tất cả các tệp có thể thực thi của chủ sở hữu bắt đầu bằng "a":

%tìm thấy . -name "a*" -perm -0100

2.7 Hệ thống con quản lý công việc

Hệ thống con quản lý công việc được thiết kế để người dùng tương tác làm việc với shell. Nếu shell hỗ trợ hệ thống này ( /usr/bin/jsh, /usr/local/bin/bash), thì người dùng sẽ có thêm cơ hội để thao tác các quy trình đang chạy: di chuyển chúng từ nền trước (nền trước, thực thi tương tác) sang nền (nền) và quay lại, tạm dừng và tiếp tục các quy trình. Mỗi lệnh hoặc đường dẫn được người dùng nhập từ thiết bị đầu cuối được gọi là một công việc. Về mặt quy trình, công việc là một nhóm các quy trình. Mỗi công việc tồn tại ở một trong các trạng thái sau: tương tác (nền trước), nền (nền) hoặc bị treo (đã dừng). Các thuật ngữ này được định nghĩa như sau:

1. Công việc tương tác đang chạy và có quyền truy cập đọc và ghi vào thiết bị đầu cuối điều khiển;

2. công việc nền được thực thi mà không có quyền truy cập vào thiết bị đầu cuối điều khiển, nghĩa là khi cố gắng ghi hoặc đọc từ thiết bị đầu cuối, tất cả các tiến trình trong nhóm sẽ nhận được tín hiệu SIGTTOU hoặc SIGTTIN và sẽ bị treo;

3. công việc bị đình chỉ là công việc ở trạng thái bị tạm dừng do nhận được tín hiệu SIGSTOP, SIGTTIN hoặc SIGTTOU; Các quy trình của công việc bị tạm dừng không được thực thi cho đến khi chúng được đặt ở trạng thái tương tác hoặc nền.

Mỗi công việc do shell khởi chạy sẽ nhận được một số nguyên dương, sau đó được shell theo dõi và sử dụng làm mã định danh cho một công việc cụ thể. Nếu bạn chạy một quy trình (đường ống) ở chế độ nền, shell sẽ hiển thị mã định danh của quy trình đang chạy (nhóm quy trình) và mã số công việc.

Ngoài ra, shell còn theo dõi trạng thái của các công việc "hiện tại" và "trước đó". Công việc hiện tại là công việc được bắt đầu gần đây nhất ở chế độ nền hoặc bị tạm dừng từ trạng thái tương tác. Nhiệm vụ trước đó là nhiệm vụ không hiện tại cuối cùng. Nhiệm vụ hiện tại được đánh dấu trong danh sách các nhiệm vụ bằng dấu cộng, nhiệm vụ trước đó - bằng dấu trừ.

Cú pháp để chỉ định ID công việc là:

mã định danh ở đâu công việc có thể được chỉ định theo một trong các định dạng sau:

Khi hệ thống con quản lý công việc được kích hoạt, các lệnh sau sẽ được thêm vào môi trường người dùng để thao tác công việc:

bg [%công việc ]

Khôi phục việc thực thi một công việc bị tạm dừng bằng cách di chuyển nó vào nền. Nếu ID công việc % công việc

fg [%công việc ]

Khôi phục việc thực thi một tác vụ bị treo, đặt nó ở chế độ tương tác; cũng làm cho công việc chạy ở chế độ nền có tính tương tác. Nếu ID công việc % công việc bị bỏ qua, lệnh sẽ áp dụng cho công việc hiện tại.

công việc [-l] [%công việc ]

Liệt kê các công việc bị tạm dừng hoặc đang chạy ở chế độ nền. Nếu % được chỉ định công việc, báo cáo về một nhiệm vụ cụ thể. Với khóa chuyển -l (chữ cái "el") hiển thị các mã định danh quy trình.

giết[-TÍN HIỆU ] % công việc

Phiên bản công việc của lệnh kill. Lệnh gửi tín hiệu được chỉ định đến các tiến trình của công việc được chỉ định, mặc định là SIGTERM.

Nhấn tổ hợp -Z tạm dừng công việc tương tác hiện tại.

ps- lấy danh sách tất cả các quy trình:

ps [-phím]

o Nếu không có khóa, danh sách các quy trình của người dùng sẽ được hiển thị (ID quy trình, số thiết bị đầu cuối và thời gian bộ xử lý dành cho quy trình). Phím:

hiển thị thông tin về tất cả các tiến trình đang chạy;

-ungười dùng

hiển thị thông tin về các quy trình của người dùng được chỉ định;

danh sách "đầy đủ" (xem bảng bên dưới);

danh sách "dài" (xem bảng bên dưới);

hiển thị nhóm quy trình và số nhận dạng phiên.

Trường đầu ra lệnh ps

Sự miêu tả

Trạng thái đang diễn ra:

- thực hiện ( Trên bộ xử lý),

R- sẵn sàng để khởi động ( Có thể chạy được),

S- đang trong trạng thái ngủ ( đang ngủ),

Z- thây ma ( Thây ma),

T- đã dừng lại ( Đã dừng).

ID của người dùng mà quy trình đang chạy thay mặt họ (có khóa -f tên người dùng được hiển thị)

Xử lý ID

ID tiến trình gốc

ID nhóm quy trình

ID phiên

Mức độ ưu tiên của quy trình (càng cao, càng thấp)

Mức độ ưu tiên tương đối (Số Đẹp)

Kích thước xử lý theo trang (có thể tìm thấy kích thước trang bằng lệnh kích thước trang)

Thời gian bắt đầu quá trình

Thiết bị đầu cuối điều khiển ("?" - dành cho daemon)

Tổng thời gian mà bộ xử lý thực hiện quy trình

Tên quy trình (có khóa -f 80 ký tự đầu tiên của dòng lệnh được in)

*) - trong một cột Phím cho biết phím nào sẽ được trao cho lệnh psđể trường tương ứng xuất hiện ở đầu ra. Đánh dấu " Tất cả" có nghĩa là trường này luôn được hiển thị, kể cả khi chạy lệnh không có phím. Phím -f, -l, -j có thể được sử dụng cùng nhau để tạo ra một đầu ra kết hợp. Phím -f, -l, -j không xác định quy trình nào sẽ hiển thị dữ liệu mà chỉ đặt định dạng đầu ra. Sử dụng các phím để chọn quy trình -EU.

Đội ps cũng có chìa khóa -o(chữ cái "o"), tham số của nó là danh sách các trường đầu ra được phân tách bằng dấu phẩy. Bằng cách này, bạn chỉ có thể chọn các trường bắt buộc cũng như hiển thị dữ liệu quy trình bổ sung không được liệt kê trong bảng trên. Tên các trường cho khóa -o xem trong thư mục người đàn ông.

2.8 Người dùng

Sự hiện diện hay vắng mặt của người dùng trong hệ thống được xác định bởi một mục trong tệp /etc/passwd. Mỗi mục là một dòng bao gồm bảy trường được phân tách bằng dấu hai chấm.

%thêm /etc/passwd

Các trường từ trái qua phải có ý nghĩa như sau:

1. NGƯỜI DÙNG- Tên tài khoản.

2. MẬT KHẨU- trong các phiên bản Unix cũ hơn, mật khẩu được mã hóa của người dùng được lưu trữ trong trường này; trong các phiên bản hiện đại, trường chứa "x" và mật khẩu được mã hóa được lưu trữ trong một tệp /etc/bóng, chỉ có siêu người dùng mới có thể đọc được.

3. UID- ID người dùng là số nguyên dương, 0 dành riêng cho superuser.

4. GID- ID của nhóm người dùng thuộc về.

5. GECOS- nhận xét văn bản tùy ý (thường là họ và tên của người dùng).

6. TRANG CHỦ- thư mục chính của người dùng.

7. VỎ BỌC- shell - một chương trình được khởi chạy để phục vụ phiên người dùng trong hệ thống. Đối với người dùng thông thường, đây là trình thông dịch lệnh.

Nếu người dùng phải là thành viên của nhiều nhóm, thì để thêm người dùng đó vào các nhóm khác, bạn phải chỉ định tên người dùng trong dòng tương ứng của tệp /etc/nhóm.

%thêm /etc/nhóm

Nhóm được chỉ định cho người dùng trong tệp /etc/passwdđược gọi là nhóm chính của người dùng này, các nhóm còn lại mà anh ta được đưa vào theo tệp /etc/nhóm, - sơ trung. Nhóm chính chỉ khác với nhóm thứ cấp ở những điểm sau:

· Khi người dùng tạo một tập tin (và bit SGID của thư mục không được đặt), nhóm chủ sở hữu của tập tin mới sẽ là nhóm chính của người dùng (chủ sở hữu tập tin sẽ là người dùng).

Tài liệu /etc/nhóm do đó thực hiện hai chức năng: thứ nhất, nó xác định tên nhóm và mã định danh; thứ hai, nó cho thấy sự tham gia của người dùng vào các nhóm thứ yếu đối với họ.

Để xác định bạn tham gia vào nhóm nào, bạn cần đưa ra lệnh

Khi người dùng đăng nhập, thư mục hiện tại của họ sẽ trở thành thư mục chính của họ (được chỉ định trong trường HOME trong tệp /etc/passwd). Trước khi hiển thị dấu nhắc dòng lệnh, shell sh thực thi các lệnh được ghi trong file .hồ sơ(bắt đầu bằng dấu chấm) nằm trong thư mục chính của người dùng ( đánh đập thực thi tập tin .bashrc). Tệp này thường chứa các biến môi trường (chủ yếu là biến PATH) và một số tham số phiên.

%thêm .profile

Lưu ý rằng thư mục hiện tại (".") nằm trong danh sách PATH. Hãy chú ý đến lệnh xuất khẩu, đánh dấu biến là "đã xuất", tức là. biến sẽ được chuyển cho các tiến trình con do shell của bạn khởi chạy; nếu không nó sẽ chỉ hiển thị bên trong tiến trình shell.

PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb:/usr/local/bin:/usr/openwin/bin:.

Bạn có thể thay đổi biến PATH một cách nhanh chóng bằng cách thêm một đường dẫn khác vào nó (trong thư mục prog, nơi chứa chương trình hello) như sau:

%PATH=$PATH:./prog

%xuất đường dẫn

%tiếng vang $PATH

(Ký hiệu đô la phía trước tên biến có nghĩa là thay thế giá trị của biến đó trên dòng lệnh.)

2.9 Kênh chương trình và chuyển hướng luồng

UNIX có ba luồng tiêu chuẩn: luồng đầu vào, luồng đầu ra và luồng giao thức chuẩn (luồng lỗi).

Chuyển hướng luồng cho phép bạn thay đổi đầu vào (đầu ra) tiêu chuẩn:

< - изменение источника стандартного ввода;

>, >> - thay đổi bộ thu đầu ra tiêu chuẩn.

Ví dụ :

con mèo > tên tập tin- chuyển hướng đầu ra của chương trình cat sang tên tệp (nếu tệp này tồn tại, nội dung trước đó của nó sẽ bị mất);

con mèo >> tên tập tin- thêm nội dung đầu ra của chương trình cat vào nội dung của tên tệp;

con mèo< filename - tạo đầu vào tiêu chuẩn của chương trình cat từ nội dung của tệp filename.

Luồng tiêu chuẩn - luồng đầu vào, luồng đầu ra và luồng lỗi (luồng giao thức) có số thứ tự cố định - lần lượt là 0, 1 và 2. Những số này (số mô tả luồng) có thể được sử dụng một cách rõ ràng. Ví dụ, ghi lại

tập tin chương trình 1>

tương đương với việc viết

chương trình >tập tin

Để phân biệt tên luồng với tên tệp, ký tự `&" được đặt trước số luồng:

prog >tập tin 2>&1

Điều này chuyển hướng đầu ra tiêu chuẩn sang tệp (>file). Và ngoài ra, các thông báo lỗi cũng sẽ được chuyển hướng đến tệp: viết 2>&1 có nghĩa là chuyển hướng luồng lỗi sang đầu ra tiêu chuẩn, do đó được chuyển hướng đến tệp.

Bình luận: Lệnh được trình thông dịch phân tích cú pháp từ phải sang trái: đầu tiên các luồng được hợp nhất (2>&1), sau đó luồng đầu ra tiêu chuẩn (1) được chuyển hướng đến tệp.

Về vấn đề này, có thể hữu ích khi sử dụng thiết bị giả /dev/null để xóa tất cả các ký tự được nhập vào nó. Điều này được sử dụng khi cần bỏ qua (ngăn chặn) hoàn toàn các luồng đầu ra.

Kênh là một công cụ phần mềm liên kết các tiến trình của hệ điều hành UNIX với bộ đệm I/O. Chạy các tiến trình như

$process_1 | quá trình_2 | ... | quá trình_n

có nghĩa là đầu ra tiêu chuẩn quá trình _1 sẽ được rút ngắn thành đầu vào tiêu chuẩn quá trình _2, đầu ra tiêu chuẩn quá trình _2 sẽ được rút ngắn thành đầu vào tiêu chuẩn quá trình _3, v.v. Trong trường hợp này, một kênh được tạo trước tiên, sau đó tất cả các quy trình được khởi chạy để thực thi cùng một lúc và tổng thời gian thực hiện của chúng được xác định bởi quy trình chậm hơn.

...

Tài liệu tương tự

    Nghiên cứu hệ thống con đầu vào/đầu ra và hệ thống tệp của họ hệ điều hành Windows NT. Phân tích các tính năng của ứng dụng TotalCommander và sự tương tác của nó với hệ thống tệp và hệ thống con I/O. Tương tác của TotalCommander với bộ điều hợp mạng.

    công việc trong phòng thí nghiệm, thêm vào 12/06/2012

    Cấu trúc phân cấp của hệ thống tập tin Unix. Xử lý nhất quán các mảng dữ liệu, khả năng tạo và xóa file, bộ đệm đệm. Bảo vệ thông tin, xử lý các thiết bị ngoại vi dưới dạng tập tin. Cấu trúc bên trong của hệ thống tập tin Unix.

    tóm tắt, được thêm vào ngày 23/03/2010

    Tạo chương trình UNIX để kiểm tra thuộc tính thực thi của tệp cho người dùng hiện tại. Các tính năng của quyền truy cập cho các thư mục. Trình thông dịch lệnh Shell; cú pháp kịch bản chung. Đặt thuộc tính bảo mật cho nhóm người dùng.

    bài tập khóa học, được thêm vào ngày 12/05/2013

    Các tệp IO.SYS và MSDOS.SYS; Bộ xử lý lệnh DOS. Hệ thống đầu vào/đầu ra cơ bản, bộ nạp khởi động, đối thoại người dùng với DOS, các lệnh. Nhược điểm của ngôn ngữ lập trình C++. Tạo và mô tả chương trình cho phép bạn làm việc với các tệp trong môi trường DOS, thuật toán của nó.

    bài tập khóa học, được thêm vào ngày 02/12/2009

    Sử dụng bản phân phối GNU/Linux Mandriva, được coi là một trong những bản phân phối dễ học nhất đối với người dùng mới làm quen, để tương tác với trình thông dịch lệnh GNU/Linux. Thông tin về định dạng và các tùy chọn cơ bản của lệnh cal.

    công việc trong phòng thí nghiệm, thêm vào 28/12/2012

    Thiết kế phần mềm. Sơ đồ hình thành ban đầu của một thư mục tệp, hiển thị thư mục tệp, xóa tệp, sắp xếp tệp theo tên, ngày tạo và kích thước bằng phương pháp chọn trực tiếp. Quản lý một thư mục trong một hệ thống tập tin.

    bài tập khóa học, được thêm vào ngày 08/01/2014

    Lịch sử phát triển của hệ điều hành UNIX, những ưu điểm của nó. Quản lý máy tính chạy UNIX. Giải thích dòng lệnh và cấu trúc hệ thống tập tin. Các lệnh điều khiển quá trình Công cụ quản trị hệ thống và tài khoản người dùng.

    trình bày, thêm vào ngày 12/05/2014

    Chức năng và các thành phần chính của hệ thống lập trình. Công cụ tạo chương trình. Trình dịch ngôn ngữ lập trình. Nguyên lý và các giai đoạn hoạt động của trình biên dịch, chuyển đổi ngôn ngữ lập trình thành mã máy. Cơ chế chuyển đổi thông dịch viên.

    trình bày, thêm vào ngày 07/02/2012

    Nghiên cứu các nguyên tắc cơ bản của thiết kế hệ điều hành. Cấu trúc hệ thống tập tin. Các thành phần cung cấp cách tổ chức, tìm kiếm và quản lý thông tin. Tổng quan ngắn gọn về các tập tin đặc biệt và thông thường. Các lệnh hệ thống UNIX cơ bản.

    sổ tay đào tạo, bổ sung ngày 02/12/2009

    Mô tả hệ thống tập tin Unix. Công việc của các lệnh chính ls, cmp, comm và các phím của chúng. Phát triển một sản phẩm phần mềm chạy trong môi trường Windows và là trình giả lập bộ xử lý lệnh của hệ điều hành Unix. Lựa chọn phương tiện thực hiện.

Trên hầu hết các hệ điều hành Linux, bash là trình thông dịch dòng lệnh mặc định. Để xác định trình thông dịch hiện tại, hãy nhập lệnh sau:

$ echo $VỎ
/bin/bash

Ví dụ này sử dụngtrình thông dịch dòng lệnh bash. Có nhiều trình thông dịch lệnh khác. Để kích hoạt trình thông dịch khác, bạn có thể nhập tên của nó tại dòng lệnh (ksh, tcsh, csh, sh, bash, v.v.).

Hầu hết các hệ điều hành Linux đầy đủ tính năng đều cung cấp tất cả các trình thông dịch lệnh được mô tả ở đây. Nhưng trên các hệ điều hành nhỏ hơn, có thể cung cấp một hoặc hai trình thông dịch.

Kiểm tra tính sẵn có của mặt hàng bạn quan tâmthông dịch viêndòng lệnh

Cách dễ nhất để kiểm tra tính khả dụng của trình thông dịch lệnh quan tâm là nhập tên của nó vào dòng lệnh. Nếu trình thông dịch đã khởi động thì nó sẽ có sẵn.

Có một số lý do để chọn vỏ thay thế.

  • Có kinh nghiệm làm việc trên các hệ thống UNIX System V (nhiều hệ thống sử dụng ksh theo mặc định) hoặc Sun Microsystems và các hệ thống UNIX Berkeley khác (thường sử dụng csh). Trong trường hợp này, việc sử dụng các thông dịch viêndòng lệnhsẽ thuận tiện hơn.
  • Nhu cầu chạy các tập lệnh được tạo cho một trình thông dịch lệnh cụ thể.
  • Khả năng của một lớp vỏ thay thế có thể thích hợp hơn. Ví dụ: một thành viên của nhóm người dùng Linux thích sử dụng ksh hơn vì anh ta không hài lòng với cách bash tạo bí danh.

Mặc dù hầu hết người dùng thích làm việc trong một shell nhưng các kỹ năng thu được sẽ giúp họ học cách làm việc trong các shell khác.thông dịch viên dòng lệnh , thỉnh thoảng xem hướng dẫn tham khảo (ví dụ: sử dụng lệnh manbash). Hầu hết mọi người sử dụng bash vì không có lý do gì để chuyển sang trình thông dịch khác.

Sử dụng Bash và ch

Tên bash là từ viết tắt của Bourne Again SHell. Chữ viết tắt này chỉ ra rằng bash kế thừa trình thông dịch Bourneshell (lệnh sh), được tạo bởi Steve Bourne của AT&TBell Labs. Brian Fox của Tổ chức Phần mềm Tự do đã tạo bash như một phần của Dự án GNU. Sau đó, sự phát triển được chuyển sang tay Chet Ramey tại Đại học Case Western Reserve.

Trình thông dịch bash chứa các tính năng được phát triển cho trình thông dịch sh và ksh trong các phiên bản đầu tiên của UNIX, cũng như một số tính năng của trình thông dịch csh.

Bạn có thể mong đợi rằng trên hầu hết các hệ thống Linux, ngoại trừ các hệ thống chuyên dụng (chẳng hạn như các hệ thống được nhúng hoặc khởi động từ ổ đĩa ngoài), trình thông dịch bash được sử dụng theo mặc định. Các hệ thống chuyên dụng có thể yêu cầu trình thông dịch lệnh nhỏ hơn, điều này cũng có nghĩa là khả năng bị hạn chế.

Hầu hết các ví dụ trong nàybài báođược thiết kế để sử dụng bash.

Trình thông dịch bash có thể chạy ở nhiều chế độ tương thích khác nhau, mô phỏng hoạt động của các shell khác. Nó có thể bắt chước hoạt động của shell Bourne (sh) hoặc shell tuân thủ tiêu chuẩn POSK (bash -tích cực).

Do đó, bash có nhiều khả năng đọc thành công các tệp cấu hình và chạy các tập lệnh được viết riêng cho các shell khác.

Theo mặc định, tất cả các hệ điều hành Linux được cung cấp đều sử dụng trình thông dịch bash, ngoại trừ các hệ điều hành được khởi động từ phương tiện di động sử dụng trình thông dịch tro theo mặc định.

Sử dụng tcsh (và trình thông dịch csh trước đó)

Trình thông dịch lệnh tcsh là một triển khai mã nguồn mở của trình thông dịch Cshell (csh). Trình thông dịch csh do Bill Joy tạo ra và được sử dụng theo mặc định trên hầu hết các hệ thống UNIX của Berkeley (các hệ thống như vậy được phân phối bởi Sun Microsystems).

Nhiều tính năng của csh, chẳng hạn như phương pháp chỉnh sửa dòng lệnh và quản lý lịch sử lệnh, đã được triển khai trong tcsh và các shell khác. Giống như lệnh sh chạy trình thông dịch bash ở chế độ tương thích với sh, lệnh csh chạy trình thông dịch tcsh ở chế độ tương thích với csh.

Sử dụng trình thông dịch tro

Trình thông dịch tro là phiên bản nhẹ của trình thông dịch Berkeley UNIX sh. Nó không chứa nhiều tính năng cơ bản và không cung cấp các tính năng như lịch sử lệnh.

Trình thông dịch tro rất phù hợp để sử dụng trong các hệ thống nhúng có tài nguyên hệ thống hạn chế. Trên hệ điều hành FedoraCore 4, trình thông dịch tro nhỏ hơn một bậc so với trình thông dịch bash.

Sử dụng zsh

Trình thông dịch zsh là một bản sao khác của trình thông dịch sh. Nó tuân thủ POSIX (như bash), nhưng có các tính năng khác, bao gồm kiểm tra chính tả và một cách tiếp cận khác để chỉnh sửa dòng lệnh. Trình thông dịch zsh là trình thông dịch mặc định trên các hệ điều hành MacOS X đời đầu, nhưng các hệ thống hiện đại sử dụng trình thông dịch bash theo mặc định.