1. echo and C
#include <stdio.h> #include <stdlib.h> #define SHELLSCRIPT "\ #/bin/bash \n\ echo \"hello\" \n\ echo \"how are you\" \n\ echo \"today\" \n\ " int main() { puts("Will execute sh with the following script :"); puts(SHELLSCRIPT); puts("Starting now:"); system(SHELLSCRIPT); return 0; }
Để chạy program:
$ cc cprog.c -o cprog
$ ./cprog
2. Lấy thời gian của lệnh ping
ping 192.168.1.1
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from 192.168.1.11: icmp_seq=3 ttl=64 time=0.024 ms
64 bytes from 192.168.1.11: icmp_seq=4 ttl=64 time=0.031 ms
Ok,giờ muốn lấy tổng thời gian thực hiện các ICMP package... How to?Solution:
ping -c 4 -n google.com | cut -d '=' -s -f4 | cut -d ' ' -f1
Ok,done...Chú thích như sau:
- For the
ping
command:-c 4
: Stop after sending 4 packets-n
: Give numeric info only, not the associated names for the host address
- For the first
cut
command:-d '='
: Use the delimeter of the = sign-f4
: Select the 4th field-s
: Do not print lines not containing delimiters
- For the second
cut
command:-d ' '
: Use the delimeter of a space ' 'f1
: Select the first field
Còn 1 số Shell khá hay:
- Hiện thời gian thực:
ping 192.168.1.1 | grep -Po 'time=\K\S+'
Hoặcping 192.168.1.1 | perl -lne '/time=(\S+)/ && print $1'
Hoặc dùng Awkping 192.168.1.1 | awk -F'[= ]' '/time=/{print $(NF-1)}'
3. Đọc input từ Keyboard
Cái này giống như scanf() hay gets() trong C vậy...
Dữ liệu nhập vào sẽ được save trong biến $REPLY
read -p “ prompt_text”
4. Lưu dữ liệu trên Terminal
Để lưu lại các thao tác cũng như các dữ liệu hiển thị trên Terminal vào 1 File...
dùng: $script [file]
ví dụ:
$ script output.txt
Script started, file is output.txt
$ ls
output.txt testfile.txt foo.txt
$ exit
exit
Script done, file is output.txt
gõ exit để thoát và lưu vào File output.txt
Không có nhận xét nào:
Đăng nhận xét