Useful Linux command
TIL
720
Male avatar

Minh Hiền viết ngày 05/12/2018

1. Thao tác trên tập tin và thư mục trong hệ thống

Một số dòng lệch hữu ích giúp thao tác trên tập tin và thư mục trong Terminal.

ls : liệt kê tất cả các tập tin có thể nhìn thấy trong thư mục hiện hành.

$ ls .*

liệt kê tất cả các tập tin bao gồm cả tập tin ẩn bắt đầu bằng “.” như .bashrc, nếu “.” được thay bằng kí tự “a” bất kì, khi đó chỉ liệt kê các tập tin bắt đầu bằng kí tự “a”.

$ ls */*

liệt kê tất cả các tập tin trong thư mục con đầu tiên.

$ ls path/

liệt kê tất cả các tập tin trong thư mục mà đường dẫn (path) chỉ tới.

$ ls -ltrh

liệt kê tập tin với các thông số (l), nếu có (t) các tệp tin sắp xếp theo thứ tự ngày chỉnh sửa, nếu có (r) thứ tự các tập tin sẽ được đảo ngược, nếu có (h) các tập tin được liệt kê với dung lượng theo đơn vị (GB/MB/KB).

cd : Thay đổi thư mục.

$ cd ~/

di chuyển tới thư mục “home”.

$ cd -

quay về thư mục trước đó.

$ cd ../

di chuyển tới thư mục trên (thư mục bao gồm thư mục hiện hành).

$ cd path/

di chuyển tới thư mục mà đường dẫn (path) chỉ tới.

mkdir : Tạo thư mục mới.

pwd : Xem đường dẫn của thư mục hiện hành.

ln: Tạo liên kết mới cho thư mục.

Giả sử bạn có một đường dẫn dài để chỉ tới thư mục “intel” như sau:

/usr/local/source/file/compiler/bin/intel/

bạn muốn tạo một đường dẫn ngắn gọn hơn để dễ thao tác trong như mục hiện hành. Dòng lệnh thực hiện như sau:

 ln -s  /usr/local/source/file/compiler/bin/intel/ abc

Khi đó bạn đã tạo ra một thư mục con abc/ trong thư mục hiện hành mà liên kết với thư mục intel. Khi đó đường dẫn abc/ là tương đương với đường dẫn

/usr/local/source/file/compiler/bin/intel/

Muốn xóa đường dẫn này đi bạn sử dụng lệnh rm (bên dưới).

du : Xem dung lượng thư mục và file.

$ du -sh

xem dung lượng của thư mục hiện hành.

$ du -ah

xem dung lượng của tất cả các file và thư mục con trong thư mục hiện hành.

$ du -h --max-depth=1

xem dung lượng của tất cả các thư mục con trong thư mục hiện hành.

cp/mv : Sao chép hoặc di chuyển tệp tin từ nơi này đến nơi khác.

$ cp a1.txt path/ hoặc $ mv a1.txt path/

sao chép hoặc di chuyển tập tin a1.txt tới thư mục đường dẫn chỉ tới.

$ cp -i a1.txt a2.txt hoặc $ mv -i a1.txt a2.txt

nếu có (i), khi đó nếu tập tin a2.txt tồn tại, nó sẽ hỏi bạn có ghi đè lên không.

$ cp -f a1.txt a2.txt hoặc $ mv -f a1.txt a2.txt

ghi đè ngay cả tập tin a2.txt tồn tại.

$ cp -r path1/ path2/ hoặc $ mv -r path1/ path2/

sao chép hoặc di chuyển tất cả các tập tin trong thư mục 1 tới tới thư mục 2.

find: Tìm kiếm sử dụng tên thư mục.

$ find ./ -type d -name httpdocs

tìm kiếm tất cả các thư mục có tên là “httpdos” trong thư mục hiện hành.

rm : Xóa tệp tin hoặc thư mục.

$ rm -i a1.txt

nếu có (i), sẽ hỏi có xóa hay không.

$ rm -f path/

xóa toàn bộ thư mục.

$ rm -f `find path/ -name "a"`

xóa toàn bộ file có tên là a được tìm thấy trong thư mục bạn chọn.

vi/nano : Chỉnh sửa hoặc xem tập tin.

$ nano a1.txt hoặc vi a1.txt

(nano) được sử dụng khi cần chỉnh sửa nhanh chóng và đơn giản. Trong khi đó (vi) có nhiểu câu lệnh cho các chỉnh sửa phức tạp hơn. Tham khảo thêm về vi và nano.

tail : Hiển thị phần cuối cùng của tập tin.

$ tail a1.txt

chmod : Thay đổi quyền thao tác tập tin.
u: người đang dùng r: đọc
g: nhóm w: viết
o: người dùng khác x: thực thi (execute permission)
a: cho tất cả người dùng

$ chmod u+x a1.txt

hoặc

$ chmod u-rx a1.txt

file a1.txt thành file thực thi hoặc loại bỏ quyền đọc và thực thi của file a1.txt đối với người dùng.

$ chmod a+x a1.txt

hoặc

$ chmod +x a1.txt

hai lệnh này là tương đương, cho phép file a1.txt được thực thi với tất cả người dùng

locate : Kiểm tra cơ sở dự liệu trong thư mục hiện hành.

$ locate ABC

tìm kiếm và xem tất cả các đường dẫn và tập tin có tên bao gồm cụm từ đại diện “ABC”.

tar : Nén và giải nén tập tin.

$ tar zxvf a1.tgz

giải nén tập tin a1.tgz.

$ tar cvzf a1.tgz a1.txt

nén tập tin a1.txt thành tập tin a1.tgz.

2. Thao tác với kết nối

Một số lệnh hữu ích trong việc kết nối giữa các máy khác nhau hoặc giữa máy trạm với máy chủ.

ssh : Đăng nhập vào máy chủ từ máy trạm.

$ ssh iccms@192.168.1.1

đăng nhập vào máy chủ có IP là 192.168.1.1, chú ý là bạn có thể sử dụng bí danh trong .bashrc bằng lệnh sau: alias abc=”ssh iccms@192.168.1.1″. Sử dụng bí danh sẽ giúp rút gọn lệnh phải sử dụng thường xuyên.

scp : Sao chép tập tin từ máy chủ xuống máy trạm.

$ scp iccms@192.168.1.1:/path1/a1.txt path2/

sao chép tập tin a1.txt trong thư mục 1 từ máy chủ xuống thư mục 2 trong máy trạm.

wget : Tải tập tin từ trang web.

$ wget http://www.example.com/file.zip

tải tập tin file.zip từ trang web example.com

3. Thao tác với hệ thống

top/ps: Liệt kê các chương trình đang thực thi.

kill/killall: Tắt một chương trình đang thực thi.

$ kill -9 <process id> 

hoặc

killall <process name>

Tắt một chương trình với ưu tiên cao nhất.

lscpu: Xem thông tin về CPU của máy.

watch -n 1 free -m: Kiểm tra dung lượng RAM, để thoát khỏi lệch watch sử dụng phím tắt Ctrl+C.

sudo sysctl -w vm.drop_caches=3: 

Xoá bộ nhớ đệm sử dụng trong RAM.

4. Phân tích dữ liệu với dòng lệnh

Những dòng lệnh sau rất hữu ích khi bạn muốn phân tích dữ liệu ngay trên Terminal.

clear: Làm sạch của sổ terminal.

grep: Tìm kiếm trong tập tin.

$ grep abc a1.txt

liệt kê các dòng có chứa các kí tự đại diện “abc” trong tập tin a1.txt.

$ grep -l abc *.*

liệt kê các tập tin có chứa các kí tự đại diện “abc” trong thư mục hiện hành.

cat: Xem toàn bộ nội dung tập tin.

$ cat a1.txt

hiện thị toàn bộ nội dung của tập tin a1.txt trong terminal.

$ cat a1.txt >> a2.txt

bổ sung toàn bộ nội dung của tập tin a1.txt vào sau tập tin a2.txt.

$ cat a1.txt a2.txt > a.txt

ghép nội dung của tập tin a1.txt và a2.txt thành tập tin a.txt.

$ cat a1.txt | sort

hiện thị nội dung trong tập tin a1.txt theo thứ tự bảng chữ cái.

$ cat a1.txt | wc

hiện thị lần lượt số dòng, số từ và số kí tự trong tập tin a1.txt.

bc : Tính toán đơn giản trên terminal.

$ echo 0.72*1.54 | bc -l

sẽ cho bạn kết quả bằng 1.1088 trên terminal.

$ echo "scale=2; 0.72*1.54" | bc

sẽ cho bạn kết quả bằng 1.10 trên terminal.

5. Tạo biến môi trường trong Linux

Để tạo các biến môi trường để thuận tiện trong quá trình sử dụng bạn làm như sau:

$ nano .bashrc
$ export PATH="$PATH:/path/"
$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/path/"
$ alias cd..='cd ../'
$ source ~/.bashrc

nevergiveup2212 06-12-2018

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

Minh Hiền

1 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
0 4
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 1 năm trước
0 4
White
2 0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...
Rey viết 7 tháng trước
2 0
White
22 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 3 năm trước
22 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!