Professional Documents
Culture Documents
com/2012/11/13/cac-lenh-co-ban-trong-linux/
Cho cc bn y la mt s lnh c bn trong h h iu hnh LINUX. Khi no chng ta dng nhng lnh ny? l khi chng ta thc hin Remote config, lm vic trn my nhng m qua giao din Command line qua ca s Terminal, hay n gin l nhng ai thch lm vic qua CLI. Cc lnh ny l cc lnh ph bin nhng m ty vo OS m chng s c i ch khc nhau. Chng ta s im qua mt s lnh sau:
Cc Lnh V Khi To
rlogin: dng iu khin hoc thao tc lnh trn mt my khc exit : thot khi h thng (Bourne-Shell)
man : gip
setcolor: t mu nn v ch ca mn hnh
mail: gi nhn th tn in t
mesg : cm/cho php hin th thng bo trn mn hnh (bi write/ hello)
vi : son tho vn bn
write/hello: cho php gi dng thng bo n nhng ngi s dng trong h thng
Lnh V Th Mc cd : i th mc
cp : sao chp 2 th mc
mkdir: to th mc
rm : loi b th mc
find: tm v tr ca tp tin
mv : di chuyn/i tn mt tp tin
wc : m s t trong tp tin
Cc Lnh V Phn Quyn chgrp: chuyn ch quyn tp tin, th mc t mt nhm sang mt nhm khc
lp : in ti liu ra my in
Lnh v h thng
top: Xem trng thi v h thng v cc process ang chy tng t nh Task Manager trong Windows.
Ring cho RedHat Theo ti c bit th Vit Nam hin nay HDH Linux ph bin nht l Redhat nn y chng xin trnh by thm v rpm
Cc lnh thng c thm rt nhiu cc thng s i theo. bit thm v chi tit v chng cc bn c th dng lnh man command hoc command help vi command l lnh cn xem.
Tip theo chng ta s i su vo chi tit mt s lnh. Ti liu c son v chnh sa. Nn c g sai st mong cc bn gp .
x dng dng lnh u tin bn cn bt command shell ln, ci ny tng t nh MS DOS ca windows.Ty theo h iu hnh m bn ang dng l g m n s l Konsole hay Terminal Sau bn cn c quyn root bng lnh su (hay sudo trong Ubuntu). Khi bn c quyn root du nhc trong ca s command shell thng l: [root@duchai ~]# Lnh thng k dung lng th mc Linux [root@unix1 webhostings]# du -sh *
Cc ch s uid v gid s cho bit quyn hn ca bn trn h thng. 0 l quyn cao nht ri.By gi bn mun login vi user mi bn s dng lnh : useradd
vy l bn c user mi l kikicoco trong h thng.Lnh useradd c rt nhiu tham s khc nhau, xem chi tit bn dng lnh man
Lc trc khi to user kikicoco chng ta cha to mt khu, by gi to mt khu cho user ny, bng lnh passwd.
Vy l user kikicoco ang th mc /root.Cc lnh v th mc trn unix tng t nh trn MS DOS ca windows, ch c mt s im khc bit.Lnh ls s tng ng vi dir.
Vy l li ri, user kikicoco khng c quyn s dng lnh ls. Lc trc khi to user ti cha thm shell cho user nn user s khng c quyn s dng lnh ny. By gi ti s thm shell cho user.Trc tin cn chuyn v user root bng lnh : su root, n s hi mt khu > nhp mt khu ca root vo.Bn dng lnh : usermod thay i thng tin ngi dng, c php nh sau:
a ah, vn b li. Vy l khng phi ri, lc ny ta hiu sai. Khng phi user kikicoco khng c quyn dng shell,v vn dng c lnh pwd, M l user kikicoco khng c quyn i vi th mc /root
V vi mt th mc quyn s c phn cho : Owner Group others (ngi s hu nhm ngi khc)
Owner l root
Group l root
drwxr-x : quyn i vi ngi dng, ch d u c ngha y l th mc, tip theo l quyn ca owner :
rwx :> owner c ton quyn trn th mc ny, owner l root nn user root c ton quyn trn th mc ny.
r-x :> group c quyn c v chy file, khng c quyn ghi vo th mc ny.
Ni thm v cch th hin quyn i vi th mc, nh trn ci ni v cch th hin cc quyn.drwxr-x s tng ng 740, khi th mc quyn t do nht l rwxrwxrwx 777 tc l bt k ai cng c y cc quyn vi th mc . thay i quyn bn dng lnh CHMOD, thay i owner bn dng lnh chown, thay i group bn dng lnh chgroup.Vic t quyn hn ng s l cc k quan trng i vi mt h thng, khng ch UNIX.
[root@duchai /]# vi
Trnh son tho s hin ra. Nh bn Fedora ti ang dng th n thay th vi bi VIM :
VIM son tho thun tay hn vi happy bn dng th m xem big grin
ghi li file bn bm phm ESC thot khi ch Insert. Sau nh :qw lu li v thot ra khi vi.
hello [New] 1L, 14C written [root@duchai /]# more hello hello world ! [root@duchai /]#
http://www.ss64.com/bash/vi.html
Open line above cursor O Insert text at beginning of line I Insert text at cursor i Insert text after cursor a
Go to last line G Scroll by sentence f/b ( ) Scroll by word f/b w b Move left, down, up, right h j k l Left 6 chars 6h Directional Movement Arrow Keys Go to line #6 6G
Deleting text (command mode): Change word cw Replace one character r Delete word dw Delete text at cursor x Delete entire line (to buffer) dd
Copy n lines nyy Copy lines 1-2/paste after 3 :1,2t 3 Paste above current line P
Join previous line J Search backward for string ?string Search forward for string /string Find next string occurrence n % (entire file) s (search and replace) /old text with new/ c (confirm) g (global all) :%s/oldstring/newstring/cg Ignore case during search :set ic Repeat last command . Undo previous command u Undo all changes to line U
Save and Quit (command mode): Save changes to buffer :w Save changes and quit vi
Quit without saving :q! Save lines to new file :10,15w file
* Th mc /bin
* Th mc /etc
Th mc ny cha cc cc file con file ca h thng, cng nh cha thng tin v cc service cn khi ng khi h iu hnh chy.
*Th mc /usr
*Th mc /dev
chnh l tt c cc thit b phn cng m h iu hnh dng, trn h thng Unix tt c u l file, nh ti ni trn.
V d : cng s l /dev/hda, c th c 2 loi cng IDE v SCSI, nh bn dng thng thng l IDE, SCSI thng c dng cho cc my ch v dung lng thng l 36GB, 72GB,
*Th mc /boot
Khi bn dng mt user khc truy nhp vo th mc ny, bn s khng c quyn g vi th mc ny, ging nh user kikicoco phn trc.
y chnh l Users home directory th mc ring ca user. Trn h thnh Unix khi mt user mi to ra n s to km theo 1 th mc cho user . Thng thng cc th mc ny s nm trong th mc /home. Nhn tin y ti ni lun v th mc /home.
* Th mc /sbin
Th mc ny l mt th mc gii hn quyn hn, n cha cc chng trnh kiu nh th mc /bin. Nhng bn khng th lm g n n c. Ch nhng user c quyn root mi c th Shutdown cc chng trnh y.
* Th mc /tmp
Th mc ny ng nh tn ca n, n cha cc file tm do h thng sinh ra. V chia s cho bt k chng trnh no nn th mc ny c t quyn hn rt thoi mi :
* Th mc /var
Th mc ny cha cc file c th thay i kch thc (variable size), nn thng thng trong th mc ny s cha cc database nh : mysql,.. hay mail server,
* Th mc /lib
Lib l vit tt ca library. Th mc /lib cha cc file th vin chng trnh. Mi mt chng trnh s c th vin ring ca mnh.
* Cc th mc khc :
- /mnt
- /cdrom
- /floppy
Ban u tt c cc th mc ny u rng. Khi bn cm USB vo n s nm trong /mnt hoc bn cn mount n vo trong /mnt (ci ny ni sau happy). Khi cho a CDROM vo th d liu s c t ng mount vo th mc /cdrom. Tng t i vi floppy. Phn ny ni v cch : tt my nh th no ? khi ng nh th no ?
* Lnh : shutdown
-f Reboot fast, by suppressing the normal call to fsck when rebooting. -h Halt the system when shutdown is complete.
-t sec
T kernel 2.74 tr v sau ny, lnh halt, reboot khng c gi trc tip m n c tch hp vo trong lnh shutdown nh bn thy trn. Nu bn dng cc kernel c th vn dng c cc lnh ny.
Shells l g ?
Bn c th hiu nm na shell l 1 cch computer giao tip vi ngi dng hay ni cch khc l cch computer nhn lnh t ngi dng. Thn thng trn Linux dng bash shell. Shell l gip ngi dng lm vic vi my tnh d dng hn vi nhng cu lnh thn thin mang tnh cht gi nh.
* File .bashrc
Mi mt user khi c to ra s c 1 shell cho n nh ti ni phn trc, nh ngha shell cho user nm trong file .bashrc trong th mc /home/<tn user>, v d y l /home/kikicoco
[root@duchai /]# cd /home/ [root@duchai home]# cd kikicoco/ [root@duchai kikicoco]# ls -al total 56 drwxr-xr-x 2 kikicoco kikicoco 4096 Nov 29 06:00 . drwxr-xr-x 4 root root 4096 Nov 28 14:49 .. -rw-rr 1 kikicoco kikicoco 24 Nov 28 14:49 .bash_logout -rw-rr 1 kikicoco kikicoco 191 Nov 28 14:49 .bash_profile -rw-rr 1 kikicoco kikicoco 124 Nov 28 14:49 .bashrc -rw-rr 1 kikicoco kikicoco 120 Nov 28 14:49 .gtkrc -rw- 1 kikicoco kikicoco 35 Nov 29 06:00 .lesshst
# User specific aliases and functions [root@duchai kikicoco]# more .bash_profile # .bash_profile
PATH=$PATH:$HOME/bin
Trong file .bashrc c ni n cc alias do ngi dng nh ngha. # User specific aliases and functions
Alias l g ?
v d ti thm dng :
alias rm=rm -i
Th iu ny c ngha l khi ti nh lnh rm trong terminal th lnh ny s c hiu l rm -i y chnh l alias ca rm.
V sao li cn n alias ?
trn trong lnh rm c tham s -i, i tc l interactive (prompt before any removal) c ngha l khi c tham xa -i th bt c file no b xa h iu hnh s hi xem ta c chc chn xa khng.
Nu dng tham s -f : force (ignore nonexistent files, never prompt) th h iu hnh s xa m khng cn hi. Khi bn mun xa nhanh th hy dng tham s ny.
Vic dng alias nhm mc ch to 1 route cho ngi dng. c bit i vi nhng my tnh quan trng nh my ch chng hn vic xa file cn phi ht sc thn trng, nu nh bn dng lnh sau : rm -R -f * m khng to alias nh trn s khin ton b s
Bn c th to alias tm thi bng cch dng lnh alias hoc xa 1 alias bng lnh unalias:
http://www.ss64.com/bash/ Backup sao lu gi liu vi UNIX Cc lnh cn dng : tar, gzip, gunzip
V d vi tar :
tar -czvf MyArchive Source_file hoc tar create gzip verbose file=MyArchive Source_file
tar -xzvf MyArchive Source_file hoc tar extract gunzip verbose file=MyArchive Source_file
#!/bin/bash Date=`date +%a` Day=`date +%m%d` if [ $Date == 'Sun' ] then cd /mysqldata for ix in * do if [ -d $ix ] then tar -czvf /kikicoco/backup/database_$Day.$ix.tar $ix fi done fi
Sau chmod +x cho file db_backup.sh c ngha l cho file ny c quyn chy sau to schedule cho file ny.
[root@duchai etc]# ls -l| grep cron -rw-rr 1 root root 329 Feb 11 2006 anacrontab drwxr-xr-x 2 root root 4096 Feb 16 2006 cron.d drwxr-xr-x 2 root root 4096 Aug 3 13:43 cron.daily -rw-rr 1 root root 0 Aug 3 13:21 cron.deny drwxr-xr-x 2 root root 4096 Dec 11 2005 cron.hourly drwxr-xr-x 2 root root 4096 Aug 3 13:18 cron.monthly -rw-rr 1 root root 255 Dec 11 2005 crontab drwxr-xr-x 2 root root 4096 Aug 3 13:21 cron.weekly [root@duchai etc]# more crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
S dng crontab l bit cc jobs ca user hin ti. Nu cha c dng lnh crontab -e to jobs.
Minute(0-59) Hour (0-23) Day of Month (1-31) Month (1-12 or Jan-Dec) Day of Week (0-6 or Sun-Sat) Command
0 2 12 * 0,6 /usr/bin/find
rpm -q program_name > kim tra xem 1 chng trnh c ci hay cha ?
V d vi Fedora 5/6:
[root@duchai sysconfig]# rpm -q mysql mysql-5.0.18-2.1 [root@duchai sysconfig]# rpm -q firefox firefox-1.5.0.1-9
Cc lnh c bn vi yum:
Ci t : yum -y install <tn phn mm(gi)> G b : yum -y remove <tn phn mm> Xem cc gi ci : yum list <tn phn mm>
V d : xem cc gi ci ca php :
[root@web ~]# yum list php* Loading installonlyn plugin Setting up repositories core 100% |=========================| 1.1 kB 00:00 updates 100% |=========================| 1.2 kB 00:00 extras 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 306 kB 00:01 ################################################## 1072/1072 Installed Packages php.i386 5.1.6-3.1.fc6 installed php-Smarty.noarch 2.6.13-1.fc6 installed php-bcmath.i386 5.1.6-3.1.fc6 installed php-cli.i386 5.1.6-3.1.fc6 installed php-common.i386 5.1.6-3.1.fc6 installed php-gd.i386 5.1.6-3.1.fc6 installed php-mbstring.i386 5.1.6-3.1.fc6 installed
/usr/sbin/mkfile 1024m /swapfile > to swap file /usr/sbin/swap -a /swapfile > cho h thng bit swap file mi nm u
swap -l
S lc li 1 s lnh!
mv dir1 new_dir i tn/ di chuyn 1 tp tin hoc th mc cp file1 file2 sao chp 1 tp tin cp dir/* . sao chp tt c cc tp tin trong th mc cp -a /tmp/dir1 . sao chp th mc ang lm vic cp -a dir1 dir2 sao chp mt th mc ln -s file1 lnk1 to mt ng dn n 1 tp tin hoc th mc ln file1 lnk1 to 1 ng dn vt l n 1 tp tin hoc th mc touch -t 0712250000 file1 thay i thi gian to file hoc th mc- (YYMMDDhhmm) file file1 hin th kiu tp tin ch vn bn iconv -l hin danh sch m ha iconv -f fromEncoding -t toEncoding inputFile > outputFile to mi t h s c nhp vo cho bi vic gi thit n c m ha trong fromEncoding v chuyn i n toEncoding. find . -maxdepth 1 -name \*.jpg -print -exec convert {} -resize 8060 thumbs/ {} \; thay i kch thc tp tin trong th mc hin hnh v gi chng n th mc thumbnails (ci ny ko bit dch sao) c iu cu chuyn i t Imagemagick
File search
find / -name file1 tm tp tin v th mc trong th mc h thng root t du /s find / -user user1 tm tp tin v th mc thuc v user1 find /home/user1 -name \*.bin tm tp tin vi phn m rng . bin t th mc / home/user1 find /usr/bin -type f -atime +100 tm tp tin nh phn v ko c s dng hn 100 ngy find /usr/bin -type f -mtime -10 tm tp tin c to ra hoc thay i trong vng 10 ngy gn nht find / -name \*.rpm -exec chmod 755 {} \; tm tp tin vi phn m rng .rpm v phn quyn find / -xdev -name \*.rpm tm tp tin vi phn m rng .rpm b qua cc phn vng cdrom, pen-drive, etc. locate \*.ps tm tp tin vi phn m rng .ps trc khi chy lnh updatedb whereis halt xut hin v tr tp tin nh phn, ngun hoc hng dn o which halt xut hin y ng dn nh phn / phn ng dng
Mounting a Filesystem
mount /dev/hda2 /mnt/hda2 mount a tn l hda2 xc minh tn ti ca th mc / mnt/hda2 umount /dev/hda2 ngng mount a c tn hda2 fuser -km /mnt/hda2 p ngng mount khi thit b ang bn umount -n /mnt/hda2 ngng mount v ko ghi ln tp tin /etc/mtab - c tc dng khi tp tin c thuc tnh readonly hoc b full cng mount /dev/fd0 /mnt/floppy mount mt a mm mount /dev/cdrom /mnt/cdrom mount a cdrom / dvdrom mount /dev/hdc /mnt/cdrecorder mount a cdrw / dvdrom mount /dev/hdb /mnt/cdrecorder mount a cdrw / dvdrom mount -o loop file.iso /mnt/cdrom mount mt tp tin hoc iso image mount -t vfat /dev/hda5 /mnt/hda5 mount a Windows FAT32 file system mount /dev/sda1 /mnt/usbdisk mount a usb pen-drive or flash-drive mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share
Disk Space
df -h hin danh sch phn vng c mount ls -lSr |more hin kch c ca tptin v th mc v sp xp theo dung lng du -sh dir1 estimate space used by directory dir1 du -sk * | sort -rn hin dung lng ca tp tin v th mc v sp sp theo dung lng rpm -q -a qf %10{SIZE}t%{NAME}n | sort -k1,1n hin dung lng c s dng bi gi c ci t v sp xp theo dung lng (fedora, redhat and like) dpkg-query -W -f=${Installed-Size;10}t${Package}n | sort -k1,1n hin dung lng c ci t bi gi deb v sp xp theo dung lng (ubuntu, debian and like)
useradd -c Name Surname -g admin -d /home/user1 -s /bin/bash user1 to mt ngi dng mi trong nhm admin useradd user1 to mt ngi dng mi userdel -r user1 xa ngi dng ( -r loi tr th mc gc) usermod -c User FTP -g system -d /ftp/user1 -s /bin/nologin user1 thay i thuc tnh ngi dng passwd i mt m passwd user1 i mt m ngi dng (ch dnh cho root) chage -E 2005-12-31 user1 thit lp di ca mt khu ngi dng pwck kim tra c php ng v tp tin nh dng trong /etc/passwd v s tn ti ca ngi dng grpck kim tra c php ng v tp tin nh dng trong /etc/group v s tn ti ca nhm newgrp group_name ng nhp ti mt nhm mi thay i nhm mc nh (ca) nhng tp tin mi c to ra.