Sunday, July 12, 2015


Shell cung cấp sẵn rất nhiều command hữu ích, dưới đây sẽ liệt kê một số cmd hay dùng.

1. set /unset
Lệnh set truyền giá trị cho các special variables (parameter variables) từ $1, $2, ...
Lệnh unset sẽ remove một biến khỏi môi trường shell.

Ex:
set
 $ set foo bar  
 $ echo $1  
 foo  
 $ echo $2  
 bar  
 $ echo $*  
 foo bar  
   

unset
 #!/bin/sh  
 foo="Hello World"   
 echo $foo  
 unset foo  
 echo $foo  

2. eval
Lệnh eval cho phép lấy được giá trị cuối cùng của một biến trong trường hợp biến đó được gán theo kiểu bắc cầu.

Ex:
 #!/bin/sh  
   
 foo=10  
 x=foo  
 y='$'$x
 eval z='$'$x
 echo $y  
 echo $z

 $./test.sh  
 $foo       # y value
 10         # z value

3. exec
Lệnh exec có hai cách dùng:
+ Thay thế shell hiện tai bằng một chương trình khác
Ex:
 $ exec wall "Thanks for all the fish"  
Shell hiện tại sẽ kết thúc và thay thế bằng chương trình wall.

+ Chỉnh sửa file descriptor hiện tại, trường hợp này ít được dùng
Ex:
 exec 3< afile  
File descriptor 3 sẽ được mở để đọc dữ liệu từ afile.

4. exit n
Trả về mã code của một chương trình shell khi nó kết thúc.

Exit Code Description
126 The file was not executable
127 A command was not found
128 and above A signal occurred

Giá trị exit 0 thường được dùng để biểu diễn cho việc trả về mã code thành công, và exit 1 là có lỗi xảy ra.

Ex:
 #!/bin/sh  
 if [ -f .profile ]; then  
 exit 0  
 fi  
 exit 1  

5. export
Lệnh export dùng để tạo ta một biến môi trường - environment variables, nhờ đó biến đó có thể được truy cập từ một chương trình hoặc shell script khác.

Ex:
 #!/bin/sh  
 echo $MYNAME  
 echo $YOURNAME  

 $MYNAME=Obama  
 $YOURNAME=Putin  
 $./test.sh  
   
 Putin

6. expr
expr được dùng trong việc mở rộng các phép toán số học trong shell. Xem lại Arithmetic Expansion.

7. printf
Hiển thị thông tin ra màn hình.
 printf "format string" parameter1 parameter2 ...  
format string rất đơn giản, nó tương tự như trong C/C++, chỉ có một điểm khác đó là không print được số float bởi vì các phép toán trong shell chỉ thực hiện với số int.


Escape Sequence Description
\" Double quote
\\ Backslash character
\a Alert (ring the bell or beep)
\b Backspace character
\c Suppress further output
\f Form feed character
\n Newline character
\r Carriage return
\t Tab character
\v Vertical tab character
\ooo The single character with octal value ooo
\xHH The single character with the hexadecimal value HH


Conversion Specifier Description
D Output a decimal number.
C Output a character.
S Output a string.
% Output the % character.

Ex:
 $ printf "%s\n" hello  
 hello  
 $ printf "%s %d\t%s" "Hi There" 15 people  
 Hi There 15  
 people  

8. return
return dùng khi muốn trở về từ một function, thường là return n, với n là mã code trả về.

9. shift
Lệnh shift dịch chuyển giá trị của các parameter variables trong lần lượt sang trái.

Ex:
 #!/bin/sh  
   
 echo "===== before shift ======"  
 echo "\$1=$1"  
 echo "\$2=$2"  
 echo "\$3=$3"  
   
 echo "===== affter shift ======"  
 shift  
 echo "\$1=$1"  
 echo "\$2=$2"  
 echo "\$3=$3"  
   

 $ ./helloworld.sh foo bar zar  
 ===== before shift ======  
 $1=foo  
 $2=bar  
 $3=zar  
 ===== affter shift ======  
 $1=bar  
 $2=zar  
 $3=  
   

10. find
Tìm kiếm trong thư mục.

Ex: Tìm kiếm file trong thư mục
Syntax:
find <dir> -name <filename>

11. grep
Tìm kiếm một mẫu.

Ex: Tìm kiếm device file mà tên của nó có chuỗi ký tự fb.
 $ ls /dev/ | grep "fb"  
 fb0  
   

12. man
Show ra documents của một command.
Syntax:
 $ man <command name)   

Ex: Document của lệnh ls.
 $ man ls  


Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -