Tự học Linux : Soạn thảo dòng lệnh & Lịch sử lệnh

Trong những phần trước tác giả đã đề nghị bạn đọc thực hiện một vài lệnh của HĐH . Tác giả cho rằng nếu trong quá trình nhập lệnh có xảy ra lỗi thì bạn có thể đoán được cách sửa chúng. Nhưng dù sao cũng có ích nếu đưa ra danh ngắn gọn những câu lệnh (hay nói đúng hơn là phím và tổ hợp phím) dùng để soạn thảo dòng lệnh, cũng như gây ảnh hưởng đến cách làm việc của shell bằng bàn phím (bảng 1 – Những phím soạn thảo dòng lệnh).

Tự học Linux : Soạn thảo dòng lệnh & Lịch sử lệnh - bash Linux shell - Phát triển website

Ghi chú: Nếu bạn làm việc trong chương trình Midnight Commander, thì có thể sẽ không thể sử dụng những phím như <→>, <←>, <Home>, <End>, <Del> để làm các công việc như bảng trên, vì chúng được Midnight Commander dùng để di chuyển dòng chiếu sáng trong bảng hiện thời. Nhưng một số tổ hợp phím dùng với <Ctrl> và <Esc> thì vẫn dùng được bình thường.

Danh sách những câu lệnh (tổ hợp phím) có thể dùng không chỉ giới hạn trong phạm vi bảng 1, nhưng chúng ta chỉ xem xét những câu lệnh đơn giản và cần thiết trong lần làm quen đầu tiên với Linux này. Để có thêm thông tin hãy sử dụng câu lệnh man bash hoặc info bash.

Bảng 1 : Những phím soạn thảo dòng lệnh
PhímPhản ứng của hệ thống
<→>, <Ctrl>+<F>Di chuyển sang phải một ký tự (trong khuôn khổ những ký tự đã nhập cộng thêm một ký tự sẽ nhập)
<←>, <Ctrl>+<B>Di chuyển sang trái một ký tự
<Esc>+<F>Di chuyển sang phải một từ
<Esc>+<B>Di chuyển sang trái một từ
<Home>, <Ctrl>+<A>Di chuyển về đầu dòng lệnh
<End>, <Ctrl>+<E>Di chuyển về cuối dòng lệnh
<Del>, <Ctrl>+<D>Xóa ký tự nằm tại vị trí con trỏ
<Backspase>Xóa ký tự nằm bên trái con trỏ
<Enter>, <Ctrl>+<M>Bắt đầu thực hiện câu lệnh
<Ctrl>+<L>Dọn màn hình và đưa dòng lệnh hiện thời lên dòng đầu tiên
<Ctrl>+<T>Đổi chỗ hai ký tự: ký tự nằm tại vị trí con trỏ và ký tự nằm bên trái con trỏ, sau đó di chuyển con trỏ sang phải một ký tự
<Esc>+<T>Đổi chỗ hai từ: từ nằm tại vị trí con trỏ và từ nằm bên trái con trỏ
<Ctrl>+<K>Cắt phần dòng lệnh bắt đầu từ ký tự nằm tại vị trí con trỏ đến cuối dòng (phần dòng lệnh cắt ra được lưu trong bộ đệm và có thể đặt vào vị trí khác)
<Ctrl>+<U>Cắt phần dòng lệnh bắt đầu từ ký tự nằm bên trái con trỏ đến đầu dòng (phần dòng lệnh cắt ra được lưu tron bộ đệm và có thể đặt vào vị trí khác)
<Esc>+<D>Cắt phần dòng lệnh bắt đầu từ vị trí con trỏ đến cuối từ (nếu tại vị trí con trỏ là dấu cách thì cắt toàn bộ từ nằm bên phải nó)
<Esc>+<Del>Cắt phần dòng lệnh bắt đầu từ vị trí con trỏ đến đầu trỏ là dấu cách thì cắt toàn bộ từ nằm bên trái nó)
<Ctrl>+<W>Cắt phần dòng lệnh bắt đầu từ vị trí con trỏ đến dấu cách ở bên trái
<Ctrl>+<Y>Đặt (dán) đoạn dòng lệnh đã cắt cuối cùng vào vị trí con trỏ
<Esc>+<C>Chuyển ký tự tại vị trí con trỏ thành viết hoa rồi di chuyển con trỏ tới dấu cách đầu tiên ở bên phải so với từ hiện thời
<Esc>+<U>Chuyển tất cả các ký tự bắt đầu từ vị trí con trỏ thành viết HOA rồi di chuyển con trỏ tới dấu cách đầu tiên ở bên phải
<Esc>+<L>Chuyển tất cả các ký tự bắt đầu từ vị trí con trỏ tới cuối từ thành viết thường rồi di chuyển con trỏ tới dấu cách đầu tiên ở bên phải
<Shift>+ <PgUp>, <Shift>+ <PgDown>Những tổ hợp phím này cho phép xem các trang màn hình đã hiển thị. Số lượng những trang này phụ thuộc vào bộ nhớ của cạc màn hình. Có ích khi có câu lệnh nào đó đưa ra màn hình rất nhiều thông tin chạy nhanh qua màn hình, người dùng không kịp thấy chúng
<Ctrl>+<C>Dừng thực hiện câu lệnh vừa chạy (mà vẫn đang chạy)
<Ctrl>+<D>Thoát ra khỏi hệ vỏ bash

Xin lưu ý bạn đọc trong hệ vỏ bash có chương trình tích hợp giúp dễ dành nhập câu lệnh trên dòng lệnh. Gọi chương trình con này bằng một hoặc hai lần nhấn phím <Tab> sau khi nhập một vài ký tự. Nếu những ký tự này là phần đầu của ít nhất một trong những câu lệnh mà bash biết, thì có hai khả năng xảy ra. Nếu chúng là phần đầu của duy nhất một câu lệnh, tức là bash chỉ tìm thấy có một câu lệnh này, thì hệ vỏ sẽ thêm phần còn lại của câu lệnh này vào dòng lệnh. Nếu bash tìm thấy nhiều câu lệnh có phần đầu này, thì sẽ hiển thị danh sách tất cả những phương án có thể chọn. Nhờ đó người dùng có khả năng nhập thêm một vài ký tự nữa làm giảm số phương án chọn xuống còn 1 rồi là dùng phím <Tab> một lần nữa. Nếu số phương án chọn là rất nhiều (ví dụ nhấn phím <Tab> hai lần khi dòng lệnh trống rỗng) thì bạn đọc sẽ nghe thấy tiếng bíp sau lần nhấn <Tab> đầu tiên, và sau lần nhấn <Tab> thứ hai sẽ xuất hiện một dòng dạng Display all 2627 possibilities? (y or n) (Hiển thị tất cả 2627 khả năng? cần chọn y – có hoặc n – không).

Nếu nhấn hai lần phím <Tab> ở sau tên của một câu lệnh và một khoảng trắng, thì hệ vỏ bash sẽ coi như bạn đang tìm tên tập tin để dùng làm tham số cho lệnh này, và bash sẽ đưa ra danh sách tập tin của thư mục hiện thời. Đây là tính năng của bash trong trường hợp người dùng quên tên tập tin trong khi làm việc căng thẳng. Cũng giống như trường hợp câu lệnh, nếu đã nhập vào một phần tên tập tin thì phần còn lại sẽ được tự động thêm vào. Tương tự như vậy có thể đoán phần còn lại của các biến môi trường5 phím <Esc>+<$> thay cho <Tab>.

Trong khi làm việc với hệ vỏ sẽ có ích nếu biết rằng, bash ghi nhớ một số câu lệnh (theo mặc định là 1000 lệnh, giá trị này được đặt trong biến HISTSIZE) và cho phép gọi lại chúng bằng cách chọn từ danh sách. Đây được gọi là lịch sử lệnh. Có thể xem lịch sử lệnh bằng câu lệnh history. Ở đây bạn cần sử dụng các tổ hợp phím <Shift>+<PgUp> và <Shift>+<PgDown> để xem danh sách (có thể) rất dài này. Lịch sử lệnh được lưu trong tập tin xác định bởi biến HISTFILE (thường là $HOME/.bash_history). Để làm việc với lịch sử câu lệnh trong hệ vỏ bash người ta sử dụng những tổ hợp phím trong bảng 2 – Tổ hợp phím điều khiển lịch sử lệnh.

Bảng 2 : Tổ hợp phím điều khiển lịch sử lệnh
PhímPhản ứng của hệ thống
<↑> hoặc <Ctrl>+<P>Chuyển tới (gọi vào dòng lệnh) câu lệnh trước trong danh sách (di chuyển ngược lại danh sách)
<↓> hoặc <Ctrl>+<N>Chuyển tới câu lệnh tiếp theo trong danh sách (di chuyển theo danh sách)
<PgUp>Chuyển tới câu lệnh đầu tiên trong danh sách lịch sử lệnh
<!>, <N>Thực hiện (không cần nhấn <Enter> câu lệnh thứ n trong danh sách
<!>, <->, <N>Thực hiện câu lệnh thứ n tính từ cuối danh sách
<!>, dòng_ký_tựThực hiện dòng lệnh, có phần đầu trùng với dòng_ký_tự. Việc tìm dòng lệnh cần thiết sẽ được thực hiện từ cuối tập tin lịch sử và dòng lệnh đầu tiên tìm thấy sẽ được thực hiện
<Ctrl>+<O>Cũng giống như nhấn phím <Enter>, sau đó hiển thị câu lệnh tiếp theo trong lịch sử lệnh

Theo “Tự học sử dụng Linux”