Một khái niệm Unix quan trọng là môi trường , được xác định bởi các biến môi trường. Một số do hệ thống thiết lập, một số khác do bạn thiết lập, nhưng một số khác do shell hoặc bất kỳ chương trình nào tải chương trình khác.
Một biến là một chuỗi ký tự mà chúng ta gán một giá trị. Giá trị được gán có thể là số, văn bản, tên tệp, thiết bị hoặc bất kỳ loại dữ liệu nào khác. Ví dụ: đầu tiên chúng tôi đặt một TEST biến và sau đó chúng tôi truy cập giá trị của nó bằng cách sử dụng lệnh echo
$TEST="Unix Programming"
$echo $TEST
Nó tạo ra kết quả sau.
Unix Programming
Lưu ý rằng các biến môi trường được đặt mà không sử dụng dấu $ nhưng trong khi truy cập chúng, chúng ta sử dụng tiền tố dấu $. Các biến này giữ nguyên giá trị của chúng cho đến khi chúng ta ra khỏi shell.
Khi bạn đăng nhập vào hệ thống, shell sẽ trải qua một giai đoạn được gọi là khởi tạo để thiết lập môi trường. Đây thường là một quy trình gồm hai bước liên quan đến việc trình bao đọc các tệp sau:
- / etc / profile
- Hồ sơ
Quá trình này như sau:
- Trình bao kiểm tra xem tệp / etc / profile có tồn tại hay không.
- Nếu nó tồn tại, shell sẽ đọc nó. Nếu không, tệp này sẽ bị bỏ qua. Không có thông báo lỗi nào được hiển thị.
- Trình bao kiểm tra xem tệp .profile có tồn tại trong thư mục chính của bạn hay không. Thư mục chính của bạn là thư mục mà bạn bắt đầu sử dụng sau khi đăng nhập.
- Nếu nó tồn tại, shell sẽ đọc nó; nếu không, shell sẽ bỏ qua nó. Không có thông báo lỗi nào được hiển thị.
Ngay sau khi cả hai tệp này được đọc, trình bao sẽ hiển thị lời nhắc -$
Đây là lời nhắc mà bạn có thể nhập các lệnh để chúng được thực thi.
Lưu ý – Quá trình khởi tạo shell được nêu chi tiết ở đây áp dụng cho tất cả các shell loại Bourne , nhưng một số tệp bổ sung được sử dụng bởi bash và ksh .
Tệp .profile
Tệp / etc / profile được quản trị viên hệ thống của máy Unix của bạn duy trì và chứa thông tin khởi tạo shell mà tất cả người dùng trên hệ thống yêu cầu.
Tệp .profile thuộc quyền kiểm soát của bạn. Bạn có thể thêm bao nhiêu thông tin tùy chỉnh trình bao tùy thích vào tệp này. Bộ thông tin tối thiểu mà bạn cần định cấu hình bao gồm:
- Loại thiết bị đầu cuối bạn đang sử dụng.
- Danh sách các thư mục để định vị các lệnh.
- Danh sách các biến ảnh hưởng đến giao diện của thiết bị đầu cuối của bạn.
Bạn có thể kiểm tra tệp .profile của mình có sẵn trong thư mục chính của bạn. Mở nó bằng trình chỉnh sửa vi và kiểm tra tất cả các biến được đặt cho môi trường của bạn.
Đặt loại thiết bị đầu cuối
Thông thường, loại thiết bị đầu cuối bạn đang sử dụng được tự động cấu hình bởi chương trình đăng nhập hoặc getty . Đôi khi, quá trình cấu hình tự động đoán sai thiết bị đầu cuối của bạn.
Nếu thiết bị đầu cuối của bạn được đặt không chính xác, đầu ra của các lệnh có thể trông lạ hoặc bạn có thể không tương tác với trình bao đúng cách.
Để đảm bảo rằng đây không phải là trường hợp, hầu hết người dùng đặt thiết bị đầu cuối của họ thành mẫu số chung thấp nhất theo cách sau:
$TERM=vt100
$
Đặt PATH
Khi bạn gõ bất kỳ lệnh nào trên dấu nhắc lệnh, trình bao phải xác định vị trí của lệnh đó trước khi nó có thể được thực thi.
Biến PATH chỉ định các vị trí mà shell sẽ tìm kiếm các lệnh. Thông thường, biến Path được đặt như sau:
$PATH=/bin:/usr/bin
$
Ở đây, mỗi mục nhập riêng lẻ được phân tách bằng ký tự dấu hai chấm (:) là các thư mục. Nếu bạn yêu cầu trình bao thực thi một lệnh và nó không thể tìm thấy nó trong bất kỳ thư mục nào được đưa ra trong biến PATH, một thông báo tương tự như sau sẽ xuất hiện:
$hello
hello: not found
$
Có các biến như PS1 và PS2 sẽ được thảo luận trong phần tiếp theo.
Biến PS1 và PS2
Các ký tự mà trình bao hiển thị dưới dạng dấu nhắc lệnh của bạn được lưu trữ trong biến PS1. Bạn có thể thay đổi biến này thành bất kỳ thứ gì bạn muốn. Ngay sau khi bạn thay đổi nó, nó sẽ được sử dụng bởi shell kể từ thời điểm đó. Ví dụ, nếu bạn phát hành lệnh
$PS1='=>'
=>
=>
=>
Lời nhắc của bạn sẽ trở thành =>. Để đặt giá trị của PS1 sao cho nó hiển thị thư mục làm việc, hãy sử dụng lệnh –
=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/dongthoigian/unix]$
[root@ip-72-167-112-17 /var/www/dongthoigian/unix]$
Kết quả của lệnh này là dấu nhắc hiển thị tên người dùng của người dùng, tên máy (tên máy) và thư mục làm việc.
Có khá nhiều trình tự thoát có thể được sử dụng làm đối số giá trị cho PS1; cố gắng giới hạn bản thân ở mức quan trọng nhất để lời nhắc không làm bạn choáng ngợp với thông tin.
Sr.No. | Trình tự thoát & Mô tả |
1 | \ t Thời gian hiện tại, được biểu thị bằng HH: MM: SS |
2 | \ d Ngày hiện tại, được biểu thị là Ngày trong tuần, Ngày trong tháng |
3 | \N Dòng mới |
4 | \S Môi trường shell hiện tại |
5 | \ W Thư mục làm việc |
6 | \ w Đường dẫn đầy đủ của thư mục làm việc |
7 | \ u Tên người dùng hiện tại của người dùng |
số 8 | \ h Tên máy chủ của máy hiện tại |
9 | \ # Số lệnh của lệnh hiện tại. Tăng khi nhập lệnh mới |
10 | \ $ Nếu UID hiệu dụng là 0 (nghĩa là nếu bạn đăng nhập với quyền root), hãy kết thúc lời nhắc bằng ký tự #; nếu không, hãy sử dụng dấu $ |
Bạn có thể tự thực hiện thay đổi mỗi khi đăng nhập hoặc bạn có thể tự động thực hiện thay đổi trong PS1 bằng cách thêm nó vào tệp .profile của mình.
Khi bạn đưa ra một lệnh chưa hoàn thành, trình bao sẽ hiển thị một lời nhắc phụ và đợi bạn hoàn thành lệnh và nhấn Enter lần nữa.
Lời nhắc phụ mặc định là > (dấu lớn hơn), nhưng có thể được thay đổi bằng cách xác định lại biến shell PS2 –
Sau đây là ví dụ sử dụng lời nhắc phụ mặc định:
$ echo "this is a
> test"
this is a
test
$
Ví dụ dưới đây định nghĩa lại PS2 với một lời nhắc tùy chỉnh:
$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$
Các biến môi trường
Sau đây là danh sách một phần các biến môi trường quan trọng. Các biến này được thiết lập và truy cập như được đề cập bên dưới –
Sr.No. | Biến & Mô tả |
1 | TRƯNG BÀY Chứa số nhận dạng cho màn hình mà các chương trình X11 sẽ sử dụng theo mặc định. |
2 | TRANG CHỦ Cho biết thư mục chính của người dùng hiện tại: đối số mặc định cho lệnh cài sẵn cd . |
3 | IFS Cho biết Dấu phân tách trường nội bộ được trình phân tích cú pháp sử dụng để tách từ sau khi mở rộng. |
4 | LANG LANG mở rộng đến ngôn ngữ hệ thống mặc định; LC_ALL có thể được sử dụng để ghi đè điều này. Ví dụ: nếu giá trị của nó là pt_BR , thì ngôn ngữ được đặt thành (Braxin) tiếng Bồ Đào Nha và ngôn ngữ là Braxin. |
5 | LD_LIBRARY_PATH Hệ thống Unix có trình liên kết động, chứa danh sách thư mục được phân tách bằng dấu hai chấm mà trình liên kết động sẽ tìm kiếm các đối tượng được chia sẻ khi xây dựng hình ảnh quy trình sau khi thực thi, trước khi tìm kiếm trong bất kỳ thư mục nào khác. |
6 | ĐƯỜNG DẪN Cho biết đường dẫn tìm kiếm các lệnh. Nó là một danh sách các thư mục được phân tách bằng dấu hai chấm trong đó shell tìm kiếm các lệnh. |
7 | NKT Cho biết thư mục làm việc hiện tại được đặt bởi lệnh cd. |
số 8 | NGẪU NHIÊN Tạo một số nguyên ngẫu nhiên từ 0 đến 32,767 mỗi khi nó được tham chiếu. |
9 | SHLVL Số lần tăng lên mỗi khi một phiên bản bash được bắt đầu. Biến này hữu ích để xác định xem lệnh thoát tích hợp có kết thúc phiên hiện tại hay không. |
10 | KỲ HẠN Đề cập đến kiểu hiển thị. |
11 | TZ Đề cập đến múi giờ. Nó có thể nhận các giá trị như GMT, AST, v.v. |
12 | UID Mở rộng đến ID người dùng số của người dùng hiện tại, được khởi tạo khi khởi động trình bao. |
Sau đây là ví dụ mẫu hiển thị một số biến môi trường
$ echo $HOME
/root
]$ echo $DISPLAY
$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$
Unix / Linux Basic Utilities – In ấn, Email
Trong chương này, chúng ta sẽ thảo luận chi tiết về In ấn và Email như những tiện ích cơ bản của Unix. Cho đến nay, chúng tôi đã cố gắng hiểu Hệ điều hành Unix và bản chất của các lệnh cơ bản của nó. Trong chương này, chúng ta sẽ tìm hiểu một số tiện ích Unix quan trọng có thể được sử dụng trong cuộc sống hàng ngày của chúng ta.
In các tập tin
Trước khi in tệp trên hệ thống Unix, bạn có thể muốn định dạng lại tệp đó để điều chỉnh lề, đánh dấu một số từ, v.v. Hầu hết các tệp cũng có thể được in mà không cần định dạng lại, nhưng bản in thô có thể không hấp dẫn như vậy.
Nhiều phiên bản của Unix bao gồm hai định dạng văn bản mạnh mẽ, nroff và troff .
Lệnh pr
Lệnh pr thực hiện định dạng nhỏ các tệp trên màn hình đầu cuối hoặc đối với máy in. Ví dụ: nếu bạn có một danh sách dài các tên trong một tệp, bạn có thể định dạng tệp đó trên màn hình thành hai hoặc nhiều cột.
Sau đây là cú pháp của lệnh pr :
pr option(s) filename(s)
Pr chỉ thay đổi định dạng của tệp trên màn hình hoặc trên bản in; nó không sửa đổi tệp gốc. Bảng sau liệt kê một số tùy chọn pr :
Trước khi sử dụng pr , đây là nội dung của một tệp mẫu.
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$
Hãy sử dụng lệnh pr để tạo báo cáo hai cột với tiêu đề Nhà hàng
$pr -2 -h "Restaurants" food
Nov 7 9:58 1997 Restaurants Page 1
Sweet Tooth Isle of Java
Bangkok Wok Big Apple Deli
Mandalay Sushi and Sashimi
Afghani Cuisine Tio Pepe's Peppers
........
$
Lệnh lp và lpr
Lệnh lp hoặc lpr in tệp ra giấy thay vì hiển thị trên màn hình. Khi bạn đã sẵn sàng với việc định dạng bằng lệnh pr , bạn có thể sử dụng bất kỳ lệnh nào trong số các lệnh này để in tệp của mình trên máy in được kết nối với máy tính của bạn.
Quản trị viên hệ thống của bạn có thể đã thiết lập một máy in mặc định trên trang web của bạn. Để in tệp có tên thực phẩm trên máy in mặc định, hãy sử dụng lệnh lp hoặc lpr , như trong ví dụ sau:
$lp food
request id is laserp-525 (1 file)
$
Lệnh lp hiển thị một ID mà bạn có thể sử dụng để hủy lệnh in hoặc kiểm tra trạng thái của nó.
- Nếu bạn đang sử dụng lệnh lp , bạn có thể sử dụng tùy chọn -n Num để in Num số bản sao. Cùng với lệnh lpr , bạn có thể sử dụng – Num cho tương tự.
- Nếu có nhiều máy in được kết nối với mạng chia sẻ, thì bạn có thể chọn một máy in sử dụng tùy chọn máy in -d cùng với lệnh lp và cho cùng mục đích, bạn có thể sử dụng tùy chọn máy in -P cùng với lệnh lpr. Đây là tên máy in.
Lệnh lpstat và lpq
Lệnh lpstat hiển thị những gì trong hàng đợi máy in: ID yêu cầu, chủ sở hữu, kích thước tệp, thời điểm công việc được gửi để in và trạng thái của yêu cầu. Sử dụng lpstat -o nếu bạn muốn xem tất cả các yêu cầu đầu ra không chỉ của riêng bạn. Các yêu cầu được hiển thị theo thứ tự sẽ được in
$lpstat -o
laserp-573 john 128865 Nov 7 11:27 on laserp
laserp-574 grace 82744 Nov 7 11:28
laserp-575 john 23347 Nov 7 11:35
$
Lpq cung cấp thông tin hơi khác so với lpstat -o
$lpq
laserp is ready and printing
Rank Owner Job Files Total Size
active john 573 report.ps 128865 bytes
1st grace 574 ch03.ps ch04.ps 82744 bytes
2nd john 575 standard input 23347 bytes
$
Tại đây dòng đầu tiên hiển thị trạng thái máy in. Nếu máy in bị tắt hoặc hết giấy, bạn có thể thấy các thông báo khác nhau trên dòng đầu tiên này.
Lệnh hủy và lệnh lprm
Lệnh hủy kết thúc yêu cầu in từ lệnh lp . Lệnh lprm kết thúc tất cả các yêu cầu lpr . Bạn có thể chỉ định ID của yêu cầu (hiển thị bằng lp hoặc lpq) hoặc tên của máy in.
$cancel laserp-575
request "laserp-575" cancelled
$
Để hủy bất kỳ yêu cầu nào hiện đang in, bất kể ID của yêu cầu đó là gì, chỉ cần nhập hủy và tên máy in
$cancel laserp
request "laserp-573" cancelled
$
Lệnh lprm sẽ hủy bỏ công việc đang hoạt động nếu nó thuộc về bạn. Nếu không, bạn có thể cung cấp số công việc làm đối số hoặc sử dụng dấu gạch ngang (-) để xóa tất cả công việc của mình
$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$
Lệnh lprm cho bạn biết tên tệp thực tế đã bị xóa khỏi hàng đợi máy in.
Gửi email
Bạn sử dụng lệnh Unix mail để gửi và nhận thư. Đây là cú pháp để gửi một email
$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr
Dưới đây là các tùy chọn quan trọng liên quan đến lệnh mail −s
Sr.No. | Tùy chọn & Mô tả |
1 | -S Chỉ định chủ đề trên dòng lệnh. |
2 | -c Gửi các bản sao carbon đến danh sách người dùng. Danh sách phải là danh sách tên được phân tách bằng dấu phẩy. |
3 | -b Gửi các bản sao mù carbon vào danh sách. Danh sách phải là danh sách tên được phân tách bằng dấu phẩy. |
Sau đây là một ví dụ để gửi một tin nhắn thử nghiệm đến admin@yahoo.com.
$mail -s "Test Message" admin@yahoo.com
Sau đó, bạn phải nhập tin nhắn của mình, theo sau là “control-D” ở đầu dòng. Để dừng, chỉ cần gõ dấu chấm (.) Như sau:
Hi,
This is a test .
Cc:
Bạn có thể gửi một tệp hoàn chỉnh bằng toán tử redirect < như sau:
$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt
Để kiểm tra email đến trong hệ thống Unix của bạn, bạn chỉ cần nhập email như sau:
no email