Saturday, January 31, 2015

sed, nén và mã, tìm tập tin lớn nhất, quyền sở hữu truy cập website…

1. Một vài tips với sed

-Thay thế string1 bằng string2
$ sed 's/string1/string2/g' file

-Xoá chú thích và những dòng trắng:
$ sed '/ *#/d; /^ *$/d' file
-Thêm dòng trắng ở trên những dòng có cụm hello:
$ sed '/hello/{x;p;x;}'
-Thêm dòng trắng ở dưới những dòng có cụm hello:
$ sed '/hello/G'
-Thêm dòng trắng ở cả trên lẫn dưới những dòng có cụm hello:
$ sed '/hello/{x;p;x;G;}'
-Thêm số thứ tự vào trước mỗi dòng của file và ghi lại với tên khác:
$ sed = filename | sed 'N;s/\n/\t/' > new_file
-Đếm số dòng của file:
$ sed -n '$=' file
-In ra n dòng đầu tiên của file:
$ sed nq
-In ra (n-1) dòng cuối của file:
$ sed -e :a -e '$q;N;n,$D;ba'
-Xoá đi HTML tags của file .htm:
$ sed -e :a -e 's/<[^>]*>//g;/</N;//ba' file.html
2. Tạo user mới cho

-Để tạo một user mới chúng ta cần login vào người dùng  của MySQL, hãy nhớ rằng người dùng root ở đây là người dùng của MySQL chứ không phải người dùng root của hệ thống.

Tạo user mới
-Đăng nhập vào mysql với tài khoản root:
$ mysql -u root -p
-Tạo user mới:
mysql> CREATE USER 'new_username'@'localhost' IDENTIFIED BY 'password';
-Cấp quyền cho user:
mysql> GRANT ALL ON *.* TO 'new_username'@'localhost';
-Thoát khỏi MySQL:
mysql> exit
-Với cách cấp quyền như trên, user mới này có toàn quyền với mọi cơ sở dữ liệu của bạn. Nếu muốn giới hạn có thể thay thể câu lệnh cấp quyền ở trên bằng cách sử dụng câu lệnh sau:
mysql> GRANT ALL ON database_name.* TO new_username@localhost IDENTIFIED BY 'password';
với câu lệnh trên, user mới chỉ có thể thao tác với cơ sở dữ liệu database_name
Kết nối với MySQL
-Để kết nối với MySQL câu lệnh sử dụng cũng tương tự như đăng nhập với root:
$ mysql -u new_username -p
3. Nén và mã hoá: tar + openssl
Làm việc với tar

-Đóng gói với tar:
$ tar -cvf example.tar example
-Sử dụng tar tạo bản nén .gz
$ tar -czf example.tar.gz example
-Sử dụng tar tạo bản nén .bz2
$ tar -cjf example.tar.bz2 example
Mã hoá với openssl

-Dưới đây là ví dụ sử dụng tar và openssl để tạo ra bản nén mã hoá với mật khẩu:
$ tar -zcvf - example|openssl des3 -salt -k matkhau | dd of=example.des3
hay:
$ tar -zjvf - example|openssl des3 -salt -k matkhau | dd of=example.des3
như vậy bạn đã được một bản nén với mật khẩu, hãy nhớ mật khẩu để sau này giải nén.
-Giải nén:
$ dd if=stuff.des3 |openssl des3 -d -k matkhau|tar zxf -
4. Kiểm tra Public IP với line

-Sử dụng wget:
$ wget -q -O - http://checkip.dyndns.com/
5. Tìm 10 file có dung lượng lớn nhất

-Khi dung lượng ổ cứng quá đầy, để tìm xem những file có dung lượng lớn nhất có thể dùng:
$ du -a --block-size=1024K | sort -nr | head -n 10
câu lệnh trên sẽ tìm trong thư mục hiện tại và đưa ra terminal 10 file (thư mục) có dung lượng lớn nhất.

6.  Thay đổi kiểu ký tự trong tên file

-Đổi các ký tự trong tên file thành dạng thường:
$ for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done
-Đổi ký tự đầu trong tên file thành chữ hoa:
$ for i in *; do mv $i `echo $i | perl -pe '$_ = "\L\u$_\E";'`; done
trong 2 câu lệnh trên tất cả các file trong thư mục hiện tại đều chịu ảnh hưởng của lệnh.

7.  Thay khoảng trắng trong tên file thành dấu “_”

-Trong tên file có khoảng trắng không phải là vấn đề, tuy nhiên trong nhiều trường hợp sử lý file hàng loạt có thể nảy sinh rắc rối nếu người dùng không để ý, vì thế tốt nhất hãy đặt tên file không có khoảng trắng, hoặc trước khi sử lý hàng loạt hãy thay thể khoảng trắng trong tên file thành dấu “_”.
-Sử dụng rename:
$ rename "s/ /_/g" filename
8. Tìm và thay thế nội dung với sed, perl
-Một câu lệnh và giải quyết một vấn đề: bạn có một file (hay một đống file), bây giờ bạn muốn thay đổi một hay một cụm từ ví dụ như “xin chao” trong những file đó thành “hello” hãy sử dụng:
$ sed -i 's#xin chao#hello#gi' filename
hay:
$ perl -pi -e 's/xin chao/hello/g' filename
thay filename thanh * nếu muốn tìm và thay thế trong tất cả các file.

9. Quyền truy cập, sở hữu file trong Unix/

-Trước hết hãy nhớ rằng Unix/Linux coi tất cả đều là file, trong hệ thống *nix có 6 kiểu file:
  • file thông thường (regular file) : đơn giản là những tập tin text, binary file, những chương trình … Theo quan điểm của hệ thống thì những tập tin này là những bit liên tiếp nhau.
  • thư mục (directory) : như đã nói ở trên thư mục cũng là file, chúng dùng để xác định vị trí của tập tin trong cây hệ thống.

  • thiết bị đặc biệt (special device file) : dùng để kết nối với các thiết bị vật lý. Tồn tại 2 loại thiết bị là character device và blocked device. Character device: được sử dụng để trao đổi dữ liệu tuy nhiên không sử dụng buffer. Còn blocked device cho phép trao đối dữ liệu dạng block.

  • named pipe : đây là file sử dụng để trao đổi dữ liệu giữa các tiến trình.
  • liên kết (link)
  • socket : phối hợp các tiến trình
10. Tìm và xoá những thư mục rỗng

-Tìm và xoá đi những thư mục rỗng:
$ find /path -type d -empty -exec rm -rf {} \;

Nguồn : http://www.gocit.vn/bai-viet/tips-linux-6/

No comments:

Post a Comment