Thứ Năm, 19 tháng 1, 2017

[Linux]Bài 2: Công cụ soạn thảo văn bản và chuyển hướng kết xuất trong Linux

1. Cách dùng gedit
 Gõ lệnh gedit để chuyển sang màn hình của phần mềm soạn thảo gedit

2. Cách dùng nano
Nano được dùng nhiều do dễ sử dụng, gọn nhẹ.
Cài đặt nano 
yum install nano
Bắt đầu làm việc với nano
nano file_name

Tiến hành sử dụng nano với các chú thích
Chú ý:  ^ là tương ứng Ctrl ở dưới màn hình.
Một số lệnh quen thuộc
Ctr+O : Lưu thay đổi
Ctr+X: Thoát khỏi nano
Ctr+K: Cắt một dòng
Ctr+U: Paste dòng đó
Alt+A hoặc Ctrl+6: Lựa chọn nhiều dòng
Ctr+W: Tìm kiếm
Ctr+c: Hiển thị dòng hiện tại

3.Cách dùng vi
vi là một phần mềm soạn thảo nổi tiếng nhất của hệ điều hành linux. Tuy khó sử dụng nhưng đây là một công cụ rất mạnh để soạn thảo văn bản. Trong vi có 2 chế độ làm việc là comand mode và insert mode. Để thêm dữ liệu hay gõ thêm dữ liệu thì dùng insert mode còn comand mode dùng để chỉnh sửa file một cách nhanh tróng.
Cách dùng
- Mở file, tạo file bằng vi

   vi file_name ( Chỉnh sửa 1 file đã có sẵn)
    vi  new_file_name (Tạo mới một file)

- Thêm text 

     i        Thêm text vào bên trái của con trỏ
     a        Thêm text vào bên phải của con trỏ

- Di chuyển con trỏ trên màn hình
 
     h     Di chuyển con trỏ sang trái
     j      Di chuyển con trỏ xuống dưới
     k     Di chuyển con trỏ lên trên
     l      Di chuyển con trỏ sang phải

Ngoài ra có thể dùng phím lên xuống của bàn phím có sẵn

- Lệnh chỉnh sửa thường dùng

      x            Xóa ký tự. Gõ lệnh ở bên trái ký tự
     nx           Xóa n ký tự . Gõ lệnh ở bên trái ký tự đầu tiên
     X            Xóa ký tự nằm bên trái con trỏ
     dw          Xóa một từ. Gõ lệnh ở bên trái của từ cần xóa
     ndw        Xóa n từ . Gõ lệnh ở bên trái của từ đầu tiên.
     dd           Xóa một dòng.
     ndd         Xóa n dòng từ dòng chứa con trỏ xuống.
     D            Xóa toàn bộ ký tự từ con trỏ tới cuối của file.
     r              Thay thể từ đang được con trỏ trỏ tới.
     cw           Thay thế 1 từ.
     ncw         Thay thế n từ
     C              Thay thế toàn bộ ký tự từ con trỏ tới cuối cùng của file
     o               Chèn một khoảng trắng xuống dưới để chuyển đến dòng mới tiếp theo
     O              Chèn một khoảng trắng lên trên để bắt đầu dòng mới trên dòng chứa con trỏ
     u               Undo thay đổi gần nhất
     U              Undo thay đổi dòng hiện tại
     yy             Copy 1 dòng
     p                Paste

- Di chuyển trong file 

  w                Di chuyển qua từng từ
  b                 Di chuyển trở lại theo từng từ
  $                 Cuối của dòng
  O                Bắt đầu một dòng
  H                Trở về dòng đầu tiên của màn hình
  L                 Dòng ở giữa màn hình
  G                 Dòng cuối cùng của file
  1G              Dòng đầu tiên của file
   nG              Dòng thứ n của file
 n |                 Cột thứ n của file
? key              Tìm kiếm key

- Đóng file

ZZ             Save và quit
:w               Save file
:q!               Không lưu thay đổi và quit

4.Chuyển hướng nhập, xuất

       Ngoài việc dùng nhập thông tin từ bàn phím và hiển thị thông tin bằng màn hình thì có thể sử dụng file để lấy dữ liệu hay xuất dữ liệu ra do đó cần có sự chuyển đổi hướng nhập, xuất.

a. stdin

  Ký hiệu:  <
  Dùng để thay đổi đầu vào từ chế độ gõ từ bàn phím thành chế độ nhập bằng file.
  VD:  cd < home.txt

b.stdout

  Ký hiệu: >   hoặc 1>
  Dùng để thay đổi đầu ra là từ chế độ hiển thị ra màn hình thành lưu kết quả ra file. File đã tồn tại thì file đó sẽ bị xóa hết nội dung rồi mới ghi vào, nếu chưa tồn tại file được tạo mới
 
  Ký hiệu: >> hoặc 1>>
  Dùng để thay đổi đầu ra là từ chế độ hiển thị ra màn hình thành lưu kết quả ra file. File đã tồn tại thì sẽ ghi nội dung sau nội dung đã có, nếu chưa tồn tại tạo file mới

Ký hiệu: |
Thay đổi đầu ra là chế độ mặc định sang là đầu vào của stdin
c.stderr

  Ký hiệu: 2>
  Dùng để in thông báo lỗi thay vì ra màn hình như mặc định thì thông báo sẽ được lưu vào file. File đã tồn tại thì file đó sẽ bị xóa hết nội dung rồi mới ghi vào, nếu chưa tồn tại file được tạo mới.

 Ký hiệu: 2>>
 Dùng để in thông báo lỗi thay vì ra màn hình như mặc định thì thông báo sẽ được lưu vào file. File đã tồn tại thì thông báo sẽ được ghi vào sau nội dung đã có, nếu chưa tồn tại file được tạo mới.

 Ký hiệu: 2>&1
Thay stderr chuẩn thành stdout




5. Thực hành

Bài 1: Thực hành nano

Tạo file /tmp/diem.txt có tối thiểu 20 dòng với các yêu cầu sau:
Mỗi dòng có 5 trường thể hiện các nội dung về (Tên, Giới tính, Điểm 1, Điểm 2, Điểm Tổng)
Tổng = Điểm 1 + Điểm 2 (các giá trị này là nguyên dương)
Tên không giống nhau với mỗi dòng và không bao gồm dấu cách.
Lưu ý, Tên chứ không phải Họ và Tên . Mỗi trường cách nhau bằng đúng một dấu cách, mỗi dòng có đúng 4 dấu cách . Giới tính có hai loại là nam và nữ . Tất cả các ký tự trong file đều là chữ thường, không có dấu.   Copy file /root/install.log thành file /tmp/nano.txt Sử dụng lệnh nano thực hiện 1 số thao tác soạn thảo file trên, di chuyển trong nội dung file, ghi file sau khi soạn thảo, sau đó ghi thành file mới có tên /tmp/vi.txt

Bài làm


nano /tmp/diem.txt
Gõ  vào các dòng: như theo yêu cầu
Ctrl+O
Ctrl+X

cp /root/install.log /tmp/nano.txt
nano /tmp/nano.txt
Ctrl+O
Thay đổi tên thành /tmp/vi.txt
Ctrl+X

Bài 2: Thực hành vi 

Chạy lệnh vi, sau đó mở file /tmp/vi.txt của bài trước.
Di chuyển đến đầu/cuối file, sau đó di chuyển đến dòng thứ 234 tính từ đầu file, rồi tiếp tục di chuyển đến dòng có vị trí khoảng 70%.

Tìm từ “lib” đầu tiên trong file, sau đó tìm lên trên 3 từ rồi tìm ngược lại 1 từ. Thay thế tất cả các từ “rpm” thành RPM.

Ghi file đang soạn thảo thành file /tmp/mcedit.txt

Bài làm
vi /tmp/vi.txt
H  : di chuyển đến đầu file
G  : di chuyển đên cuối file
234G: di chuyển đến dòng thứ 234 
70%: di chuyển đến dòng thứ 70%
/lib
N N N
n
:%s/rmp/RPM/g
:w /tmp/mcedit.txt

Bài 3: Thực hành mcedit

Chạy lệnh mcedit /tmp/mcedit.txt để mở file đã tạo trước đó. Thực hiện đánh dấu 1 khối từ dòng 30 đến dòng 35. Copy khối 3 lần tại chỗ sau đó di chuyển tới dòng cuối cung và di chuyển khối đang đánh dấu đến đó. Hủy đánh dấu khối. Ghi lại file thành /tmp/end.txt
Bài làm

mcedit /tmp/mcedit.txt

Bài 4:

Chạy lệnh sau cat > /tmp/new.txt gõ một số đoạn ký tự có xuống dòng rồi nhấn Ctrl+D để kết thúc nhập. Giải thích các thao tác trên

Tạo file sum.sh có nội dung như sau:

echo –n “Nhap A: ”; read A

echo –n “Nhap B: ”; read B

echo “A + B = $(($A + $B))";

Sau đó thực hiện các lệnh sau để chạy file mới tạo

chmod a+x sum.sh

./sum.sh


Nhập A, B bằng bàn phím để tính A + B. Sau đó tạo file input.txt có nội dung như sau (lưu ý có 3 dòng, dòng thứ 3 trống)

16

27

Sau đó chạy lệnh sau để kiểm tra chuyển hướng đầu vào (stdin)

./sum.sh < input.txt

Bài làm

cat >/tmp/new.txt 
Sẽ lấy dữ liệu nhập ở màn hình lưu vào file new.txt ở thư mục tmp
Lệnh Ctrl+D để thoát chế độ nhập

touch sum.sh   Tạo file sum.sh

Bài 5: Thực hành chuyển hướng kết xuất (2) 

Chạy lệnh sau để đảm bảo không có file nofile rm –f nofile sau đó lần lượt chạy các lệnh sau

cat nofile > output.txt 2>&1

cat nofile 2>&1 > output.txt

Hãy giải thích các hiện tượng diễn ra trên màn hình và nội dung file output.txt
Bài làm

cat nofile>output.txt 2>&1 
Câu lệnh này không in ra màn hình mà cả STDOUT và STDERR đều được đưa vào file output.txt
Còn câu lệnh 
cat nofile 2>&1 >output.txt 
chỉ in ra màn hình .Cụ thể STDOUT  tới output.txt trước ra màn hình rồi sau đó mới STDERR cái vừa STDOUT vào file output.txt, 

Bài 6:  Thực hành chuyển hướng kết xuất (3) 

Sử dụng lệnh adduser test để tạo người dùng test, hãy kết hợp hai lệnh echo và passwd để thay đổi mật khẩu của người dùng này chỉ cần 1 lần nhấn Enter

Biết A là biến chứa một số nguyên dương. Hãy kết hợp giữa hai lệnh head và tail để hiện thị dòng thứ A trong file /var/log/messages (không cần kiểm tra A có lớn hơn số dòng trong file không)

Hãy hiển thị tất cả các dòng không có từ nologin trong /etc/passwd

Bài làm
adduser test
passwd
 nhập password mới vào
tail -n $A /var/log/messages
grep -v "nologin" /etc/passwd



Bài 7: Thực hành chuyển hướng kết xuất (4)

Hiển thị danh sách trong file /tmp/diem.txt theo thứ tự tăng dần của Tên

Hiển thị danh sách trên theo tứ tự tăng dần của Tổng điểm

Đếm số bạn nam, nữ trong file

Tạo thêm file /tmp/ds.txt có hai trường Tên, Ngày sinh có số dòng và Tên như trong file /tmp/diem.txt. Hãy tạo file /tmp/full.txt chứa nội dung hai file trước nhưng cột Ngày sinh nằm sau cột Giới tính

Bài làm
cat diem.txt | sort -n -k 1
cat diem.txt | sort -n -k 5
cat diem.txt | grep ' nu ' | wc -l
cat diem.txt | grep ' nam ' | wc -l
join -1 1 -o 1.1 1.2 1.3 1.4 1.5 diem.txt ds.txt >full.txt


Bài 8: Thực hành chuyển hướng kết xuất (5)

Sử dụng lệnh sed để thay đổi các từ Install trong file /tmp/mcedit.txt thành INSTALL

Tạo file /tmp/backup là nội dung file /etc/passwd nhưng tất cả các chữ thường đã được chuyển thành chữ hoa.


Bài làm

sed 's/Install/INSTALL' /tmp/mcedit.txt
sed -e 's/\(.*\)/\U\1/' /tmp/diem.txt >/tmp/backup.txt
 tr tranform
cat /tmp/backup | tr  a-z A-Z

Bài 9: Thực hành chuyển hướng kết xuất (6)

Biết lệnh ps sẽ hiển thị các tiến trình trong bộ nhớ, hãy hiển thị một danh sách 10 tiến trình chiếm nhiều CPU nhất theo dạng 2 cột (PID, %CPU) và sắp xếp theo thứ tự giảm dần của CPU.

Thực hiện như trên nhưng thay tỷ lệ dùng CPU thành tỷ lệ dùng RAM

Bài làm


Tham khảo thêm:
http://thuthuatvietnam.com/huong-dan-su-dung-text-editor-vi-trong-linux.html
https://www.washington.edu/computing/unix/vi.html
http://uet.vnu.edu.vn/~thanhld/lects/netos/Tuan%203%20-%20editor%20&%20io%20redirect_new.html
http://www.tranngocquan.tk/2011/07/su-dung-lenh-tr-va-uniq-trong-linux.html


Không có nhận xét nào:

Đăng nhận xét