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/

Ngăn kết nối server , chỉnh ssh client , khôi phục GRUB .

Thư mục /proc, reboot – halt – poweroff và shutdown, Ngăn không cho kết nối tới servers với , Tuỳ chỉnh ssh client, Quản lý công việc với at, Làm việc với dd, Khôi phục lại GRUB, Xoá tất cả các file ngoại trừ 1 kiểu file nào đó, /etc/hosts.allow và /etc/hosts.deny.
 
1.Thư mục /proc. 

-Có một cách rất nhanh và rõ ràng để biết thông tin về hệ thống của bạn là xem những tập tin trong thư mục /proc. Sử dụng thử ls /proc bạn sẽ nhận được một danh sách các tập tin và dùng lệnh cat để xem thông tin về hệ thống của bạn.

Một vài ví dụ
-Thông tin về CPU:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 10
cpu MHz : 1004.884
cache size : 256 KB

...
-Thông tin về bộ nhớ:
$ cat /proc/meminfo
MemTotal: 516364 kB
MemFree: 7480 kB
Buffers: 3616 kB
Cached: 155428 kB
SwapCached: 16700 kB

...
-Thông tin về hệ thống tập tin:
$ cat /proc/filesystems
-Bạn có thể tự tìm hiểu thêm bằng lệnh man proc.

2. Reboot, halt, poweroff và shutdown

-Sử dụng GUI là một phần tất yếu của enduser. Vì vậy việc tắt hay khởi động lại máy không có gì là phức tạp chỉ việc click vài lần là xong. Tuy nhiên nếu bạn muốn hẹn giờ tắt máy thì việc sử dụng dòng lệnh là bắt buộc (tất nhiên trừ khi bạn tự code một cái GUI có tuỳ chọn hẹn giờ), nhưng việc đó không cần thiết bởi đem mọi thứ đến cho bạn.

-Trước hết lệnh reboot dùng để khởi động lại máy, để kết thúc công việc chúng ta dùng halt và poweroff. Với lệnh halt hệ thống được kết thúc tuy nhiên nguồn vẫn hoạt động, lệnh này dành cho những hệ thống cũ không hỗ trợ tắt nguồn.

Với những hệ thống ngày nay để kết thúc công việc hay dùng poweroff, nguồn sẽ được tắt tự động.

-Một lệnh nên biết nhất đó là shutdown – với lệnh này chúng ta có thể đặt thời gian tắt hay khởi động lại máy.

Xem một vài ví dụ với shutdown:

-Tắt hệ thống lúc 19h30.
# shutdown -h 19:30 [thông báo]
thông báo có thể không cần thiết.
-Nếu bạn muốn tắt máy ngay bây giờ.
# shutdown -h now
-Nếu bạn muốn khởi động lại máy bây giờ.
# shutdown -г now
-Nếu bạn muốn tắt máy tính sau 120 phút nữa.
# shutdown -h 120
3.Ngăn không cho kết nối tới servers với iptables.

-Nếu bạn muốn ngăn không cho người dùng kết nối tới một server nào đó có thể làm như sau:
# iptables -A INPUT -i eth0 -s IP_ADDRESS -j DROP
# iptables -A OUTPUT -d IP_ADDRESS -j DROP
với câu lệnh như trên địa chỉ mà bạn muốn block sẽ không thể kết nối được qua card mạng eth0.
-Nếu muốn xoá sạch các kênh bị block:
# iptables -F
4.Tuỳ chỉnh ssh client.

-Nếu bạn đã từng đọc bài viết về kết nối từ xa sử dụng ssh thì có lẽ sẽ không cần nói nhiều nữa về ssh. Còn nếu chưa đọc và chưa biết cách sử dụng ssh thì nên đọc nó trước khi tiếp tục đọc bài này. Ở trong bài viết này tôi chỉ muốn bổ xung thêm một vài thủ thuật cho ssh client.

Kết nối tới server:
$ ssh user@server.gocit.vn
trên đây là câu lệnh mà client cần thực hiện mỗi khi muốn kết nối tới server, để giảm bớt việc gõ bàn phím có thể cấu hình file ~/.ssh/config như sau:
Host server
Hostname server.gocit.vn
User user
sau đó khi cần kết nối tới server trên máy client chỉ cần run:
$ ssh server
-Để sử dụng ssh không mật khẩu (ví dụ với dsa) cần phải xác định cho từng server nếu bạn có nhiều key khác nhau:

$ ssh -i ~/.ssh/id_dsa_server1 user1@server1.gocit.vn

sau đó sửa nội dung file ~/.ssh/config như sau:
Host server1
Hostname server1.gocit.vn
User user1
IdentityFile ~/.ssh/id_dsa_server1
để kết nối tới server thường chạy:
$ ssh server1
-Cuối cùng :
$ man ssh_config
5.Quản lý công việc với at.

-at là một tiện ích để quản lý công việc, nói đơn giản nếu bạn muốn thực thi một lệnh nào đó vào thời gian định trước hãy sử dụng at.

-at và crontab đều dùng để thiết lập lịch trình thực thi công việc. Tuy nhiên nếu crontab thường được dùng để thực thi một công việc theo chu kỳ nhất định thì at dùng để thực hiện công việc tại một thời điểm xác định. Dạng sử dụng:
at [-V] [-q queue] [-f file] [-mldbv] TIME
at -c job [job...]
để biết chi tiết các tuỳ chọn sử dụng : man at
Xem một vài ví dụ
$ at 21:00 tomorrow
at> ls > output
at> mail debian < output
at> <EOT>
job 1 at Tue Nov 11 21:14:00 2008
với cách sử dụng như trên công việc được thực thi lúc 21h ngày mai (so với khi thực hiện at).
$ at 6:00 am tomorrow < scriptfile
những lệnh trong file scriptfile sẽ được thực thi lúc 6h ngày mai.
-Thêm một vài ví dụ về cách đặt thời gian.
$ at 2122 December 9
$ at 9:22pm Dec 9
$ at 5 am Saturday
$ at now + 2 hours
trong những trường hợp trên thì 2 trường hợp đầu là như nhau.
-Ngoài ra có thể sử dụng file /etc/at.allow và /etc/at.deny để thiết lập danh sách người dùng có thể hay không thể sử dụng at.
-Để liệt kê các công việc tạo ra bởi at chúng ta dùng at -l hoặc atq.
-Để xoá một công việc nào đó sử dụng: atrm jobs_number

7. Làm việc với dd.

-dd dùng để copy các phân vùng và đĩa cứng… dd đọc theo từng block, theo mật định là 512 bytes.
Dạng sử dụng:
dd if="source" of="target" bs="byte size" conv="conversion"
Sử dụng dd

-copy đĩa cứng:
# dd if=/dev/hda of=/dev/hdc bs=4096
-Backup:
# dd if=/dev/hda1 of=/home/.img bs=4096 conv=notrunc,noerror
-Restore:
# dd if=/home/root.img of=/dev/hda1 bs=4096 conv=notrunc,noerror
-Backup + nén:
# dd bs=1M if=/dev/hda1 | gzip -c > root.gz
-Restore với bản nén:
# gunzip -dc root.gz | dd of=/dev/hda1 bs=1M
-Backup + nén tới remote host:
# dd bs=1M if=/dev/hda1 | gzip | ssh user@host 'dd of=root.gz'
-Kiểm tra bad blocks:
# dd if=/dev/hda of=/dev/null bs=1M
-Xoá toàn bộ ổ cứng:
# dd if=/dev/zero of=/dev/hda
-Backup MBR:
# dd if=/dev/hda of=/mbr_hda-old bs=512 count=1
-Xoá MBR và bảng phân vùng đĩa cứng:
# dd if=/dev/zero of=/dev/hda bs=512 count=1
8.Khôi phục lại GRUB.

-Đây dường như là vấn đề thường gặp phải đối với người mới bắt đầu cài đặt và sử dụng Linux.

-GRUB là một Multiboot boot loader. Bạn có thể sử dụng GRUB khởi động Linux/*BSD/Windows. GRUB cung cấp cho người dùng rất nhiều tuỳ biến hữu dụng, ví dụ như có thể cấu hình GRUB để load kernel qua mạng, nó hữu ích cho các server để phòng tránh hacker táy máy nghịch phá kernel.

-Việc khôi phục GRUB thường xảy ra trong trường hợp bạn cài lại Windows (trên máy có một số HĐH), khi đó boot loader của Windows sẽ tự động cài lên MBR của đĩa cứng thứ 1, và dĩ nhiên khi bật máy sẽ không thể chọn HĐH mà bạn muốn sử dụng. Để khôi phục lại GRUB như trước khi cài lại Windows hãy sử dụng LiveCD. Tôi dùng Gentoo LiveCD.

-Cho LiveCD vào ổ CD-ROM, khởi động lại máy và chạy nó.
-Sau khi khởi động xong LiveCD, hãy bật terminal và làm như sau:
$ sudo grub
grub>
tại grub prompt:
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd0,5)
grub>
grub> root (hd0,5)
grub> setup (hd0)
grub> quit
quit
như vậy GRUB của bạn đã được khôi phục lại như khi chưa cài lại Windows.

9.Xoá tất cả các file ngoại trừ 1 kiểu file nào đó.

-Nếu bạn chỉ muốn giữ lại những file .png trong một thư mục chứa một đống file linh tinh:
$ ls |grep -v \.sh|xargs rm --
10. /etc/hosts.allow và /etc/hosts.deny.
Cho phép và cấm các host

-Với việc sử dụng /etc/hosts.allow và /etc/hosts.deny chúng ta có thể dễ dàng thiết lập danh sách các host được phép và các host bị chặn tới server.

-Sử dụng hai file này rất rõ ràng bởi các dịch vụ muốn tổ chức quản lý đều phải chỉ rõ, dạng:
dich_vu: host

cấu trúc trên chia làm hai phần, phần một là tên của dịch vụ, phần hai là địa chỉ của host, nếu có một vài host thì chúng được ngăn cách nhau bằng dấu phảy (,). Ngoài ra có thể sử dụng khoá từ ALL cho mọi dịch vụ hay mọi host.

Xem xét một ví dụ
-/etc/hosts.allow: cho phép
-/etc/hosts.deny: ngăn cấm
-Giả sử bạn muốn ngăn cấm tất cả mọi người với tất cả các dịch vụ thì thêm ALL: ALL vào file /etc/hosts.deny.

-Bây giờ cấu hình file /etc/hosts.allow để:
  • cho phép máy tính với địa chỉ 192.168.1.1 được phép kết nối tới tất cả các dịch vụ
  • cho phép máy tính với địa chỉ: 192.168.1.2 và 192.168.1.3 được phép kết nối tới proftpd
để thực hiện việc này chỉ cần thêm 2 dòng sau vào /etc/hosts.allow:
ALL: 192.168.1.1
proftpd: 192.168.1.2, 192.168.1.3
ngoài ra bạn cũng có thể sử dụng cấu trúc dạng proftpd: 192.168.1. để cho phép tất cả các máy tính có địa chỉ dạng 192.168.1.x kết nối tới ftp-server.

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

Thêm người dùng , giải nén , cập nhật thời gian , trạng thái thực thi .

Alias, Thêm người dùng vào nhóm, Mount ntfs –  fat32, umask, Nén và giải nén trong : zip – tar.gz và tar.bz2, Giữ trạng thái thực thi của lệnh khi thoát khỏi phiên làm việc – nohup, Thay đổi, cập nhật thời gian trong Linux, Tìm kiếm tất cả những file và chuyển vào một thư mục, Tạo thuận tiện với bash-completion
 
1. Alias

-Mỗi lệnh thường có nhiều tham số, do đó nếu bạn muốn gán một lệnh dài thường dùng thành một câu lệnh ngắn hơn thì alias dành cho bạn.
-Ví dụ để gán từ dir cho câu lệnh ls -al, hãy nhập vào shell như sau:
$ alias dir="ls -al"
với câu lệnh trên khi bạn thực hiện lệnh dir thì chính là thực hiện câu lệnh ls -al trong shell hiện tại.
-Để mỗi khi đăng nhập vào hệ thống không phải thực hiện lại việc gán alias, chúng ta chỉ việc thêm dòng alias dir=”ls -al” vào $HOME/.bashrc
-Nếu bạn muốn biết bạn đã sử dụng bao nhiêu alias hãy chạy alias tại shell.

2. Thêm người dùng vào nhóm.

-Làm thế nào để thêm user vào group trên hệ thống Linux? Để làm điều này bạn có thể sử dụng lệnh useradd hoặc usermod. Trong đó useradd tạo user mới hoặc thêm thông tin cho user, usermod để chỉnh sửa tài khoản của user.
# useradd -G groupname newuser

với câu lệnh như trên newuser sẽ được tạo và thêm vào nhóm groupname (nếu chưa có nhóm đó thì nó sẽ được tạo).
Nếu bạn muốn thêm user mới vào nhiều nhóm cùng lúc thì sử dụng:
# useradd -G admins,,www newuser
-Để thêm user mới vào một nhóm (không tạo ra nhóm có tên tương ứng với user mới) sử dụng lệnh:
# useradd -g groupname newuser
trong câu lệnh này groupname phải tồn tại.
usermod
-Thêm user vào group (cả user và group đều phải tồn tại)
-Để thêm user vào group, sử dụng lệnh:
# usermod -a -G ftp username
-Chỉ thêm user, không thêm group tương ứng của user vào group, sử dụng lệnh:
# usermod -g www username
3. Mount ntfs, fat32 ?

-Việc mount các phân vùng trong linux thật ra rất đơn giản, chỉ cần xác định chính xác thiết bị, phân vùng và định dạng của phân vùng là ok. Giả sử trên đĩa cứng /dev/hda của tôi phân vùng thứ nhất /dev/hda1 có định dạng là ntfs, để mount phân vùng này chúng ta làm như sau:
# modprobe ntfs
# mount -t ntfs /dev/hda1 /mnt/win
câu lệnh đầu tiên chúng ta tải module ntfs để mount. Câu lệnh tiếp theo sẽ mount phân vùng /dev/hda1 lên thư mục /mnt/win. Trong trường hợpkernel không được biên dịch để hỗ trợ ntfs thì cần phải biên dịch lại kernel . Để hệ thống tự động mount mỗi khi bật hãy thêm dòng sau vào file /etc/fstab (1 dòng):
/dev/hda1 /mnt/win ntfs ro,user,auto,fmask=0333,dmask=0222,nls=utf8 0 0
Tuy nhiên nếu bạn muốn ghi dữ liệu lên phân vùng ntfs thì có thể sử dụng ntfs-3g. Để cài đặt ntfs-3g trên chỉ cần:
# apt-get ntfs-3g
Khi đó trong file /etc/fstab phải thay đổi chút ít:
/dev/hda1 /mnt/win ntfs-3g rw,defaults,umask=0000 0 0
-Nếu bạn muốn mount tới phân vùng FAT32 thì câu lệnh mount sẽ là:
# mount -t vfat /dev/hda1 /mnt/win
ví dụ này giả sử định dạng phân vùng /dev/hda1 là FAT32.
-Việc mount rất đơn giản, như đã nói ở trên bạn cần xác định chính xác thiết bị (hda, hdb, sda, sdb…), phân vùng và định dạng của nó (hda1, hda2, sda3…).

4. Umask

Để bắt đầu tìm hiểu về umask hãy tạo một tập tin rỗng:
$ touch test
và xem quyền truy cập của nó:
$ ls test
giả sử bạn nhận được -rw-r–r– điều đó có nghĩa là chủ sở hữu có quyền đọc-ghi, của nhóm và những người còn lại là đọchay tập tin test có quyền truy cập 644. Vậy cái gì quyết định quyền truy cập của file khi mới tạo?
Để xác định truyền truy cập cho những file mới tạo chúng ta dùng umask. Quyền truy cập của file mới tạo có thể xác định là 666 (6 là cao nhất). Giả sử bạn muốn khi mới tạo file có quyền truy cập mật định là 664thì umask được xác định là 0002, nếu là 644 thì umask là 0022. Sử dụng umask rất đơn giản, ví dụ:
$ umask 0022
bây giờ những file mới được tạo sẽ được gán quyền 644.

5. Nén và giải nén trong linux: zip, tar.gz và tar.bz2

-Trong hệ thống *nix tồn tại một số dạng nén cơ bản như: zip, tar.gz và tar.bz2. Dưới đây là một vài ví dụ về cách nén và giải nén với những định dạng đó.
ZIP

-Nén một thư mục, sử dụng:
$ zip -r folder.zip folder
-Giải nén, sử dụng:
$ unzip file.zip
TAR.GZ

-Nén một thư mục dạng .gz, sử dụng:
$ tar -zcf folder.tar.gz folder
-Giải nén, sử dụng:
$ tar -zxvf file.tar.gz
TAR.BZ2

-Nén một thư mục dạng .bz2, sử dụng:
$ tar -jcf folder.tar.bz2 folder
-Giải nén, sử dụng:
$ tar -jxvf file.tar.bz2
-Để biết thêm cách sử dụng hãy man.

6. Giữ trạng thái thực thi của lệnh khi thoát khỏi phiên làm việc – nohup

-Ngoài screen bạn cũng có thể sử dụng nohup trong trường hợp muốn duy trì sự tiếp tục của các chương trình, tiến trình… khi thoát khỏi phiên làm việc. Câu lệnh sử dụng nohup rất đơn giản, ví dụ:
$ nohup make &
7.Thay đổi, cập nhật thời gian trong Linux

-Để thay đổi hay đơn giản cập nhật thời gian cho chính xác trên Linux trước hết hãy xác định múi giờ của bạn bằng cách sử dụng câu lệnh sau:
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
sau đó hãy cập nhật thời gian:
# ntpdate -s time.nist.gov
# hwclock --systohc
câu lệnh đầu tiên các định múi giờ của bạn là Moscow, câu lệnh thứ hai ntpdate dùng để đồng bộ thời gian với server, câu lệnh cuối cùng hwclock – xác lập thời gian hiện tại cho hệ thống. Như vậy với ntpdate và hwclock thêm một thao tác với crontab bạn có thể đồng bộ thời gian một cách tự động.

8. Tìm kiếm tất cả những file và chuyển vào một thư mục

Bài toán

-Có rất nhiều bài hát dạng mp3 nằm rải rác ở những nơi khác nhau trên ổ cứng. Làm thế nào để lôi chúng vào một thư mục duy nhất?

Giải pháp
-Sử dụng: find, mv, xargs.

Tiến hành
-Tìm và chuyển những file mp3 vào thư mục /mnt/audio định trước:
# find / -iname "*.mp3" | xargs -I '{}' mv {} /mnt/audio
-Với câu lệnh như trên nếu trên ổ cứng của bạn có cả những thư mục mp3 thì chúng cũng được chuyển vào /mnt/audio. Nếu bạn chỉ muốn chuyển những file mp3 hãy thêm tuỳ chọn -type f:
# find / -iname "*.mp3" -type f | xargs -I '{}' mv {} /mnt/audio
9. Tạo thuận tiện với bash-completion

-Bash-completion là một tiện ích hữu dụng giúp bạn làm việc thoải mái hơn với terminal.
-Giả sử bạn làm việc với SSH, bạn muốn khi kết nối không cần gõ nhiều mà sử dụng phím TAB để trợ giúp liệt kê danh sách các hosts. Cú pháp đơn giản có thể như sau:
# complete -W '<text1> <text2> <text3>' <command>
bây giờ khi bạn gõ lệnh trong terminal và 2 lần phím TAB danh sách từ sẽ được hiện ra.
-Để lệnh thực hiện một cách tự động hãy thêm nó vào ~/.bashrc. Ví dụ:
# complete -W 'host1 host2 host3' ssh
để biết thêm cách sử dụng complete hãy help complete.

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

Mở cổng: iptables, tips với sed , Tự động logout khỏi Shell: TMOUT, Bảo mật cho những file hệ thống ...

Góc IT gởi đến các bạn thêm các thủ thuật –  Gửi thư từ console: sendEmail, Tips với rename, Kết nối đến một máy tính đằng sau tường lửa, Mở cổng: iptables, tips với sed, Xoá một vài ký tự đầu/cuối trong tên files, Tự động logout khỏi Shell: TMOUT, Bảo mật cho những file hệ thống, Ẩn dữ liệu trong một file ảnh hoặc audio: Steghide, Kill một chương trình thông qua PID.
 
1.Gửi thư từ console: sendEmail

Nếu bạn muốn gửi thư từ console có thể sử dụng sendEmail.
Cài đặt sendEmail trên :
# apt-get sendemail
Ví dụ:
$ sendEmail -f admin@gocit.vn -t info@gocit.vn -u "Chủ đề" -o message-file=testmail -o message-format=text/html -s mail.gocit.vn -o tls=yes -xu admin@gocit.vn -xp PASS -l log.txt
trong ví dụ trên nội dung thư sẽ là nội dung của tập tin testmail, được gửi từ admin@gocit.vn đến info@gocit.vn  nhờ giao thức SMTP.
ngoài ra các tuỳ chọn:
-u: chủ đề của bức thư
-o message-file=testmail: nội dung trong file testmail sẽ được gửi đi
-s smtp.gmail.com: server dùng để gửi thư
-xu LOGIN -xp PASS: tên người dùng và mật khẩu
-l log.txt: log file.
Hãy man sendEmail để biết thêm cách sử dụng.
Sau khi thực thi bạn sẽ nhận được thông báo dạng:
Aug 14 12:12:12 debian sendEmail[6674]: Email was sent successfully!
From: admin@gocit.vn To: info@gocit.vn Subject: [Chủ đề] Server: [mail.gocit.vn:25]
NOTICE: The log file [log.txt] does not exist. Creating it now with
mode [0600].
chúc mừng bạn , bạn đã gởi thành công email

2.Tips với rename

-Thay đổi cụm abc trong tên file .txt thành def:
$ rename -v "s/abc/def/g" *.txt
-Xoá bỏ số trong tên file:
$ rename -v "s/[0-9]//g" *.txt
-Thêm vào đầu tên file .txt cụm abc:
$ rename -v "s/^/abc/g" *.txt
-Thêm vào cuối tên file cụm abc:
$ rename -v "s/$/abc/g" filename
3. Kết nối đến một máy tính đằng sau tường lửa.

Thông thường một máy tính trong LAN chỉ có thể ra internet nhưng không thể kết nối đến máy tính đó từ bên ngoài. Nếu bạn muốn kết nối đến một máy trong LAN có thể sử dụng ssh tunnel. Trên các máy *nix việc cài đặt openssh rất dễ dàng, còn trên Windows có thể cài đặt openssh trên cygwin .

Thực hiện kết nối:

Trước tiên chúng ta kết nối đến máy bên ngoài từ máy trong LAN, chạy:
$ ssh -f -N -R 99999:localhost:22 username@remote_ip
Với các tham số trên máy tính trong LAN không thể thực hiện một lệnh nào qua ssh, sau đó để kết nối đến máy tính trong LAN từ máy bên ngoài internet, chạy:
$ ssh localhost -p 99999
Chú ý là nếu bạn chạy ssh server trên một cổng khác không phải là 22 thì nhớ thay đổi lệnh trên cho đúng và trên cả 2 máy phải có cùng username.

4.Mở cổng: iptables

Port Forwarding – là động tác chuyển cổng cụ thể trên hệ thống mạng, điều này cho phép kết nối các máy từ bên ngoài với các máy trong mạng nội bộ đó.

Trước hết cần biết rằng mỗi máy tính tồn tại trong một mạng đều có một IP duy nhất, mỗi cổng trong một thời điểm xác định chỉ có thể được sử dụng bởi một chương trình.
Giả sử bạn cấu hình Linux như một router, khi đó router sẽ có 2 IP: 1 địa chỉ IP ngoài và 1 địa chỉ IP nội bộ làm việc như một gateway đối với mỗi máy tính trong mạng.

Với mô hình mạng:

Internet —— (eth0) Linux server (router) (eth1) —– LAN: host A.B.C.D
Nếu bạn muốn chạy ftp server trên một máy trong mạng LAN với IP: A.B.C.D tại cổng mật định 21 hãy chạy:
# iptables -t nat -I PREROUTING -p tcp --dport 21 -j DNAT --to A.B.C.D:21
# iptables -I FORWARD -p tcp -d A.B.C.D --dport 21 -j ACCEPT
5. Tips với sed

-In ra dòng thứ n của file:
ví dụ in ra dòng thứ 3 của file.txt:
$ sed -n '3p' file.txt
hoặc:
$ sed '3!d' file.txt
hoặc:
$ sed '3q;d' file.txt
-Thêm chuỗi abc vào đầu của tất cả các dòng:
$ sed -i 's/^/abc/gi' file.txt
-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
6.Xoá một vài ký tự đầu/cuối trong tên files.

Bạn có một album với tên các bài hát bắt đầu bằng số thứ tự dạng: 01, 02, 03… và muốn xoá bỏ chúng khỏi tên files. Sử dụng:
$ ls | while read file; do file_new=`echo "$file" | sed 's/..\(.*\)/\1/g'`; mv "$file" "$file_new"; done
với câu lệnh như trên 2 ký tự đầu trong tên files sẽ bị xoá bỏ.
để xóa 2 ký tự cuối trong tên file sửa lệnh sed thành sed 's/\(.*\).../\1/'

7. Tự động logout khỏi Shell: TMOUT

Sử dụng TMOUT để tự động thoát khỏi shell sau một thời gian định sẵn, hãy gán vào files: .bashrc hoặc .bash_profile dòng:
TMOUT=1200
với giá trị như trên sau 1200 giây bạn sẽ tự động logout khỏi shell.

8.Bảo mật cho những file hệ thống.

Thuộc tính SUID/SGID rất quan trọng, chúng ta nên kiểm tra thường xuyên xem trong hệ thống có những files thực thi nào có thuộc tính SUID/SGID mà không được phép hay không?

Để liệt kê danh sách những files ứng dụng có thuộc tính SUID/SGID, chúng ta sử dụng:
# find / -path /proc –prune –o –type f –perm +6000 -ls
hãy kiểm tra thật kỹ kết quả nhận được, nếu phát hiện được một file nào đó có thuộc tính SUID/SGID một cách không cần thiết, hãy xoá bỏ thuộc tính này bằng cách:
# chmod a-s file_name
9.Ẩn dữ liệu trong một file ảnh hoặc audio: Steghide

Steghide – là một tiện ích cho phép giấu dữ liệu trong một file ảnh hoặc audio. Khi một dữ liệu được giấu trong file ảnh (audio) với Steghide thì bản thân file ảnh (audio) đó không bị thay đổi và bạn vẫn xem ảnh hoặc mở audio một cách bình thường. Steghide hỗ trợ các định dạng JPEG, BMP, WAV và AU files.
Để gắn một file abc.txt vào file image.jpg, sử dụng:
$ steghide embed -cf image.jpg -ef abc.txt
Enter passphrase:
Re-Enter passphrase:
embedding "abc.txt" in "image.jpg"... done
Hãy nhớ mật khẩu để giải phóng file abc.txt, sử dụng:
$ steghide extract -sf image.jpg
Enter passphrase:
wrote extracted data to "abc.txt".
Ngoài ra để biết thông tin về file image.jpg, sử dụng:
$ steghide info image.jpg
"image.jpg":
format: jpeg
capacity: 2,4 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
embedded file "abc.txt":
size: 10,0 Byte
encrypted: rijndael-128, cbc
compressed: yes
10. Kill một chương trình thông qua PID.

Nhiều khi một chương trình nào đó bị treo, bạn có thể kill nó hoàn toàn một cách dễ dàng với một command nhỏ như sau, ví dụ với firefox:
$ ps aux | grep firefox | kill -9 `awk '{print $2}'`
với câu lệnh trên ps aux để liệt kê mọi tiến trình sau đó ta bắt lấy những thằng firefox bằng grep firefox và kill tất cả những tiến trình của firefox với kill -9 PID_number, ở đây chúng ta lấy được PID number của firefox dựa vào awk.
Để tiện sử dụng có thể viết một script nhỏ, dạng:
$ vi killproc.sh
#!/bin/sh
ps aux | grep $1 | grep -v "grep $1" | kill -9 `awk '{print $2}'`
sau đó:
$ chmod +x killproc.sh
và khi muốn kill một chương trình nào đó (ví dụ firefox), chạy:
$ ./killproc.sh firefox

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

Các lệnh mount , sắp xếp , lọc MAC-address với iptables .

1.VNC

Virtual Network Computing một tiện ích để điều khiển một máy tính khác thông qua mạng. Bạn có thể sử dụng server và client với những OS khác nhau: Linux – Linux, hay Linux – . Với bạn có thể tại đây. Trên Linux bạn có thể cài đặt các gói binary có sẵn trong kho của distro bạn dùng. Với Debian, chạy:
# apt-get vnc4server xtightvncviewer

Ví dụ nếu bạn có 2 máy host1 và host2. Bạn muốn điều khiển host1 thì trên host1 cần chạy vnc server và trên host2 – vnc client.
Nếu trên host1 chưa có thư mục $HOME/.vnc thì hãy tạo nó. Để đặt mật khẩu kho vnc server, sử dụng:
$ vncpasswd

sau khi nhập mật khẩu vào file passwd sẽ được tạo ra trong $HOME/.vnc. Tiếp theo hãy xem tập tin xstartup trong $HOME/.vnc và sửa nó theo ý bạn, ví dụ:
$ cat .vnc/xstartup
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
exec /usr/bin/startkde

sau khi cấu hình xong để khởi động server, sử dụng:
$ vnc4server

Như vậy là bạn đã cấu hình xong trên server host1, để kết nối tới host1, trên host2 thực hiện:
$ vncviewer host1:1

nhập mật khẩu để đăng nhập. Chú ý khi khởi động vnc server sẽ nhận được thông tin về số desktop có thể là :1, :2 … khi đó nếu muốn kết nối với desktop nào thì nhập vào tương ứng.

2.Kết hợp những phân vùng đã mount vào một phân vùng ảo – mhddfs
mhddfs (Multi-hdd FUSE filesystem) 

– tiện ích phối hợp những phân vùng đã mount hay một thư mục riêng biệt của chúng vào một phân vùng ảo chung. Hãy tưởng tượng ví dụ bạn có 2 đĩa vật lý được chia thành những phân vùng khác nhau và đã được mount tại /mnt/music và /mnt/data.

Tuy nhiên bạn có quá nhiều phim và chúng không chỉ nằm tại một phân vùng mà nằm ở cả 2 phân vùng kể trên, bây giờ để tiện lợi với sự giúp đỡ của mhddfs bạn có thể mountchúng như một phân vùng duy nhất /mnt/films.

Cài đặt mhddfs trên Debian:
# apt-get install mhddfs

Tạo thư mục /mnt/films
# mkdir /mnt/films

Kết hợp:
# mhddfs /mnt/music/Films1,/mnt/data/Films2 /mnt/films -o allow_other

Để unmount, sử dụng:
# fusermount -u /mnt/films

Để mount tự động mỗi khi khởi động hệ thống hãy thêm dòng sau vào /etc/fstab:
mhddfs#/mnt/music/Films1,/mnt/data/Films2 /mnt/films fuse defaults,allow_other 0 0

Như vậy với mhddfs việc quản lý files sẽ tiện lợi hơn, tuy nhiên hãy nhớ rằng trong trượng hợp ghi dữ liệu mhddfs sẽ xem phân vùng được mount đầu tiên còn chỗ hay không, nếu còn – ghi vào, nếu không còn chỗ mhddfs sẽ xem phân vùng được mount thứ hai nếu phân vùng này cũng không còn thì mhddfs sẽ xem phân vùng tiếp theo … quá trình sẽ tiếp tục diễn ra như vậy.

 3.Sắp xếp text: sort

-Nếu bạn có một tập tin danh sách nào đó, bạn muốn sắp xếp danh sách đó theo thứ tự thì hãy sử dụng sort.

-Ví dụ bạn có một tập tin tentruong với nội dung sau:
Sư phạm Hà Nội
Giao thông vận tải
Sư phạm Sài Gòn
Xây dựng
Kiến trúc

bây giờ để sắp xếp chúng theo thứ tự và ghi lại vào một file khác, sử dụng:
$ sort tentruong > newfile

trong trường hợp này sẽ sắp xếp theo thứ tự từ a đến z, nếu muốn sắp xếp theo thứ tự ngược lại hãy sử dụng thêm tuỳ chọn -r.

4.Lọc MAC-address với iptables

-Khi làm việc với MAC hãy nhớ rằng việc lọc các gói tin với MAC chỉ hoạt động trên 3 kênh: PREROUTING, FORWARD và INPUT.
-Ngăn chặn tất cả các kết nỗi từ địa chỉ MAC 00:F4:EA:B5:04:E7:
# iptables -A INPUT -m mac --mac-source 00:F4:EA:B5:04:E7 -j DROP

-Cho phép kết nối trên cổng 22 với địa chỉ MAC 00:F4:EA:B5:04:E7:
# iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:F4:EA:B5:04:E7 -j ACCEPT
5.Tìm kiếm và xoá text giữa 2 chuỗi: sed

-Để tìm kiếm những dòng text giữa 2 chuỗi abc và xyz, sử dụng:
$ sed -n '/abc/,/ayz/p' file

-Nếu bạn muốn xoá những dòng text giữa 2 chuỗi abc và xyz, sử dụng:
$ sed '/abc/,/xyz/d' file > newfile
6.Log IP, gói tin TCP: iptables

-Để bật chức năng log gói tin IP, sử dụng:
# iptables -A INPUT -j LOG --log-ip-options
# iptables -A INPUT -j DROP

-Để bật chức năng log gói tin TCP, sử dụng:
# iptables -A INPUT -j LOG --log-tcp-options
# iptables -A INPUT -j DROP

-Log được lưu trong file /var/log/messages, để xem log sử dụng:
# tail -f /var/log/messages
7.Tìm kiếm ftp server trong LAN

-Để tìm kiếm các ftp-server trong LAN chúng ta có thể dùng nmap. Nmap là một tiện ích rất hay ho dùng để scan mạng, nmap có thể scan ra rất nhiều thứ, trong trường hợp này là tìm ra những ftp-server trong LAN.
-Cài đặt nmap trên Debian:
# apt-get install nmap

-Để tìm kiếm ftp-server trong LAN, sử dụng:
$ nmap -p 21 192.168.0.0/24

hãy thay 192.168.0.0 thành IP mạng của bạn. Bạn cũng có thể giới hạn khoảng IP tìm kiếm, ví dụ: 192.168.0.0-20. Khi đó nmap sẽ scan tất cả các IP tương ứng và đưa ra kết quả những host có cổng 21 được mở, điều này có nghĩa là trên host đó chạy ftp-server.

8. Grep

-Tìm kiếm những dòng có chứa ABC trong file:
$ grep ABC file

nếu không muốn phân biệt chữ hoa hay chữ thường hãy thêm tuỳ chọn -i
-Tìm kiếm cụm a-b hoặc a b trong file:
$ grep 'a[- ]b' file 

-Tìm kiếm những dòng bắt đầu bằng abc trong file:
$ grep '^abc' file

-Tìm kiếm những dòng kết thúc bằng abc trong file:
$ grep 'abc$' file

-Tìm kiếm những dòng chỉ có abc trong file:
$ grep '^abc$' file 

-Nếu trong file có những ký tự đặc biệt như ^$… nếu muốn tìm kiếm chúng hãy thêm \ vào đằng trước, ví dụ nếu muốn tìm những dòng có chứa ^abc trong file:
$ grep '\^abc' file

-Tìm kiếm abc hoặc aBc trong file:
$ grep 'a[Bb]c' file

-Tìm kiếm những dòng chỉ có một ký tự trong file:
$ grep '^.$' file

-Tìm kiếm những dòng chứa “abc” trong file:
$ grep '"abc"' file

-Tìm kiếm những dòng trống và xoá chúng, ghi lại trong newfile:
$ grep -v '^$' file > newfile 

-Tìm kiếm tất cả những dòng “không chứa” abc trong file:
$ grep -v 'abc' file

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

Các lệnh lệnh init, wget, unzip các commands line căn bản .

1. init

init là cha của tất cả các process. Vai trò chính của init là tạo ra các process bằng chạy các chương trình được quy định trong tập tin /etc/inittab. Mỗi init sẽ có các process khác nhau. Trong linux có 6 mức khởi động (run level):
- Run level 0 (init 0): chế độ tắt máy.
– Run level 1 (init 1): chế độ này chỉ sử dụng được 1 người dùng.
– Run level 2 (init 2): chế độ đa người dùng nhưng không có dịch vụ NFS.
– Run level 3 (linit 3): chế độ đa người dùng, có đầy đủ các dịch vụ.
– Run level 4 (linit 4): chưa được sử dụng.
– Run level 5 (linit 5): chế độ đồ họa.
– Run level 6 (linit 6): khởi động lại máy.
– Cú pháp: # init
– Ví dụ:
+ Dùng lệnh init 0 để tắt máy:
# init 0
+ Để khởi động lại máy tính ta dùng lệnh:
# init 6
+ Khi đang ở chế độ đồ họa ta có thể chuyển sang chế độ dòng lệnh (text mode) bằng cách dùng lệnh:
# init 3
+ Ngược lại, khi đang ở chế độ dòng lệnh ta có thể chuyển sang chế độ đồ họa bằng cách dùng lệnh:
# init 5
– Tập tin cấu hình: /etc/inittab
Khi khởi động máy tính, Linux sẽ đọc trong tập tin /etc/inittab để chọn chế độ khởi động. Cụ thể là dòng id::initdefault:
– Do đó, ta có thể chỉnh sửa chế độ khởi động bằng cách thay đổi run level ngay dòng này.
– Ví dụ: mặc định cho Linux khởi động vào chế độ dòng lệnh ta thay dòng trên thành:
id:3:initdefault
– Lưu ý: không được set dòng này ở hai run level là 0 và 6.
– Để ngăn không cho sử dụng CTRL-ALT-DELETE khởi động lại server từ bàn phím ta có thể dùng dấu # để trước dòng ca::ctrlaltdel:/sbin/shutdown -t3 -r now như bên dưới
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
2. wget

Trong môi trường UNIX/Linux, chúng ta có thể di chuyển tới các thư mục một cách nhanh chóng bằng lệnh cd (change directory) trong cửa sổ lệnh Terminal. Nếu một lúc nào đó chúng ta muốn lấy một tập tin từ Internet về và lưu ở thư mục hiện hành thì sẽ mất nhiều thời gian hơn khi như phải sử dụng trình duyệt web để tải tập tin và lựa chọn thư mục để chứa tập tin ấy. Với công cụ wget sẵn có trong UNIX/Linux, chúng ta có thể tải trực tiếp tập tin về thư mục hiện hành.
Cấu trúc lệnh cơ bản của wget chỉ ngắn gọn như sau:
wget http://địa-chỉ-trang-web/tập-tin
Chẳng hạn như chúng ta muốn tải một tập tin MP3 vào thư mục dành riêng cho MP3 (/media/Data/Audio/Music/), chúng ta chỉ cần 2 câu lệnh sau:
cd /media/Data/Audio/Music
wget http://địa-chỉ-trang-web/tập-tin.mp3
Trong trường hợp muốn xem qua mã HTML của một trang web hoặc nội dung một tập tin văn bản dạng text, chúng ta cũng có thể dùng wget thay vì mở địa chỉ ở trình duyệt:
wget -q -O – http://địa-chỉ-trang-web/tập-tin
Trong một số trường hợp, chúng ta không thể tải trực tiếp dữ liệu từ một trang web, mà cần phải truy cập qua một proxy trung gian. Chúng ta có thể cài đặt thông số proxy cho trình duyệt web, nhưng việc đó sẽ làm chúng ta mất nhiều thời gian nếu như chỉ để tải 1 tập tin từ 1 trang web nào đó rồi lại gỡ bỏ các thông số proxy khỏi trình duyệt.
Chỉ bằng 1 câu lệnh đơn giản trong cửa sổ lệnh Terminal, chúng ta đã có thể dùng wget một cách bình thường. Câu lệnh này giúp chúng ta truy cập các địa chỉ web qua proxy:
export HTTP_PROXY="http://địa-chỉ-proxy:cổng-proxy/"
Khi đó câu lệnh wget có thể được sử dụng bình thường như trước. Trong trường hợp bạn cần tải tập tin từ một địa chỉ qua giao thức FTP thì bạn cần thêm biến FTP_PROXY theo cách tương tự:
export FTP_PROXY="http://địa-chỉ-proxy:cổng-proxy/"
Bạn lưu ý là mặc dù thiết lập chế độ sử dụng proxy cho giao thức FTP nhưng giao thức của địa chỉ proxy vẫn phải là “http”.
Sau khi tải tập tin bằng wget xong, nếu bạn muốn xóa bỏ chế độ sử dụng proxy thì dùng câu lệnh:
env -u HTTP_PROXY
và/hoặc
env -u FTP_PROXY
hay chỉ đơn giản là khởi động lại máy tính, vì biến môi trường tạo bởi lệnh exportkhông được lưu trữ vĩnh viễn, mà cần được khởi tạo lại nếu cần, mỗi khi máy tính đã được khởi động lại.

3. Các lệnh linux cần phải nhớ
  1. clear: làm sạch cửa sổ dòng lệnh
  2. ls tenthumuc:      Liệt kê nội dung bên trong một thư mục
  3. cat tentaptin:      Hiển thị nội dung của một tập tin lên cửa sổ dòng lệnh
  4. rm tentaptin:      Xóa một tập tin
  5. cp taptinnguon taptindich: Sao chép một tập tin
  6. passwd: Đổi mật khẩu
  7. motd:      Thông điệp của ngày
  8. finger tentruycap:      Chương trình tìm kiếm thông tin người dùng
  9. startx: Khởi động X Window System server
  10. less tentaptin hoặcr more tentaptin: Hiển thị nội dung một tập tin trong cửa sổ dòng lệnh một trang mỗi lần
  11. info:      Hiển thị thông tin và tài liệu trên shell, các tiện ích và chương trình.
  12. lpr tentaptin:      Gửi tập tin tới máy tin
  13. grep chuoi tentaptin: tìm kiếm chuỗi trong tập tin
  14. head tentaptin:      Hiển thị 10 dòng đầu tiên của tập tin
  15. tail tentaptin:      Hiển thị 10 dòng cuối cùng của tập tin
  16. mv tentaptincu      tentaptinmoi: Di chuyển hoặc đổi tên tập tin
  17. file tentaptin:      Hiển thị thông tin về nội dung của tập tin
  18. echo chuoi: Sao chép chuỗi tới màn hình dòng lệnh
  19. date:      Hiển thị ngày và giờ hiện tại
  20. cal:      Hiển thị lịch
  21. gzip tentaptin:      Nén một tập tin
  22. gunzip tentaptin:      Giải nén một tập tin
  23. which lenh:      Hiển thị đường dẫn tới lệnh
  24. whereis lenh:      Hiển thị đường tới nơi chứa lệnh
  25. who: Hiển thị các người dùng đã đang nhập
  26. finger tentruycap@maychu:      Thu thập thông tin chi tiết về người dùng hiện đang dùng hệ thống
  27. w: Hiễn thị người dùng đã đăng nhập với các tiến trình sử dụng
  28. mesg y/n: Đặt tùy chọn để các người dùng khác viết thông điệp cho bạn
  29. write nguoidung:      Gửi tin nhắn cho người dùng khác
  30. talk nguoidung:      Cho phép 2 người chat với nhau
  31. chmod quyen      tentaptin: Thay đổi quyền truy cập tập tin
  32. mkdir tenthumuc:      Tạo một thư mục
  33. rmdir tenthumuc:      Xóa một thư mục rỗng
  34. ln existingfile      new-link: Tạo một đường dẫn tới một tập tin (liên kết cứng)
  35. df: Hiển thị tất cả các mount của hệ thộng
  36. top:      Hiển thị danh sách các tiến trình đang chạy
  37. tty:      Hiển thị tên của cửa sổ dòng lệnh mà trên đó lệnh được dùng
  38. kill PID hoặc số %job: Ngừng một tiến trình bằng số PID (Process      Identification Number) hoặc số công việc
  39. jobs:      Hiển thị một danh sách các công việc hiện tại
  40. netstat:      Hiển thị các kết nối mạng
  41. traceroute maychu:      In gói định tuyến tới máy chủ
  42. nslookup:      Truy vấn máy chủ tên miền
  43. hostname:      Hiển thị tên định danh của hệ thống
  44. rlogin maychu:      Tiện ích để kết nối với một hệ thống ở xa
  45. telnet maychu:      Tiện ích để kết nối tới một hệ thống ở xa (tương tự như rlogin nhưng tương tác tốt hơn)
  46. rcp taptin      maytuxa: Được dùng để sao chép từ một máy tính ở xa
  47. ftp: Tiện ích để truyền tập tin giữa các hệ thống trên một mạng
  48. rsh lenh:      Tiện ích để chạy một lệnh trên một hệ thống ở xa mà không cần đăng nhập
  49. ping maychu:      Tiện ích để kiểm tra kết nối tới một hệ thống ở xa
  50. lcd duongdanthumuc:      Thay đổi thư mục máy cục bộ khi đã đăng nhập ở trên máy ở xa
5. Zip – unzip trong linux

Giải nén :
tar -jxvf filename.tar.bz2
tar -xvfz filename.tar.gz
unzip filename.zip
gunzip filename.sql.gz
Nén file :
tar cvfz filename.tar.gz /home/www/html

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