- vừa được xem lúc

Introduction to Shell

0 0 9

Người đăng: Lê Huỳnh Đức

Theo Viblo Asia

1. Thao tác với file

- Để biết bạn đang ở đâu trong hệ thống file:

pwd

+ Nếu đường dẫn bắt đầu bằng '/' thì nó là đường dẫn tuyệt đối (absolute)

ls /home/repl/course.txt

+ KHÔNG bắt đầu bằng '/' thì nó là đường dẫn tương đối (relative)

ls course.txt

  • Đang ở /home/repl

  • Nếu gõ cd seasonal -> sẽ chuyển đến /home/repl/seasonal

  • Nếu gõ cd .. -> sẽ chuyển về /home

    • Copy $ cp seasonal/summer.csv backup/summer.bck // Chuyển file summer.csv từ seasonal sang backup

$ cp seasonal/spring.csv seasonal/summer.csv backup // Chuyển file spring.csv và summer.csv vào folder backup

+ Move: di chuyển

$ mv seasonal/spring.csv seasonal/summer.csv backup

+ Remove: xóa

$ rm thesis.txt backup/thesis-2017-08.txt // Xóa cả file thesis.txt và backup/thesis-2017-08.txt

** Để tránh xóa nhầm, có cách sau dùng để xóa các folder trống: rmdir hoặc -r

+ Tạo thư mục mới

$ mkdir tên_thư_mục

2. Thao tác với dữ liệu

  • Để đọc nội dung trong file: cat địa_chỉ VD: cat course.txt

  • Nếu file có độ dài lơn thì có thể dùng: less địa_chỉ -> sẽ chia file thành các phần nhỏ sau đó nhấn: space -> xuống trang dưới :n -> chuyển sang tệp tiếp theo :q -> thoát

  • Để in ra 10 dòng đầu của file head địa_chỉ

  • Khi gõ vài từ đầu của địa_chỉ sau đó ấn tab thì shell sẽ tự động hoàn thiện lệnh VD: gõ cd sea -> ấn tab -> cd seasonal/

  • head -n seasonal/summer.csv // Thay n bằng một số -> nó sẽ in ra n dòng đầu tiên

  • ls -R -F /home/repl ls -F -R /home/repl ls -R /home/repl ls -F /home/repl // Tìm hiểu thêm sự khác biệt của 4 lệnh trên

  • Để xem cách sử dụng, cú pháp của một từ khóa: man ... VD: man tail

  • cut -b 1,2,3 state.txt And Aru Ass Bih Chh

  • Để lặp lại bước đã thực hiện -> sử dụng ! VD: !head summer.csv

  • Kiểm tra lịch sử dùng lệnh: history

  • Để tìm kiếm các từ, cụm từ: grep VD: grep bicuspid winter.csv tìm các dòng có từ bicuspid trong winter.csv

  • grep đi với các flag: -c : in số lượng dòng phù hợp (count) -h : không in tên file khi tìm kiếm nhiều file -i : bỏ qua các trường hợp (VD: 'Regression' và 'regression' là như nhau) -l : in tên các tệp có kết quả trùng/không trùng khớp -n : in số dòng cho các dòng phù hợp -v : chỉ hiển thị các dòng không khớp

VD: Tìm kiếm $ grep 07-1 seasonal/spring.csv 2017-07-10,incisor 2017-07-16,bicuspid

  • Lưu file head -n 5 seasonal/summer.csv > top.csv // Lưu 5 dòng đầu trong summer.csv vào top.csv

  • Các ký hiệu quan trọng

    • giúp rút ngắn thời gian và tránh sót VD: cut -d , -f 1 seasonal/* hoặc: cut -d , -f 1 seasonal/*.csv

    ? thay thế 1 ký tự (giống _ trong SQL) VD: 201?.txt -> 2017.txt hoặc 2018.txt hoặc ...

    [...] khớp với bất kỳ ký tự nào trong đó VD: 201[78].txt khớp với 2017.txt hoặc 2018.txt, nhưng không khớp với 2016.txt

    {...} khớp với bất kỳ ký từ nào phân cách bằng dấu phẩy VD: {*.txt, *.csv} khớp với *.txt, *.csv nhưng không khớp với .pdf

  • Sắp xếp sort Các cờ: -n : sắp xếp theo số -r : sắp xếp từ lớn đến bé -b : bỏ qua các khoảng trống ở đầu -f : không phân biệt chữ hoa/thường

$ cut -d , -f 2 seasonal/winter.csv | grep -v Tooth | sort | uniq -c 4 bicuspid 7 canine 6 incisor 4 molar 4 wisdom

-> Sắp xếp -> count distinct của từng loại rồi in ra

$ wc -l seasonal/*.csv 21 seasonal/autumn.csv 24 seasonal/spring.csv 25 seasonal/summer.csv 26 seasonal/winter.csv 96 total

  • Shell lưu trữ thông tin thế nào Variable Purpose Value

HOME User's home directory /home/repl PWD Present working directory Giống lệnh pwd SHELL Which shell program is being used/bin/bash USER User's ID repl

** Shell lưu trữ 2000 lệnh cũ

  • Đặt giá trị cho biến: testing=seasonal/winter.csv ** Lưu ý: Không được để dấu " " trước hoặc sau dấu =

  • Vòng lặp: Cấu trúc: for …variable… in …list… ; do …body… ; done VD: for filetype in gif jpg png; do echo $filetype; done

-> in ra: gif jpg png

VD2: for i in people/*; do echo $i; done

-> in ra: people/agarwal.txt people/bfc.txt

nano tên_file : sử dụng để chỉnh sửa file Ctrl + K: xóa dòng Ctrl + U: un-delete dòng vừa xóa Ctrl + O: lưu file Ctrl + X: exit khỏi editor

cp seasonal/s* ~ // copy seasonal/s* vào thư mục chính

  • Để chạy file, có thể lưu trữ lệnh trong shell bằng cách tạo file .sh VD: nano headers.sh // tạo file

  • Khi chạy, chỉ cần nhập: bash headers.sh

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu về lập trình Shell

Mình đã suy nghĩ rất nhiều về việc lựa chọn chủ đề cho bài viết này. Thực sự là có rất nhiều chủ đề hay ho song để bạn đọc có thể dễ dàng setup và thực hành theo thì không phải chủ đề nào cũng phù hợp

0 0 96

- vừa được xem lúc

Bắt đầu với Lập trình Shell

Mặc dù chúng ta đã quá quen với shell script. Nhưng sau đây, tôi vẫn muốn giới thiệu về cách để viết 1 shell script cho những bạn đang cần nó.

0 0 92

- vừa được xem lúc

Cài Oh My Zsh, Powerlevel10k, tối ưu và sử dụng phím tắt cho Terminal

1.Mở đầu. . .

0 0 35

- vừa được xem lúc

Cài đặt Oh-my-zsh và cấu hình zsh-autosuggestions

Giới thiệu Zsh và Oh-my-zsh. .

0 0 51

- vừa được xem lúc

Phần kết: Xây dựng hệ thống thi lập trình trực tuyến

Mở đầu. Sau hai phần trước em, chưa hài lòng về hệ thống hiện tại em tiếp tục đi tìm các hướng đi mới.

0 0 15

- vừa được xem lúc

Java Webshell - Part 1: Một vài phương pháp tạo ra JSP Webshell

Đối với những người làm security, chúng ta hẳn đã khá quen thuộc với khái niệm webshell. Đó là một file chứa code có khả năng nhận đầu vào từ request, sau đó thực hiện shell command trên hệ thống và t

0 0 17