Thứ tư, 05/03/2014 | 00:00 GMT+7

Cách sử dụng các lệnh và mở rộng lịch sử Bash trên VPS Linux

Khi làm việc trong môi trường server , bạn sẽ dành nhiều thời gian cho dòng lệnh. Rất có thể, bạn sẽ sử dụng bash shell, đây là mặc định của hầu hết các bản phân phối.


Trong một phiên terminal , bạn có thể sẽ lặp lại các lệnh phổ biến thường xuyên và nhập các biến thể của các lệnh đó thường xuyên hơn. Mặc dù việc gõ lại từng lệnh có thể là một phương pháp tốt khi bắt đầu, nhưng tại một số điểm, nó sẽ trở thành sự gián đoạn và khó chịu.

May mắn là bash shell có một số chức năng lịch sử phát triển khá tốt. Học cách sử dụng và thao tác lịch sử bash một cách có chủ đích sẽ cho phép bạn dành ít thời gian hơn để đánh máy và có nhiều thời gian hơn để hoàn thành công việc thực tế. Nhiều nhà phát triển đã quen thuộc với triết lý KHÔ của Không lặp lại chính mình. Sử dụng hiệu quả lịch sử của bash cho phép bạn hoạt động gần hơn với nguyên tắc này và sẽ đẩy nhanh tiến độ công việc của bạn.

Trong hướng dẫn này, ta sẽ kiểm tra các tính năng này trên version VPS Ubuntu 12.04, nhưng hầu như tất cả các bản phân phối Linux hiện đại sẽ hoạt động theo cách tương tự. Bắt đầu nào!

Đặt lịch sử mặc định


Trước khi ta thực sự bắt đầu sử dụng lịch sử, hãy điều chỉnh một số cài đặt bash để làm cho nó hữu ích hơn.

Bash cho phép bạn điều chỉnh số lượng lệnh trước đó mà nó lưu trữ trong lịch sử. Nó thực sự có hai tùy chọn riêng biệt cho việc này: tham số HISTFILESIZE cấu hình số lượng lệnh được lưu trong file lịch sử, trong khi HISTSIZE kiểm soát số lượng được lưu trữ trong bộ nhớ cho phiên hiện tại.

Điều này nghĩa là bạn có thể đặt giới hạn hợp lý cho kích thước lịch sử trong bộ nhớ cho phiên hiện tại và lưu lịch sử thậm chí lớn hơn vào đĩa mà bạn có thể kiểm tra sau này. Theo mặc định, bash đặt các giá trị rất thận trọng cho các tùy chọn này, vì vậy ta sẽ mở rộng chúng để tận dụng lợi thế của lịch sử lớn hơn. Một số bản phân phối đã tăng cài đặt lịch sử bash mặc định với các giá trị hào phóng hơn một chút.

Mở file ~/.bashrc của bạn bằng editor để thay đổi các cài đặt này:

nano ~/.bashrc 

Tìm kiếm cả tham số HISTSIZEHISTFILESIZE . Nếu chúng được cài đặt , vui lòng sửa đổi các giá trị. Nếu các thông số này không có trong file của bạn, hãy thêm chúng ngay bây giờ. Đối với mục đích của ta , ta có thể dễ dàng lưu 10000 dòng vào đĩa và tải 5000 dòng cuối cùng vào bộ nhớ. Đây là một ước tính thận trọng đối với hầu hết các hệ thống, nhưng hãy điều chỉnh nó xuống nếu bạn thấy tác động đến hiệu suất:

HISTSIZE=5000 HISTFILESIZE=10000 

Theo mặc định, bash ghi lịch sử của nó vào cuối mỗi phiên, overrides lên file hiện có bằng version cập nhật. Điều này nghĩa là nếu bạn đã đăng nhập với nhiều phiên bash, thì chỉ có phiên cuối cùng thoát ra mới có lịch sử của nó.

Ta có thể giải quyết vấn đề này bằng cách đặt cài đặt histappend , cài đặt này sẽ thêm vào thay vì overrides lịch sử. Điều này có thể đã được cài đặt , nhưng nếu chưa, bạn có thể bật điều này bằng cách thêm dòng này:

shopt -s histappend 

Nếu ta muốn thêm bash ngay lập tức các lệnh vào lịch sử của bạn thay vì đợi kết thúc mỗi phiên (để cho phép các lệnh trong một terminal khả dụng ngay lập tức trong một terminal khác), ta cũng có thể đặt hoặc nối lệnh history -a vào Tham số PROMPT_COMMAND , chứa các lệnh được thực thi trước mỗi dấu nhắc lệnh mới.

Để làm điều này một cách chính xác, ta cần thực hiện một chút hack. Ta cần nối ngay vào file lịch sử với history -a , xóa lịch sử hiện tại trong phiên của ta bằng history -c , sau đó đọc tệp lịch sử mà ta đã thêm vào, quay lại lịch sử phiên của ta với history -r .

Bạn có thể làm như vậy:

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" 

Khi bạn hoàn tất, hãy lưu file và thoát.

Để thực hiện các thay đổi , hãy đăng xuất và đăng nhập lại hoặc nhập nguồn file bằng lệnh :

source ~/.bashrc 

Xem lại Lịch sử Bash trước đây của bạn


Cách mà ta xem lại lịch sử bash là sử dụng lệnh history . Thao tác này sẽ in ra các lệnh gần đây của ta , một lệnh trên mỗi dòng. Điều này tối đa sẽ xuất ra số dòng bạn đã chọn cho biến HISTSIZE . Nó có thể sẽ ít hơn vào thời điểm này:

history 

   . . .    43  man bash    44  man fc    45  man bash    46  fc -l -10    47  history    48  ls -a    49  vim .bash_history     50  history    51  man history    52  history 10    53  history 

Nó cũng in số lịch sử cho mỗi lệnh. Mỗi lệnh được liên kết với một số để dễ dàng tham khảo. Bạn sẽ thấy lý do tại sao điều này hữu ích trong giây lát.

Ta có thể cắt bớt kết quả bằng cách chỉ định một số sau lệnh. Ví dụ: nếu ta chỉ muốn xem 5 lệnh cuối cùng được nhập, ta có thể nhập:

history 5 

   50  history    51  man history    52  history 10    53  history    54  history 5 

Để tìm tất cả các lệnh lịch sử liên quan đến một chuỗi nhất định, một cách dễ dàng để có được cái nhìn tổng quan là chỉ cần chuyển nó thành grep. Ví dụ: ta có thể tìm kiếm các dòng có cd bằng lệnh :

history | grep cd 

   33  cd Pictures/    37  cd ..    39  cd Desktop/    61  cd /usr/bin/    68  cd    83  cd /etc/    86  cd resolvconf/    90  cd resolv.conf.d/ 

Thực thi các lệnh từ Lịch sử Bash của bạn


Việc in ra lịch sử của ta là tốt, nhưng tự nó không thực sự giúp ta truy cập các lệnh đó một cách dễ dàng, ngoại trừ nó như một tài liệu tham khảo. Tuy nhiên, ta có thể nhanh chóng gọi lại bất kỳ kết quả nào được trả về bằng cú pháp đặc biệt.

Ta có thể nhớ lại bất kỳ lịch sử nào trước đây của ta bằng số của nó trước dấu chấm than (!). Ví dụ: nếu lịch sử của bạn trông giống như lịch sử của tôi ở trên, bạn có thể xem nhanh trang user cho lệnh lịch sử bằng lệnh :

!51 

Điều này sẽ ngay lập tức gọi lại và thực hiện lệnh liên quan đến lịch sử số 51.

Ta cũng có thể thực hiện các lệnh liên quan đến vị trí hiện tại của ta . Ta có thể làm điều này bằng cách sử dụng cú pháp !-n , trong đó “n” được thay thế bằng số lượng lệnh mà ta muốn gọi lại trước đó.

Ví dụ, nếu ta muốn gọi lại và thực hiện một lệnh mà ta đã nhập trước lệnh mới nhất , ta có thể nhập !-2 . Vì vậy, nếu ta liệt kê nội dung của một đường dẫn folder dài, lặp lại nội dung nào đó và muốn liệt kê lại, phiên của ta có thể trông như thế này:

ls /usr/share/doc/manpages echo hello !-2             # lists the contents again 

Để thực hiện lại lệnh trước đó, bash cung cấp một phím tắt mà ta có thể sử dụng thay vì !-1 . Đường tắt là !! , sẽ thay thế lệnh mới nhất và thực thi:

!! 

Nhiều người sử dụng điều này khi họ nhập một lệnh mà họ nhận ra rằng họ cần các quyền sudo để thực thi. Đang gõ sudo !! sẽ thực hiện lại lệnh với sudo ở phía trước nó. Phiên có thể trông như thế này:

touch /etc/hello 

touch: cannot touch `/etc/hello': Permission denied 

sudo !! 

sudo touch /etc/hello [sudo] password for demouser: 

Điều này thể hiện một thuộc tính khác của cú pháp này. Chúng là sự thay thế thuần túy và có thể được kết hợp với các lệnh khác tùy ý.

Cuộn qua Lịch sử Bash


Có một số cách để ta có thể cuộn qua lịch sử bash của bạn , đặt từng lệnh liên tiếp trên dòng lệnh để chỉnh sửa.

Cách phổ biến nhất để thực hiện việc này là nhấn phím mũi tên lên tại dấu nhắc lệnh.

Mỗi lần nhấn thêm phím mũi tên lên sẽ đưa bạn trở lại lịch sử dòng lệnh của bạn . Nếu bạn cần đi theo hướng khác, phím mũi tên xuống sẽ di chuyển lịch sử theo hướng ngược lại, cuối cùng đưa bạn trở lại dấu nhắc hiện tại.

Nếu việc di chuyển bàn tay của bạn đến các phím mũi tên có vẻ như là một rắc rối lớn, bạn có thể di chuyển ngược lại lịch sử lệnh của bạn bằng cách sử dụng tổ hợp CTRL-p và sử dụng tổ hợp CTRL-n để tiếp tục lại trong lịch sử.

Nếu bạn muốn quay lại dấu nhắc lệnh hiện tại, bạn có thể thực hiện bằng cách gõ Meta-> . Trong hầu hết các trường hợp, phím “meta” và “>” nghĩa là nhập ALT-Shift-. . Điều này rất hữu ích nếu bạn thấy mình đã lùi xa trong lịch sử và muốn quay lại lệnh hiện tại.

Bạn có thể chuyển đến dòng đầu tiên của lịch sử lệnh bằng cách thực hiện thao tác ngược lại và gõ Meta-< . Điều này thường nghĩa là nhấn ALT-Shift-, ,.

Tóm lại, đây là một số phím để cuộn qua lịch sử và chuyển đến một trong hai đầu:

  • Phím mũi tên LÊN : Cuộn ngược lịch sử

  • CTRL-p : Cuộn ngược lịch sử

  • Phím mũi tên XUỐNG : Cuộn chuyển tiếp trong lịch sử

  • CTRL-n : Cuộn chuyển tiếp trong lịch sử

  • ALT-Shift-. : Chuyển đến phần cuối của lịch sử ( mới nhất )

  • ALT-Shift-,: Chuyển đến đầu lịch sử (xa nhất)

Tìm kiếm qua Lịch sử Bash


Mặc dù đường dẫn lệnh history thông qua grep chắc chắn là cách dễ nhất để hoàn thành một số thủ tục, nhưng nó không lý tưởng trong nhiều trường hợp.

Bash bao gồm chức năng tìm kiếm lịch sử của nó. Cách điển hình để sử dụng điều này là thông qua tìm kiếm ngược trong lịch sử (các kết quả mới nhất được trả về đầu tiên) bằng tổ hợp CTRL-r .

Ví dụ: bạn có thể nhập CTRL-r và bắt đầu nhập một phần của lệnh trước đó. Bạn chỉ phải gõ một phần của lệnh. Thay vào đó, nếu nó trùng với một lệnh không mong muốn, bạn có thể nhấn CTRL-r để xem kết quả tiếp theo.

Nếu bạn vô tình chuyển lệnh bạn muốn, bạn có thể di chuyển theo hướng ngược lại bằng lệnh CTRL-s . Điều này cũng có thể hữu ích nếu bạn đã di chuyển đến một điểm khác trong lịch sử của bạn bằng cách sử dụng các phím trong phần cuối cùng và muốn tìm kiếm tiếp.

Lưu ý : Trong nhiều terminal , CTRL-s thực sự được ánh xạ để tạm dừng phiên terminal . Điều này sẽ chặn mọi nỗ lực chuyển CTRL-s để bash và sẽ “đóng băng” terminal của bạn. Để hủy kết nối, chỉ cần gõ CTRL-q để hủy tạm dừng phiên.

Tính năng tạm ngừng và tiếp tục này không cần thiết trong hầu hết các terminal hiện đại và ta có thể tắt tính năng này mà không gặp sự cố nào bằng lệnh :

stty -ixon 

Ta nên thêm điều này vào file ~/.bashrc mình để thay đổi này là vĩnh viễn.

Nếu bạn thử lại, nó sẽ hoạt động như mong đợi để cho phép bạn tìm kiếm chuyển tiếp.

Tìm kiếm sau khi bạn đã nhập một phần của lệnh


Một tình huống phổ biến để tìm thấy chính mình là nhập một phần lệnh của bạn, sau đó nhận ra rằng bạn đã thực hiện lệnh trước đó và có thể tìm kiếm lịch sử cho lệnh đó.

Cách chính xác để tìm kiếm bằng cách sử dụng những gì đã có trên dòng lệnh của bạn là di chuyển con trỏ đến đầu dòng bằng CTRL-a , gọi ngược lịch sử bằng CTRL-r , dán dòng hiện tại vào tìm kiếm bằng CTRL-y , và sau đó sử dụng lại CTRL-r để tìm kiếm ngược lại.

Ví dụ: giả sử ta muốn cập nhật cache gói của bạn trên hệ thống Ubuntu. Gần đây ta đã gõ nó ra, nhưng ta không nghĩ về điều đó cho đến khi ta nhập lại sudo :

sudo 

Đến đây, ta nhận ra rằng đây là một hoạt động mà ta chắc chắn đã thực hiện trong ngày hôm qua. Ta có thể đánh:

CTRL-a 

Thao tác này sẽ di chuyển con trỏ của ta đến đầu dòng.

CTRL-r 

Ta gọi là tìm kiếm lịch sử gia tăng ngược lại của ta . Điều này có tác dụng phụ là sao chép tất cả nội dung trên dòng lệnh sau vị trí con trỏ của ta . Nó đặt nó vào một clipboard .

CTRL-y 

Ta dán các đoạn lệnh mà ta vừa sao chép từ dòng lệnh vào tìm kiếm.

CTRL-r 

Ta quay ngược lại lịch sử của bạn , tìm kiếm các lệnh chứa nội dung ta vừa dán.

Điều này có vẻ như là một cơn đau dữ dội ở cổ, nhưng thực ra nó không quá tệ khi bạn đã quen. Sẽ cực kỳ hữu ích khi bạn thấy mình ở trong một vị trí khó xử khi bạn đã gõ một nửa lệnh phức tạp và biết rằng bạn cần lịch sử để hoàn thành phần còn lại.

Để dễ dàng hơn, bạn có thể coi đây là một lệnh ghép đơn giản hơn:

CTRL-aryr 

Làm quen với Mở rộng Lịch sử Nâng cao hơn


Ta đã đề cập đến một số kỹ thuật mở rộng lịch sử cơ bản nhất mà bash cung cấp. Một số trong số ta đã đề cập cho đến nay là:

  • !! : Mở rộng đến lệnh cuối cùng
  • ! n : Mở rộng đến lệnh với số lịch sử “n”.
  • ! -n : Mở rộng đến lệnh có số lệnh bằng "n" trước lệnh hiện tại trong lịch sử.

Nhà thiết kế sự kiện


Ba ví dụ trên là các trường hợp của người chỉ định sự kiện . Đây thường là những cách nhớ lại các lệnh lịch sử trước đó bằng cách sử dụng các tiêu chí nhất định. Chúng là phần lựa chọn của các hoạt động có sẵn của ta .

Ta có thể thực hiện lệnh “ssh” cuối cùng bằng lệnh thông tin như :

!ssh 

Điều này tìm kiếm các dòng bắt đầu bằng “ssh”. Nếu ta muốn tìm kiếm một chuỗi không xảy ra ở đầu lệnh, ta có thể bao quanh nó bằng “?” nhân vật. Ví dụ: để lặp lại lệnh apt-cache search ít nhất của ta , ta có thể thoát khỏi việc nhập:

!?search? 

Một mẹo khác mà bạn có thể thử là một biến thể trên !! lệnh lịch sử cuối cùng. Bạn có thể thực hiện tìm kiếm nhanh và thay thế bằng lệnh :

<pre>
^ <span class = “highlight”> original </span> ^ <span class = “highlight”> thay thế </span> ^
</pre>

Thao tác này sẽ gọi lại lệnh trước đó (giống như “!!”), tìm kiếm một version của “gốc” trong chuỗi lệnh và thay thế bằng “thay thế”. Sau đó nó sẽ thực hiện lệnh.

Điều này rất hữu ích để đối phó với những thứ như lỗi chính tả. Ví dụ:

cat /etc/hosst 

cat: /etc/hosst: No such file or directory 

^hosst^hosts^ 

Người thiết kế Word


Sau ký tự chỉ định sự kiện, ta có thể thêm dấu hai chấm (:) và thêm ký tự mô tả từ để chọn một phần của lệnh phù hợp.

Nó thực hiện điều này bằng cách chia lệnh thành "từ", được định nghĩa là bất kỳ đoạn nào được phân tách bằng khoảng trắng. Điều này cho phép ta một số cơ hội thú vị để tương tác với các tham số lệnh của ta .

Việc đánh số từ bắt đầu ở lệnh ban đầu là “0”, đối số đầu tiên là “1”, và tiếp tục từ đó.

Ví dụ: ta có thể liệt kê nội dung của một folder , sau đó quyết định ta muốn thay đổi nó, như sau:

ls /usr/share/doc/manpages cd !!:1 

Trong trường hợp ta đang thao tác trên lệnh cuối cùng, ta có thể nén lệnh này bằng cách loại bỏ dấu “!” Thứ hai và dấu hai chấm, như sau:

cd !1 

Điều này sẽ hoạt động theo cùng một cách.

Ta có thể tham khảo đối số đầu tiên là "^" và đối số cuối cùng là "$" nếu điều đó phù hợp với mục đích của ta . Những điều này hữu ích hơn khi ta sử dụng phạm vi thay vì số cụ thể. Ví dụ: ta có ba cách để có thể lấy tất cả các đối số từ một lệnh trước đó thành một lệnh mới:

!!:1* !!:1-$ !!:* 

Lệnh đơn ” mở rộng đến tất cả các phần của lệnh được gọi lại ngoài lệnh ban đầu. Tương tự, ta có thể sử dụng một số theo sau là " " để nghĩa là mọi thứ sau từ được chỉ định phải được bao gồm.

Bổ ngữ


Điều cuối cùng mà ta có thể làm để tăng cường hành vi của dòng lịch sử mà ta đang nhớ lại là sửa đổi hành vi của việc thu hồi để thao tác chính văn bản. Bổ ngữ được thêm vào sau ký tự dấu hai chấm (:) bổ sung ở cuối phần mở rộng.

Ví dụ: ta có thể cắt đường dẫn đến file bằng cách sử dụng công cụ sửa đổi "h" (nó là viết tắt của "head"), sẽ loại bỏ đường dẫn lên cho đến ký tự cuối cùng (/). Hãy lưu ý điều này sẽ thắng không hoạt động theo cách bạn muốn nếu bạn đang sử dụng điều này để cắt ngắn đường dẫn folder và đường dẫn kết thúc bằng dấu gạch chéo.

Một trường hợp sử dụng phổ biến cho điều này là nếu ta đang sửa đổi một file và nhận thấy rằng ta muốn thay đổi folder của file để thực hiện các thao tác trên các file liên quan.

Ví dụ: ta có thể đọc thông tin bản quyền của một gói:

cat /usr/share/doc/manpages/copyright 

Sau khi hài lòng rằng ta có thể sử dụng gói cho nhu cầu của bạn , ta có thể cần thay đổi folder . Ta có thể thực hiện việc này bằng cách gọi lệnh cd trên chuỗi đối số và cắt bỏ tên file ở cuối:

cd !!:$:h pwd 

/usr/share/doc/manpages 

Sau khi ở đó, ta có thể cần mở lại file bản quyền đó để kiểm tra lại, lần này là trong một máy nhắn tin.

Ta có thể thực hiện thao tác ngược lại, cắt bỏ đường dẫn và chỉ sử dụng tên file có bổ ngữ “t” cho “tail”. Ta có thể tìm kiếm hoạt động cat cuối cùng của bạn và sử dụng cờ “t” để chỉ chuyển tên file :

less !cat:$:t 

Bạn có thể dễ dàng giữ tên đường dẫn tuyệt đối đầy đủ và lệnh này sẽ hoạt động chính xác trong trường hợp này. Tuy nhiên, có những lần điều này không đúng. Ta có thể đang xem một file được lồng trong một vài folder con bên dưới folder hiện tại của ta bằng cách sử dụng đường dẫn tương đối, thay đổi thành folder con bằng cách sử dụng công cụ sửa đổi “h” và sau đó ta sẽ không thể dựa vào tên đường dẫn tương đối để truy cập các file nào nữa.

Một công cụ sửa đổi cực kỳ hữu ích khác là công cụ sửa đổi “r”, loại bỏ phần mở rộng theo sau. Điều này có thể hữu ích nếu bạn đang sử dụng tar để extract một file và muốn thay đổi vào folder sau đó. Giả sử folder được tạo có cùng tên với file , bạn có thể làm như sau:

tar xzvf long-project-name.tgz cd !!:$:r 

Nếu tarball của bạn sử dụng phần mở rộng tar.gz thay vì tgz , bạn chỉ có thể chuyển phần bổ trợ hai lần:

tar xzvf long-project-name.tar.gz cd !!:$:r:r 

Một công cụ sửa đổi tương tự, “e”, loại bỏ mọi thứ ngoài phần mở rộng theo sau.

Nếu bạn không muốn thực hiện lệnh mà bạn đang gọi lại và chỉ muốn tìm nó, bạn có thể sử dụng công cụ sửa đổi “p” để đặt bash echo lệnh thay vì thực thi nó.

Điều này rất hữu ích nếu bạn không chắc mình có đang chọn đúng mảnh hay không. Điều này không chỉ in nó mà còn đưa nó vào lịch sử của bạn để chỉnh sửa thêm nếu bạn không hài lòng với nó.

Ví dụ, hãy tưởng tượng bạn chạy một lệnh find trên folder chính của bạn và sau đó nhận ra rằng bạn muốn chạy nó từ folder root (/). Bạn có thể kiểm tra xem bạn đang thực hiện các thay thế chính xác như thế này (giả sử lệnh ban đầu là # 119):

find ~ -name "file1"    # original command !119:0:p / !119:2*:p 

find / -name "file1" 

Nếu lệnh kết quả mà ta tập hợp cùng nhau là chính xác, ta có thể thực thi nó dễ dàng với:

CTRL-p 

Điều này có lẽ sẽ dễ dàng hơn nếu ta có thể dễ dàng thực hiện các thay thế trong lệnh của bạn . Ta có thể làm điều đó bằng cú pháp s/original/new/ .

Ví dụ, ta có thể hoàn thành điều đó bằng lệnh :

!119:s/~/\// 

Điều này sẽ thay thế version đầu tiên của mẫu tìm kiếm. Ta có thể thay thế mọi trận đấu bằng cách chuyển cờ “g” bằng “s”. Ví dụ: nếu ta muốn tạo các file có tên là file 1, file 2 và file 3, sau đó muốn tạo các folder được gọi là dir1, dir2, dir3, ta có thể làm như sau:

touch file1 file2 file3 mkdir !!:*:gs/file/dir/ 

Kết luận


Đến đây bạn nên có một ý tưởng tốt về cách bạn có thể tận dụng các hoạt động lịch sử có sẵn cho bạn. Một số trong số này có thể hữu ích hơn những cái khác, nhưng thật tốt khi biết rằng bash có những khả năng này trong trường hợp bạn thấy mình ở một vị trí mà sẽ rất hữu ích khi đào chúng lên.

Nếu không có gì khác, chỉ riêng lệnh history, tìm kiếm ngược và mở rộng lịch sử đơn giản sẽ giúp bạn tăng tốc quy trình công việc của bạn .

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Giới thiệu về Bảo mật VPS Linux của bạn
2014-03-04
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách sử dụng cd, pwd và ls để khám phá hệ thống tệp trên server Linux
2014-02-28
Cách di chuyển server Linux Phần 1 - Chuẩn bị hệ thống
2014-02-27
Cách di chuyển server Linux Phần 2 - Truyền dữ liệu cốt lõi
2014-02-27
Cách di chuyển server Linux Phần 3 - Các bước cuối cùng
2014-02-27
Cách cài đặt và sử dụng LinuxBrew trên VPS Linux
2014-02-14
cách sử dụng role và môi trường trong Chef để kiểm soát cấu hình server
2014-02-04
Cách cài đặt Chef Server, Workstation và Client trên Phiên bản VPS Ubuntu
2014-01-30