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/

Tips Linux .

Góc IT xin giới thiệu các bạn một số tips về : Vô hiệu hóa ping response trong , Cấm IP bằng cách sử dụng route trong , Khắc phục lỗi ‘/bin/rm: Argument list too long’ khi xóa file trong , Cấm 1 người dùng tạo kết nối ra ngoài bằng trên Linux, Lỗi khi biên dịch Apache 2.4 trên
 
1. Vô hiệu hóa ping response trong Linux

Ngoài chặn ping response bằng iptables, chúng ta còn có thể vô hiệu hóa ping response bằng câu lệnh sau:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Và có thể kích hoạt lại ping response bằng lệnh sau:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
2. Cấm IP bằng cách sử dụng null route trong Linux

Để cấm 1 IP hoặc 1 dãy IP truy cập đến hệ thống Linux thì có thể sử dụng Iptables.  Tuy nhiên chúng ta sử dụng phương pháp null route để làm được điều đó. Null route còn được gọi là blackhole route, hoạt động của null route giống như một tường lửa bị giới hạn.

Ví dụ: Giả sử IP 123.20.1.7 là IP cần cấm:
route add 123.20.1.7 gw 127.0.0.1 lo
Có thể kiểm tra lại bằng lệnh sau:
netstat -nr
Hoặc
route -n
Để loại bỏ IP đã bị cấm:
route delete 123.20.1.7
3. Khắc phục lỗi ‘/bin/rm: Argument list too long’ khi xóa file trong Linux

Trong linux, khi xóa rất nhiều file trong thư mục hiện tại bằng câu lệnh:
rm -fr 

* thường sẽ xuất hiện lỗi -bash: /bin/rm: Argument list too long . Do danh sách file để xóa quá dài. Khắc phục lỗi này bằng sự kết hợp find, xargs, rm lại với nhau như ví dụ dưới đây.

Ví dụ:
Mình đang cần xóa các file session của tạo ra ở thư mục /tmp//session/ nhưng khi xóa với rm -fr * sẽ sinh ra lỗi và  khắc phục như sau:
# cd session/
# rm -fr *
-bash: /bin/rm: Argument list too long
# find . -type f -print0 | xargs -0 /bin/rm
4. Cấm 1 người dùng tạo kết nối ra ngoài bằng Iptables trên Linux !

Iptables có 1 module gọi là “owner” (ipt_owner cho kernel <2.6.25 và xt_owner cho kernel >=2.6.25) cho phép người quản trị có thể cấm 1 người dụng nhất định trên hệ thống cục bộ  tạo kết nối ra ngoài. Module “owner” chỉ hợp lệ trong chain OUTPUT và POSTROUTING của iptables. Sau đây là cú pháp:
iptables -A OUTPUT -o ethX -m owner –uid-owner {USERNAME} -j DROP|REJECT
Ví dụ: Muốn cấm người dụng có tên là “jenny” có user id là 505 thì rule iptables sẽ như sau:
iptables -A OUTPUT -m owner –uid-owner jenny -j DROP
Hoặc:
iptables -A OUTPUT -m owner –uid-owner 505 -j DROP
Tham số: “uid-owner” : thì sử dụng username hoặc userid đều được.
Cuối cùng nhớ lưu rules iptables lại !

5. Lỗi khi biên dịch Apache 2.4 trên CentOS 6

– Khi bạn biên dịch Apache HTTP Server phiên bản 2.4.2 có thể bạn sẽ gặp lỗi tương tự dưới đây khi biên dịch đến phần “rotatelogs”:
rotatelogs.c: In function ‘post_rotate’:
rotatelogs.c:298: warning: implicit declaration of function ‘apr_file_link’
/usr/lib64/apr-1/build/libtool –silent –mode=link gcc -std=gnu99 -pthread -o rotatelogs rotatelogs.lo /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib64/libapr-1.la -lpthread
rotatelogs.o: In function `post_rotate':
rotatelogs.c:(.text+0x5ed): undefined reference to `apr_file_link’
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory `/root/httpd-2.4.2/support’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/httpd-2.4.2/support’
make: *** [all-recursive] Error 1
– Lí do xảy ra lỗi này có thể do phiên bản APR(1.3.9-3) và APR-util (1.3.9-3) đi kèm CentOS 6 quá cũ trong khi bản APR mới nhất là 1.4.6 và APR-util là 1.4.1. Các bạn có thể xem thông tin phiên bản mới nhất của APR(Apache Portable Runtime) tại địa chỉ http://apr.apache.org/.

– Cách giải quyết lỗi này :
+ Tải APR và APR-util mới nhất từ trang chủ về và chép vào thư mục srclib của mã nguồn apache 2.4.2 như sau (ở đây thư mục mã nguồn apache nằm tại /root/httpd-2.4.2 ):
# wget http://apache.osuosl.org/apr/apr-1.4.6.tar.gz
# wget http://apache.osuosl.org/apr/apr-util-1.4.1.tar.gz
# tar zxf apr-1.4.6.tar.gz
# tar zxf apr-util-1.4.1.tar.gz
# mv apr-1.4.6 httpd-2.4.2/srclib/apr
# mv apr-util-1.4.1 httpd-2.4.2/srclib/apr-util
+ Thêm vào lệnh “./configure” tham số:
--with-included-apr
để sử dụng APR bạn vừa cho vào thư mục srclib tương tự ví dụ sau :
./configure --prefix=/opt/apache24 \
--enable-so \
--enable-rewrite \
--enable-remoteip \
--enable-unique-id \
--enable-suexec \
--with-mpm=event \
--with-included-apr
+ Sau đó dùng lệnh “make” để biên dịch và “make install” để cài đặt như bình thường.

6.Cấu hình địa chỉ IP tĩnh trong Linux

Để cấu hình địa chỉ IP tĩnh trong Linux, bạn phải chỉnh sửa một số tập tin cấu hình network tùy vào bản phân phối Linux mà bạn đang sử dụng:

* Đối với Fedora/RHEL/CentOS : /etc/sysconfig/network-scripts/ifcfg-yyy ( trong đó yyy là tên interface)

* Đối với Debian/Ubuntu/LinuxMint/etc/network/interfaces
Ví dụ: Cấu hình địa chỉ IP tĩnh theo các thông số dưới đây:
IP Address : 192.168.255.103
Subnetmask : 255.255.255.0
Default gateway: 192.168.255.1
DNS 1 : 8.8.8.8
DNS 2 : 8.8.4.4
- Đối Fedora/RHEL/CentOS :

+. Cần chỉnh sửa /etc/sysconfig/network để thiết lập hostname và default gateway :
NETWORKING=yes
HOSTNAME=gocit.vn
GATEWAY=192.168.255.1
+. Chỉnh sửa /etc/sysconfig/network-scripts/ifcfg-eth0 để thiết lập IP, subnetmask cho eth0 (Lưu ý: Bạn hãy chỉnh sửa địa chỉ MAC 52:24:ff:ff:ff:04cho phù hợp với card mạng mà bạn đang cấu hình ):
DEVICE=eth0
BOOTPROTO=static
HWADDR=52:24:ff:ff:ff:04
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.255.103
NETMASK=255.255.255.0
+. Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:
nameserver 8.8.8.8
nameserver 8.8.4.4
+. Sau đó bạn phải chạy lệnh service network restart để áp dụng cấu hình mới

- Đối với Debian/Ubuntu/LinuxMint:

+. Chỉnh sửa /etc/hostname để thiết lập hostname:
gocit.vn
+. Chỉnh sửa /etc/network/interfaces để thiết lập IP/subnetmask/default gateway (ví dụ với eth0):
iface eth0 inet static
address 192.168.255.103
netmask 255.255.255.0
gateway 192.168.255.1
+. Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:
nameserver 8.8.8.8
nameserver 8.8.4.4
+. Sau đó bạn phải chạy lệnh /etc/init.d/networking restart để áp dụng cấu hình mới.

7.Tắt innodb trong MySQL 5.5

Để tắt innodb trong MySQL Server 5.5, bạn cần phải thêm vào phần “[mysqld]” trong tập tin cấu hình my.cnf 2 dòng sau :
skip-innodb
default_storage_engine=MyISAM
Sau đó khởi động lại MySQL Server.

8.Recursive Chmod Tricks

Chỉ chmod  thư mục :
find . -type d -exec chmod 755 {} \;
Chỉ chmod tập tin :
find . -type f -exec chmod 644 {} \;
Chỉ chmod tập tin có phần mở rộng là .php:
find . -type f -name ‘*.php’ -exec chmod 600 {} \;
9.Tạo đoạn hash md5 của 1 chuỗi kí tự trong Linux

– Cách 1: Sử dụng OpenSSL:
echo -n ‘www.gocit.vn’ | openssl md5
– Cách 2: Sử dụng md5sum:
echo -n ‘www.gocit.vn’ | md5sum -
– Cách 3: Sử dụng php:
php -r ‘echo md5(“www.gocit.vn”) . “\n”;’
Trên đây là những cách phổ biến. Ngoài ra còn nhiều cách để tạo hash md5 trong linux nữa !

10.Thiết lập mật khẩu cho Single user mode trong FreeBSD

Mặc định khi khởi động vào single user mode trong FreeBSD thì không cần mật khẩu. Tuy nhiên có thể thiết lập mật khẩu cho single user mode trong FreeBSD như sau:

– Sử dụng 1 trình soạn thảo văn bản quen thuộc như vi để chỉnh sửa tập tin /etc/ttys
vi /etc/ttys
– Tìm dòng văn bản sau:
console none unknown off secure
và chỉnh sửa thành:
console none unknown off insecure
Lưu lại và thoát trình soạn thảo vi !
Lưu ý: từ khóa insecure (tạm dịch là không an toàn) có nghĩa ngụ ý là console không an toàn phải xác thực bằng mật khẩu.

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

Các câu lệnh thường dùng trong linux .

Góc IT xin giới thiệu với các bạn các câu lệnh thường dùng trong


– pwd: xem thư mục hiện hành
– cd: di chuyển đến thư mục
– ls: đưa ra danh sách nội dung thư mục
– mkdir: tạo thư mục mới .
– touch: tạo file mới
– rmdir: bỏ một thư mục
– cp: copy file hoặc thư mục
– mv: di chuyển file hoặc thay đổi tên file
– rm: loại bỏ file

Để tìm kiếm file, bạn có thể dùng:

– find : dùng cho các tên file.
– grep < tiêu chuẩn tìm kiếm>: để tìm nội dung trong file.

Để xem một file, bạn có thể dùng:

– more : hiển thị file theo từng trang.
– cat < tên file>: hiển thị tất cả file.
– head < tên file>: hiển thị các dòng đầu tiên.
– tail < tên file>: hiển thị các dòng cuối cùng (có thể hữu ích trong những trường hợp như khi bạn muốn xem thông tin cuối cùng của một file hệ thống).

Để chính sửa file: 
 bạn phải sử dụng trình soạn thảo tích hợp sẵn trên dòng lệnh. Thông thường, đây là vi và được dùng với cú pháp: vi .

Để giải nén một lưu trữ  : 
(thông thường có đuôi tar.gz), bạn phải dùng lệnh tar với cú pháp tar -xvf .

Để in một file : 
dùng lệnh lpr . Chú ý là bạn phải có một số daemon hoạt động để quản lý máy in. Thông thường đây là các cup (chủ yếu là UNIX Printing System) có thể sử dụng cho tất cả các phân phối chính.

Để loại bỏ file khỏi hàng đợi ở máy in (bạn có thể lên danh sách hàng đợi bằng lệnh lpq), sử dụng câu lệnh lprm .

Để lắp hoặc gỡ bỏ thiết bị (thêm vào hệ thống file với vai trò như một phương tiện được phép sử dụng), dùng:

– mount /mnt/floppy: lắp thêm ổ mềm.
– umount /mnt/floppy: gỡ bỏ ổ mềm.
– mount /mnt/cdrom: lắp ổ CD-ROM.
– mount /mnt/cdrom: gỡ ổ DC-ROM.

Các thiết bị này thường được cài và cho phép sử dụng một cách tự động. Nhưng có thể một ngày đẹp trời nào đó bạn lại phải tự mình thực hiện công việc này khi có lỗi xảy ra. Đừng lo lắng!

Để tạo một phân vùng

Đầu tiên, tạo một thư mục trong /mnt (mkdir /mnt/ổ_đĩa_mới). Sau đó sử dụng lệnh mount (mount /dev/source /mnt/ ổ_đĩa_mới), trong đó /dev/source là thiết bị (tức phân vùng) bạn muốn lắp thêm vào hệ thống file.
Nếu muốn kết nối tới một host từ xa, sử dụng lệnh ssh. Cú pháp là ssh .

Quản lý hệ thống:

– ps: hiển thị các chương trình hiện thời đang chạy (rất hữu ích: ps là cái nhìn toàn bộ về tất cả các chương trình).
Trong danh sách đưa ra khi thực hiện lệnh ps, bạn sẽ thấy có số PID (Process identification – nhân dạng tiến trình).
Con số này sẽ được hỏi đến khi muốn ngừng một dịch vụ hay ứng dụng, dùng lệnh kill .

– top: hoạt động khá giống như Task Manager trong Windows. Nó đưa ra thông tin về tất cả tài nguyên hệ thống, các tiến trình đang chạy, tốc độ load trung bình… Lệnh top -d thiết lập khoảng thời gian làm tươi lại hệ thống. Bạn có thể đặt bất kỳ giá trị nào, từ .1 (tức 10 mili giây) tới 100 (tức 100 giây) hoặc thậm chí lớn hơn.

– uptime: thể hiện thời gian của hệ thống và tốc độ load trung bình trong khoảng thời gian đó, trước đây là 5 phút và 15 phút.

Thông thường tốc độ load trung bình được tính toán theo phần trăm tài nguyên hệ thống (vi xử lý, RAM, ổ cứng vào/ra, tốc độ load mạng) được dùng tại một thời điểm. Nếu tốc độ được tính toán là 0.37, tức có 37% tài nguyên được sử dụng. Giá trị lớn hơn như 2.35 nghĩa là hệ thống phải đợi một số dữ liệu, khi đó nó sẽ tính toán nhanh hơn 235% mà không gặp phải vấn đề gì. Nhưng giữa các phân phối có thể khác nhau một chút.

– free: hiển thị thông tin trên bộ nhớ hệ thống.
– ifconfig : để xem thông tin chi tiết về các giao diện mạng; thông thường giao diện mạng ethernet có tên là eth(). Bạn có thể cài đặt các thiết lập mạng như địa chỉ IP hoặc bằng cách dùng lệnh này (xem man ifconfig). Nếu có điều gì đó chưa chính xác, bạn có thể stop hoặc start (tức ngừng hoặc khởi_động) giao diện bằng cách dùng lệnh ifconfig up/down.

– passwd: cho phép bạn thay đổi mật khẩu (passwd người_dùng_sở_hữu_mật_khẩu hoặc tên người dùng khác nếu bạn đăng nhập hệ thống với vai trò root).
– useradd: cho phép bạn thêm người dùng mới (xem man useradd).
Để thoát hay đóng shell, gõ exit hoặc logout.

Nguồn : http://www.gocit.vn/bai-viet/cac-cau-lenh-thuong-dung-trong-linux/

Một số lệnh Linux cơ bản .

Một số lệnh cơ bản : khi “kết thân” với , nếu không nắm được một số câu lệnh cần thiết thì công việc quản trị của bạn sẽ gặp không ít khó khăn. Dưới đây là một số lệnh  commands cơ bản giúp cho việc quản trị của bạn dễ dàng hơn rất nhiều.

Lưu ý: hệ điều hành Linux phân biệt chữ hoa và chữ thường.

1. Hiển thị tiến trình trong hệ thống Linux

Một trong những công việc cần thiết khi quản trị hệ thống Linux đó là kiểm soát các tiến trình hiện đang chạy. Khi đã biết được những tiến trình nào đang chạy bạn có thể tắt những tiến trình gây giảm tốc độ của hệ thống. Ngoài ra, thông tin về những tiến trình hệ thống cho chúng ta biết nên tắt nhưng tiến trình làm cho hệ thống vận hành không ổn định. Do đó việc biết được những tiến trình nào đang chạy trên hệ thống rất quan trọng. Linux hỗ trợ nhiều phương pháp kiểm tra tiến trình, một trong số đó là sử dụng lệnh ps. Khi sử dụng lệnh này mọi thông tin về những tiến trình đang chạy sẽ được hiển thị. Bạn chỉ cần nhập cú pháp lệnh sau vào cửa sổ terminal:
# ps aux | less
Ngoài ra lệnh này có thể sử dụng kết hợp với một số tham số khác như:
# ps –A: Kiểm tra mọi tiến trình trong hệ thống.
# ps -U root -u root –N: Kiểm tra mọi tiến trình ngoại trừ những tiến trình hệ thống.
# ps -u username: Kiểm tra những tiến trình được thực hiện bởi một người dùng nhất định.
Hoặc bạn có thể sử dụng lệnh # top để xem những tiến trình đang chạy trên hệ thống trong thời gian thực.

2. Kiểm tra thông tin Socket và thông tin mạng TCP/UDP

Sau khi cấu hình những dịch vụ mạng của hệ thống Linux, bạn cần phải giữ lại tab của các cổng đang thực sự nhận tín hiệu trên giao diện mạng của hệ thống. Điều này rất quan trọng vì hệ thống có thể bị xâm nhập qua các cổng mở. Có một số công cụ quản lý Linux thông báo cho bạn biết thông tin của những cổng mởvà truy cập vào những cổng đang mở trên mạng. Một trong những phương pháp đơn giản và tin cậy nhất đó là sử dụng lệnh ss để kiểm tra thông tin Socket, ngoài ra lệnh này còn có thể hiển thị nhiều thông tin TCP và thông tin trạng thái hơn các công cụ khác. Lệnh ss này cung cấp thông tin về:

Mọi Socket TCP.
Mọi Socket UDP.
Mọi kết nối ssh/ftp/http/https.
Mọi tiến trình cục bộ được kết nối tới máy chủ X.
Mọi Socket TCP trong trạng thái FIN-WAIT-1.

Dưới đây là một số lệnh ss:
# ss –s: Hiển thị tổng số Socket.
# ss -1: Hiển thị mọi cổng mở.
# ss –pl: Kiểm tra tên tiến trình sử dụng Socket mở sử dụng lệnh sau:
# ss -lp | grep: Kiểm tra người dùng đang làm việc với Socket mở.
# ss -t –a: Hiển thị mọi Socket TCP.
# ss -u –a: Hiển thị mọi Socket UDP.
3. Theo dõi Average CPU Load và Disk Activity

Nếu là một quản trị viên hệ thống Linux, bạn cần phải biết phương pháp duy trì một sự cân bằng hợp lý trong quá trình tải đầu vào và đầu ra giữa các ổ đĩa vật lý. Bạn có thể thay đổi cấu hình hệ thống để thực hiện tác vụ này. Tuy nhiên có một phương pháp đơn giản hơn rất nhiều đó là sử dụng lệnh isostat để quản lý hệ thống thiết bị tải đầu vào và đầu ra trong Linux bằng cách theo dõi thời gian hoạt động và tốc độ truyền trung bình của những thiết bị này. Lệnh này sẽ thông báo thông tin của CPU (Central Processing Unit), thông tin đầu vào và đầu ra cho những thiết bị, phân vùng và hệ thống file mạng (NFS).
Để lấy thông tin thư mục NFS bạn hãy sử dụng lệnh sau:
# iostat –n
4. Kiểm tra Memory Map của các tiến trình trong Linux

Khi làm việc trong hệ thống Linux có thể bạn cần kiểm tra dung lượng bộ nhớ sử dụng trong hệ thống. Linux tích hợp nhiều lệnh cho phép kiểm tra dung lượng bộ nhớ chiếm dụng. Trong đó có một lệnh đơn giản giúp hiển thị thông tin tổng dung lượng đã chiếm dụng và chưa chiếm dụng của bộ nhớ vật lý và tổng dung lượng bộ nhớ đó là lệnh free.

Sau khi chạy lệnh này bạn sẽ thấy tổng dung lượng đã chiếm dụng và chưa chiếm dụng của bộ nhớ vật lý và tổng dung lượng bộ nhớ trong hệ thống. Ngoài ra nó còn hiển thị thông tin bộ nhớ đệm mà các nhân sử dụng.

5. Kiểm tra thời gian vận hành của hệ thống

Bạn có muốn biết máy chủ đã vận hành bao lâu? Nếu muốn bạn chỉ cần sử dụng lênh uptime để kiểm tra thời gian mà hệ thống đã vận hành. Lệnh đơn giản này không chỉ cho bạn biết thời gian hệ thống vận hành mà còn cho biết lượng người dùng đã đăng nhập vào hệ thống trong một khoảng thời gian trước đó.

6. Kiểm tra người dùng đăng nhập

Ngoài những công cụ quản lý Linux, bạn có thể sử dụng một lệnh để kiểm tra những người dùng nào đã thực hiên đăng nhập vào hệ thống và những gì họ đã thực hiện. Lệnh này sẽ hiển thị thời gian hiện tại, thời gian hệ thống đã vận hành, lượng người dùng đã đăng nhập.

Ngoài ra lệnh này cũng hiển thị lượng tải trung bình trong mỗi 1, 5 và 15 phút. Lệnh này rất hữu dụng với những Admin hệ thống muốn sử dụng thông tin tải trung bình để hoạch định dung lượng.
Để kiểm tra ai đã đăng nhập vào hệ thống và những tác vụ họ đã thực hiện bạn chỉ cần chạy lệnh sau:
# w username
7. Kiểm soát hành vi hệ thống, phần cứng và thông tin hệ thống trong Linux

Với nhiều người dùng Linux, kiểm soát hệ thống là một tác vụ phức tạp. Hầu hết các bản phân phối Linux tích hợp khá nhiều công cụ kiểm soát. Những công cụ kiểm soát này cung cấp các phương pháp có thể được áp dụng để kiểm tra thông tin hành vi hệ thống.

Việc kiểm soát hệ thống cho phép người dùng theo dõi nguyên nhân khả năng thực thi của hệ thống bị cản trở. Một trong những tác vụ cần thiết của quá trình kiểm soát hệ thống là tra cứu thông tin về hành vi hệ thống, phần cứng và thông tin bộ nhớ. Có một lệnh đơn giản giúp hiển thị thông tin về tiến trình, bộ nhớ, trang ghi, nhóm IO, lỗi và hành vi CPU đó là lệnh vmstat.
Bạn chỉ cần nhập lệnh sau vào cửa sổ terminal:
# vmstat 3
Ngoài ra bạn có thể sử dụng lệnh # vmstat –m để kiểm tra thông tin bộ nhớ, và lệnh # vmstat –a để hiển thị thông tin trang nhớ đang hoạt động và không hoạt động.

8. Kiểm tra thông tin phần cứng của hệ thống Linux

Với một số người dùng Linux thì việc kiểm tra thông tin phần cứng thật không dễ dàng. Linux là một hệ thống phức tạp nhưng nó lại tích hợp một số công cụ giúp lấy thông tin chi tiết của phần cứng, chẳng hạn chúng ta có thể sử dụng một lệnh khá đơn giản để kiểm tra thông tin đĩa cứng trên hệ thống đó là lệnh hdparm.

Lệnh này cung cấp một giao diện dòng lệnh để thực hiện quản lý nhiều loại đĩa cứng được hệ thống phụ điều khiển thiết bị ATA/IDE của Linux hỗ trợ. Nó cung cấp một lệnh giúp hiển thị thông tin xác minh như dung lượng, thông tin chi tiết, … trực tiếp từ ổ đĩa. Thông tin này được lưu dưới một định dạng mở rộng mới. Bạn chỉ cần đăng nhập dưới quyền root user và sử dụng lệnh sau:
# hdparm -I /dev/sda
Hoặc dùng lệnh:
$ sudo hdparm -I /dev/sda
Khi đó thông tin về đĩa cứng của hệ thống sẽ lập tức hiển thị.

9. Một số lệnh khác :

– pwd: đưa ra ngoài màn hình thư mục đang hoạt động (ví dụ: /etc/ssh).
– cd: thay đổi thư mục (ví dụ: cd .. – ra một cấp thư mục hiện tại; cd vidu – vào thư mục /vidu).
– ls: đưa ra danh sách nội dung thư mục.
- mkdir: tạo thư mục mới (mkdir tên_thumuc).
– touch: tạo file mới (touch ten_file).
– rmdir: bỏ một thư mục (rmdir ten_thumuc).
– cp: copy file hoặc thư mục (cp file_nguồn file_đích).
- mv: di chuyển file hoặc thư mục; cũng được dùng để đặt lại tên file hoặc thư mục (mv vị_trí_cũ vị_trí_mới hoặc mv tên_cũ tên_mới).

– rm: loại bỏ file (rm tên_file).
Để tìm kiếm file, bạn có thể dùng:
– find <tiêu chuẩn tìm kiếm>: dùng cho các tên file.
– grep < tiêu chuẩn tìm kiếm>: để tìm nội dung trong file
Để xem một file, bạn có thể dùng:
– more <tên file>: hiển thị file theo từng trang.
– cat < tên file>: hiển thị tất cả file.
– head < tên file>: hiển thị các dòng đầu tiên.
- tail < tên file>: hiển thị các dòng cuối cùng (có thể hữu ích trong những trường hợp như khi bạn muốn xem thông tin cuối cùng của một file hệ thống).

Để chính sửa file, bạn phải sử dụng trình soạn thảo tích hợp sẵn trên dòng lệnh. Thông thường, đây là vi và được dùng với cú pháp: vi <tên file>.Để giải nén một lưu trữ (thông thường có đuôi tar.gz), bạn phải dùng lệnh tar với cú pháp tar -xvf <tên_file>.

Để in một file, dùng lệnh lpr <tên_file>. Chú ý là bạn phải có một số daemon hoạt động để quản lý máy in. Thông thường đây là các cup (chủ yếu là UNIX Printing System) có thể sử dụng cho tất cả các phân phối chính.
Để loại bỏ file khỏi hàng đợi ở máy in (bạn có thể lên danh sách hàng đợi bằng lệnh lpq), sử dụng câu lệnhlprm <tên_file>.

Để lắp hoặc gỡ bỏ thiết bị (thêm vào hệ thống file với vai trò như một phương tiện được phép sử dụng), dùng:
– mount /dev/cdrom /media/: lắp ổ CD-ROM.
- mount /dev/cdrom /media/: gỡ ổ DC-ROM.

Các thiết bị này thường được cài và cho phép sử dụng một cách tự động. Nhưng có thể một ngày đẹp trời nào đó bạn lại phải tự mình thực hiện công việc này khi có lỗi xảy ra. Đừng lo lắng!

Để tạo một phân vùng (ít sử dụng )

Đầu tiên, tạo một thư mục trong /mnt (mkdir /dev/ổ_đĩa_mới). Sau đó sử dụng lệnh mount (mount /dev/source /dev/ ổ_đĩa_mới), trong đó /dev/source là thiết bị (tức phân vùng) bạn muốn lắp thêm vào hệ thống file.
Nếu muốn kết nối tới một host từ xa, sử dụng lệnh ssh. Cú pháp là ssh <tên_host>.
Quản lý hệ thống:

– ps: hiển thị các chương trình hiện thời đang chạy (rất hữu ích: ps là cái nhìn toàn bộ về tất cả các chương trình).
Trong danh sách đưa ra khi thực hiện lệnh ps, bạn sẽ thấy có số PID (Process identification – nhân dạng tiến trình).
Con số này sẽ được hỏi đến khi muốn ngừng một dịch vụ hay ứng dụng, dùng lệnh kill <PID>.

– top: hoạt động khá giống như Task Manager trong Windows. Nó đưa ra thông tin về tất cả tài nguyên hệ thống, các tiến trình đang chạy, tốc độ load trung bình… Lệnh top -d <delay> thiết lập khoảng thời gian làm tươi lại hệ thống. Bạn có thể đặt bất kỳ giá trị nào, từ .1 (tức 10 mili giây) tới 100 (tức 100 giây) hoặc thậm chí lớn hơn.

– uptime: thể hiện thời gian của hệ thống và tốc độ load trung bình trong khoảng thời gian đó, trước đây là 5 phút và 15 phút.

Thông thường tốc độ load trung bình được tính toán theo phần trăm tài nguyên hệ thống (vi xử lý, RAM, ổ cứng vào/ra, tốc độ load mạng) được dùng tại một thời điểm. Nếu tốc độ được tính toán là 0.37, tức có 37% tài nguyên được sử dụng. Giá trị lớn hơn như 2.35 nghĩa là hệ thống phải đợi một số dữ liệu, khi đó nó sẽ tính toán nhanh hơn 235% mà không gặp phải vấn đề gì. Nhưng giữa các phân phối có thể khác nhau một chút.
– free: hiển thị thông tin trên bộ nhớ hệ thống.
– ifconfig <tên interface>: để xem thông tin chi tiết về các giao diện mạng; thông thường giao diện mạng ethernet có tên là eth(). Bạn có thể cài đặt các thiết lập mạng như địa chỉ IP hoặc bằng cách dùng lệnh này (xem man ifconfig). Nếu có điều gì đó chưa chính xác, bạn có thể stop hoặc start (tức ngừng hoặc khởi_động) giao diện bằng cách dùng lệnh ifconfig <tên_giao_diện> up/down.

– passwd: cho phép bạn thay đổi mật khẩu (passwd người_dùng_sở_hữu_mật_khẩu hoặc tên người dùng khác nếu bạn đăng nhập hệ thống với vai trò root).

– useradd: cho phép bạn thêm người dùng mới (xem man useradd).
- rlogin: dùng để điều khiển hoặc thao tác lệnh trên một máy khác
- exit : thoát khỏi hệ thống (Bourne-Shell)
- logout: thoát khỏi hệ thống C-Shell
- id : chỉ danh của người sử dụng
- logname: tên người sử dụng login

- man : giúp đỡ
- newgrp: chuyển người sử dụng sang một nhóm mới
- psswd: thay đổi password của người sử dụng
- set : xác định các biến môi trường
- tty : đặt các thông số terminal
- uname: tên của hệ thống (host)
- who : cho biết những ai đang thâm nhập hệ thống

Dù ở phân phối nào, bạn cũng có thể dùng phím TAB để tự động hoàn chỉnh một lệnh hoặc tên file. Điều này rất hữu ích khi bạn quen với các lệnh. Bạn cũng có thể sử dụng các phím lên, xuống để cuộn xem các lệnh đã nhập. Bạn có thể dùng lệnh đa dòng trên một dòng. Ví dụ như, nếu muốn tạo ba thư mục chỉ trên một dòng, cú pháp có thể là: mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3.

Một điều thú vị khác nữa là các lệnh dạng pipe. Bạn có thể xuất một lệnh thông qua lệnh khác. Ví dụ: man mkdir | tail sẽ đưa ra thông tin các dòng cuối cùng trong trang xem “thủ công” của lệnh mkdir.

Nếu lúc nào đó được yêu cầu phải đăng nhập với tài khoản gốc (tức “siêu” admin của hệ thống), bạn có thể đăng nhập tạm thời bằng cách dùng lệnh su. Tham số -1 (su-1) dùng để thay đổi thư mục chủ và cho các lệnh đã hoặc đang dùng. Chú ý là bạn cũng sẽ được nhắc một mật khẩu.
Lệnh liên quan đến hệ thống
  • exit: thoát khỏi cửa sổ dòng lệnh.
  • logout: tương tự exit.
  • reboot: khởi động lại hệ thống.
  • halt: tắt máy.
  • startx: khởi động chế độ xwindows từ cửa sổ terminal.
  • mount: gắn hệ thống tập tin từ một thiết bị lưu trữ vào cây thư mục chính.
  • unmount: ngược với lệnh mount.
Lệnh thao tác trên tập tin
  • ls: lấy danh sách tất cả các file và thư mục trong thư mục hiện hành.
  • pwd: xuất đường dẫn của thư mục làm việc.
  • cd: thay đổi thư mục làm việc đến một thư mục mới.
  • mkdir: tạo thư mục mới.
  • rmdir: xoá thư mục rỗng.
  • cp: copy một hay nhiều tập tin đến thư mục mới.
  • mv: đổi tên hay di chuyển tập tin, thư mục.
  • rm: xóa tập tin.
  • wc: đếm số dòng, số kí tự… trong tập tin.
  • touch: tạo một tập tin.
  • cat: xem nội dung tập tin.
  • vi: khởi động trình soạn thảo văn bản vi.
  • df: kiểm tra dung lượng đĩa.
  • du: xem dung lượng đĩa đã dùng cho một số tập tin nhất định
Lệnh khi làm việc trên terminal
  • clear: xoá trắng cửa sổ dòng lệnh.
  • date: xem ngày, giờ hệ thống.
  • cal: xem lịch hệ thống.
Lệnh quản lí hệ thống
  • rpm: kiểm tra gói đã cài đặt hay chưa, hoặc cài đặt một gói, hoặc sử dụng để gỡ bỏ một gói.
  • ps: kiểm tra hệ thống tiến trình đang chạy.
  • kill: dừng tiến trình khi tiến trình bị treo. Chỉ có người dùng super-user mới có thể dừng tất cả các tiến trình còn người dùng bình thường chỉ có thể dừng tiến trình mà mình tạo ra.

  • top: hiển thị sự hoạt động của các tiến trình, đặc biệt là thông tin về tài nguyên hệ thống và việc sử dụng các tài nguyên đó của từng tiến trình.
  • pstree: hiển thị tất cả các tiến trình dưới dạng cây.
  • sleep: cho hệ thống ngừng hoạt động trong một khoảng thời gian.
  • useradd: tạo một người dùng mới.
  • groupadd: tạo một nhóm người dùng mới.
  • passwd: thay đổi password cho người dùng.

  • userdel: xoá người dùng đã tạo.
  • groupdel: xoá nhóm người dùng đã tạo.
  • gpasswd: thay đổi password của một nhóm người dùng.
  • su: cho phép đăng nhập với tư cách người dùng khác.
  • groups: hiển thị nhóm của user hiện tại.
  • who: cho biết ai đang đăng nhập hệ thống.
  • w: tương tự như lệnh who.
  • man: xem hướng dẫn về dòng lệnh như cú pháp, các tham số…
Để thoát hay đóng shell, gõ exit hoặc logout.

Để hiểu và sử dụng tốt các câu lệnh trên, các bạn nên sử dụng lệnh man với cú pháp: man ten_cau_lenh để có được những thông tin đầy đủ về chức năng cũng như cú pháp của câu lệnh. Chúc các bạn có những giây phút thú vị khi khám phá hệ điều hành này.

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