Юникс shell-ийн командууд
Юникс орчинд ороход шел дээр ажиллах нь зайлшгүй. Шел дээр ажиллах нь эхлээд залхуутай мэт санагдаж болох ч, энэ нь командууд болон багаж хэрэгслүүдийг хир зөв, үр дүнтэй ашиглаж байгаагаас хамаардаг. Үүний тулд хийж байгаа үйлдлээ хэрхэн илүү хялбар хурдан хийх вэ гэдгийг бодож, интернэтээс туршлага судлаж, шинэ хэрэгсэл, шинэ команд байнга сурч байх хэрэгтэй. Ингээд зарим хэрэг болохуйц командуудыг сийрүүлье.
Ямар шел дээр ажиллаж байгааг харах
echo $SHELL
/bin/bash
Командын гарын авлагыг унших
man ls
Програм хаана байрлаж байгааг харах
whereis cp
cp: /bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz
Ажиллаж байгаа директори харах
pwd
/home/ochiro
Файлын төрлийг харах
file pauker.pau.gz
pauker.pau.gz: gzip compressed data, from MS-DOS
Файлын эхний 5 мөрийг харах
head -n 5 ./tomcat/logs/localhost.2007-03-05.log
Mar 5, 2007 4:36:16 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Mar 5, 2007 4:36:16 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Mar 5, 2007 4:36:17 PM org.apache.catalina.core.ApplicationContext log
Файлын сүүлийн 5 мөрийг харах
tail -n 5 ./tomcat/logs/manager.2007-03-05.log
INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'
Mar 5, 2007 5:15:48 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: restart: Reloading web application at '/testapp'
Mar 5, 2007 5:15:48 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'
Лог файлын сүүлийн мөрүүдийг ажиглах
tail -f ./tomcat/logs/localhost.2007-03-05.log
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
Хоёр файлын ялгааг олох
diff dic.txt dic-new.txt
1a2
\> new line
Удаан ажиллах командыг ард ажиллуулах
bin/backup-files.sh &
\[1\] 26490
Ард ажиллаж байгаа командуудыг харах
jobs
\[1\]+ Stopped bin/backup-files.sh
Ажиллуулсан командуудынхаа түүхийг үзэх
history
1 echo $SHELL
2 whereis cp
3 pwd
4 file pauker.pau.gz
5 head -n 5 TUTORIAL~
6 cp dic.txt dic-new.txt
7 cat dic.txt
8 vi dic-new.txt
9 diff dic.txt dic-new.txt
Файл байхгүй бол үүсгэх
touch newfile.txt
Дискний сул зайг харах
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 13G 7.6G 4.5G 63% /
udev 506M 152K 506M 1% /dev
/dev/hda3 51G 25G 26G 49% /home
/dev/hdb1 38G 25G 2.2G 92% /mnt/FAT32
Директори доторхи файлуудыг хэмжээгээр нь буурах эрэмбээр жагсаах
du -sh archive/\* | sort -nrk 1
859M archive/nihongo
303M archive/photo
277M archive/lessons
233M archive/install
1.8G archive/books
Бичсэн скриптдээ ажиллах зөвшөөрөл тавих
chmod u+x scripts/upload.sh
Тооны тооллыг хөрвүүлж харах
echo 'obase=10; ibase=16; E59' | bc
3673
Олон мөр оролт
bc <<> A
\> EOF
10
Директорын бүтцийг ганц командаар үүсгэх
mkdir -p project/{lib/ext,bin,src,doc/{html,txt,pdf},demo/stat/a}
Директорийг архивлах
tar cvf /tmp/archive.tar archive
Файлыг шахах
gzip archive.tar
Архивийн файлыг сонгосон директори луу задлах
tar xvf -C dest/to/extract archive.tar.gz
Эхний команд тэг утга буцаасан тохиолдолд дараагийн команд ажиллана
cd directory/exists && tar xvf ~/archive.tar
Эхний команд тэг биш утга буцаавал дараагийнх ажиллана
cd directory/not/exists || mkdir -p directory/not/exists
Директори байхгүй бол үүсгээд архивийг задлана
cd dest/dir || mkdir -p dest/dir && tar xvf -C dest/dir ~/archive.tar
Урт командыг арагш ташуу зураасаар хуваах
cd dest/to/extract || \\
\> mkdir -p est/to/extract && \\
\> tar xvf -C est/to/extract ~/archive.tar
Зарим командуудыг дэд шелд ажиллуулаад гаралтыг admin руу мэйлдэх
( cd dest/to/extract/ || mkdir -p dest/to/extract && \\
\> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) \\
\> | mailx admin -S "Archive contents"
Зарим командуудыг бүлэглэж ажиллуулаад гаралтыг admin руу мэйлдэх
{ cp ${VAR}a . && chown -R guest.guest a && \\
\> tar cvf newarchive.tar a; } | mailx admin -S "New archive"
Эхний командаар гарч ирэх жагсаалтууд дээр өөр команд ажиллуулах
ls -1 | xargs file
bin: directory
desk-books: directory
Desktop: directory
diagrams: directory
dic-new.txt: UTF-8 Unicode text
dic.txt: UTF-8 Unicode text
Файл дотроос текст хайх
grep implement TUTORIAL.txt
On systems which do not implement suspending, C-z creates a subshell
function which implements the C-p command.
Файл дотроос хайхдаа regular expression ашиглах
grep ^The TUTORIAL.txt
The characters ">>" at the left margin indicate directions for you to
The first thing that you need to know is how to move around from place
The following commands are useful for viewing screenfuls:
There are several ways you can do this. You can use the arrow keys,
The location of the cursor in the text is also called "point". To
There is a whole series of commands that start with CONTROL-x; many of
wc хэрэглэлгүйгээр файл дотор хайсан текст хэдэн мөрөнд байгааг тоолох
grep -c ^The TUTORIAL.txt
30
awk ашиглаж багана сонгож харах
ls -l | awk '{print $3 " " $8 }'
ochiro bin
ochiro desk-books
ochiro Desktop
ochiro diagrams
ochiro dic-new.txt
ochiro dic.txt
Сонгосон баганаас хайх
ls --time-style=locale -l | awk '$6 == "Mar"'
drwxr-xr-x 11 ochiro users 3064 Mar 1 14:34 desk-books
drwxr-xr-x 2 ochiro users 784 Mar 2 09:53 Desktop
\-rw-r--r-- 1 ochiro users 13 Mar 7 13:55 dic-new.txt
drwxr-xr-x 5 ochiro users 2664 Mar 6 10:43 downloads
drwxr-xr-x 2 ochiro users 48 Mar 5 13:55 ftpserver
drwxrwxrwx 7 ochiro users 400 Mar 5 18:03 wbt
Файл дотроос текст хайж(cursor) солиод(pointer) шинэ файлд хадгалах
sed s/cursor/project\_name/g TUTORIAL.txt > TUTORIAL\_new.txt
Олон файлаас(*.txt) текст хайж(searchtext) солих(replacetext)
find ./ -name \*.txt -type f -exec sed -i 's/searchtext/replacetext/' {} \\;
Хамгийн их хэрэглэсэн 10 командаа харах
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}' \\
\> |sort|uniq -c|sort -nr|head -10
125 ls
32 su
32 cd
26 vi
25 sudo
23 cat
19 ping
19 netstat
19 exit
18 ps
Сүүлийн нэг цагийн дотор өөрчөгдсөн файлууд
find ~ -mmin -60 \\! -type d
/home/ochiro/.thunderbird/Mail/Junk
/home/ochiro/.thunderbird/Mail/Sent
/home/ochiro/.thunderbird/Mail/Inbox.msf
/home/ochiro/.thunderbird/Mail/Drafts
/home/ochiro/.thunderbird/Mail/Inbox
/home/ochiro/.thunderbird/Mail/Junk.msf
/home/ochiro/.thunderbird/Mail/Sent.msf
/home/ochiro/.thunderbird/Mail/Drafts.msf
/home/ochiro/TUTORIAL\_new.txt
/home/ochiro/dic.txt
Эх сурвалжууд:
- UNIX tips and tricks for a new user, Part 1: File maintenance tools
- UNIX tips and tricks for a new user, Part 3: Introducing filters and regular expressions
- UNIX tips and tricks for a new user, Part 4: Some nifty shell tricks
- Bash Reference Manual
- UNIX tips: Learn 10 good UNIX usage habits
- UNIX tips: Productivity tips
- AWK