- Back to Home »
- Shell »
- Shell - Command build-in the shell
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