Top Ad unit 728 × 90

Lastet News

random

Thói quen tốt với Linux command line

Chắc các bạn cũng đã từng nghe nói: Để làm chủ và thấy được cái hay, cái đẹp, cái mạnh của Linux thì phải sử dụng chế độ dòng lệnh thật “pro”. Vậy thế nào là “pro”? Những thói quen tôi kể ra dưới đây làm tôi thấy “pro” hơn, bạn hãy thử xem. Không khó hiểu đâu, tin tôi đi, vì cũng như bạn, tôi chưa biết những “pro” làm gì, nhưng tôi biết những người chưa “pro” làm như thế nào. Hãy tập những thủ thuật này thành những thói quen tốt khi dùng dòng lệnh luôn nhé.

1. Tạo cây thư mục

     Ví dụ: Để tạo một thư mục có đường dẫn như sau /home/demo/test/demo2/test2 sẽ  làm như sau:
~$ cd /home
/home$ mkdir demo
/home$ cd demo/
/home/demo$ mkdir test
/home/demo$ cd test/
/home/demo/test$ mkdir demo2
/home/demo/test$ cd demo2/
/home/demo/test/demo2$ mkdir test2
Rất tốn thời gian phải không? Sao không thử với lệnh sau nhỉ?
~$ mkdir -p /home/demo/test/demo2/test2
Bạn phải tạo một cấu trúc thư mục có rất nhiều thư mục con??? Yên tâm, lệnh sau sẽ giúp bạn:
~$ mkdir -p /home/test/{test1/{demo1/{ctnhatho,kma},demo2,demo3},test2,test3}
2. Giải nén file

   Ví du: Tôi có 1 file ctnhatho.tar.gz và muốn giải nén nó
Thông thường:
cp ctnhatho.tar.gz /tmp/ctnhatho/
cd /tmp/ctnhatho/
tar xvzf ctnhatho.tar.gz
Đừng di chuyển file tới thư mục cần rồi mới giải nén mà hãy giải nén file tới thư mục cần:
tar xvzf ctnhatho.tar.gz -c /tmp/ctnhatho
3. Kết hợp các lệnh bằng các toán tử điều khiển
&&: nếu lệnh 1 thực hiện thành công thì làm lệnh 2. Lệnh 1 fail thì không làm lệnh 2
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
||: nếu lệnh 1 thành công thì không làm lệnh 2. Lệnh 1 fail thì làm lệnh 2
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c
Kếthợp hai toán tử trên:
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar
4. Cẩn thận với các biến và dấu trích dẫn
Hãy xem các trường hợp sau:
~ $ ls tmp/
a b
~ $ VAR=”tmp/*”
~ $ echo $VAR
tmp/a tmp/b
~ $ echo “$VAR”
tmp/*
~ $ echo $VARa
~ $ echo “$VARa”
~ $ echo “${VAR}a”
tmp/*a
~ $ echo ${VAR}a
tmp/a
Nếu bạn muốn xuất ra chuỗi “tmp/*a” thì hãy sử dụng các dấu ngoặc cho hợp lý.
5. Dùng dấu back slash để quản lý dòng lệnh dài
~ $ cd tmp/a/b/c || \
mkdir -p tmp/a/b/c && \
tar xvf -C tmp/a/b/c ~/archive.tar
hoặc đẹp hơn:
~ $ cd tmp/a/b/c \
|| \
mkdir -p tmp/a/b/c \
&& \  
> tar xvf -C tmp/a/b/c ~/archive.tar 
6. Sử dụng Grep
       Để đếm số dòng output,  có thể bạn sẽ quen với cách đưa kết quả qua đường ống (pipeline) đến trình wc (dùng man!), một chương trình đếm byte, word, line thông dụng. Hãy thử thay thói quen đó bằng sử dụng tham số -c của grep xem, lợi ích đầu tiên là về mặt thời gian
~ $ time grep word tmp/a/longfile.txt | wc -l
2811
real 0m0.097s
user 0m0.006s
sys 0m0.032s
~ $ time grep -c word tmp/a/longfile.txt
2811
real 0m0.013s
user 0m0.006s
sys 0m0.005s
~ $
      Ngoài lợi ích về mặt thời gian, khi bạn đếm trong nhiều file, tham số -c sẽ cho kết quả riêng biệt với từng file trong khi wc sẽ cho kết quả tổng cộng của các file.
      Tuy nhiên bạn sẽ lưu ý một điểm là nếu như trong một dòng của file xuất hiện nhiều lần từ “word” thì kết quả của hai cách trên sẽ như thế nào? Lúc này tham số -c sẽ xem dòng chưa 1 từ word với dòng chứa 5 từ word là như nhau, vì nó đếm số dòng. Nếu bạn muốn trả về số lần xuất hiện của từ đó trong file, hãy dùng wc với tham số -o của grep.
~ $ grep -o and tmp/a/longfile.txt | wc -l
3402
   Tìm kiếm nội dung file :
Thông thường thì hay dùng lệnh cat kết hợp grep nhưng điều này hoàn toàn không nên vì trong lệnh grep cũng đã đọc dữ liệu của file vào:
~ $ time cat tmp/a/longfile.txt | grep and2811
real 0m0.015s
user 0m0.003s
sys 0m0.013s
~ $ time grep and tmp/a/longfile.txt2811
real 0m0.010s
user 0m0.006s
sys 0m0.004s
~ $

Nguồn: kythuatmaytinh
Thói quen tốt với Linux command line Reviewed by Unknown on 10:26 Rating: 5

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

body{ margin-top:50px;} .menuBar{ width:100%; height:50px; display:block; position:absolute; top:0; left:0; } .logo{ float:left; } .nav{ float:right; margin-right:10px;} .nav ul li{ list-style:none; float:left; }

All Rights Reserved by Huy Hùng - KMA © 2014 - 2015
Designed by JOJOThemes

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.