Copyable HTML: бүх текстийг mouse-аар select хийгээд Ctrl+C ашиглан шууд хуулж болно.
ЛАБОРАТОРИЙН АЖИЛ 2
ТЕРМИНАЛЫН ОРЧИН, ФАЙЛЫН СИСТЕМ, ЗАМ, REDIRECT БОЛОН PIPE
| Үзүүлэлт | Мэдээлэл |
| Хичээлийн долоо хоног | III–IV долоо хоног |
| Нийт хугацаа | 180 минут (90 + 90 минут) |
| Хэлбэр | Ubuntu Desktop LTS виртуал машин дээр бие даан гүйцэтгэнэ |
| Хамаарах CLO | CLO 2, CLO 6 |
| Үнэлгээний хэлбэр | Танхимд командыг цээжээр бичиж ажиллуулан командуудыг тайлбарлаж хамгаална |
| Нийт оноо | 8 оноо |
1. Лабораторийн ажлын зорилго
Ubuntu терминалын орчинд командын бүтэц, тусламжийн систем, файл ба директорын үйлдэл, абсолют болон харьцангуй зам, стандарт оролт гаралтын дахин чиглүүлэлт, хоолой ашиглан командуудыг холбоход суралцана. Оюутан үндсэн командыг танхимд тусламжгүй зөв бичиж ажиллуулна. Нэмэлт команд болон нарийн сонголтыг man, --help ашиглан өөрөө олж, командын зориулалт, сонголт, аргумент, гаралт болон гарсан алдааг амаар тайлбарлана.
2. Эзэмших мэдлэг чадвар
- Терминал нээж, prompt болон орчны үндсэн мэдээллийг тайлбарлах
help, --help, man, whatis, apropos ашиглан командын мэдээлэл олох
- Файл болон директор үүсгэх, хуулах, зөөх, нэр өөрчлөх, аюулгүй устгах
- Абсолют болон харьцангуй замыг ялгаж зөв ашиглах
>, >>, <, 2> ашиглан оролт гаралтыг дахин чиглүүлэх
| болон tee ашиглан хэд хэдэн командыг нэг урсгал болгон холбох
- Командын үр дүн, алдаа, засварыг нотолгоотой тайлбарлах
3. Шаардлагатай орчин
- VirtualBox эсвэл VMware дээр суулгасан Ubuntu Desktop LTS
- Өөрийн оюутны код, нэрээр ялгасан виртуал машин
- Terminal болон интернетгүй үед ч ажиллах үндсэн GNU хэрэгслүүд
- III–IV долоо хоногт танхимд ашиглах ажиллагаатай виртуал машин
4. Онолын хэсэг
4.1 Терминал, shell болон prompt
Терминал нь хэрэглэгч команд бичиж, shell-ийн боловсруулсан үр дүнг харах график программ юм. Shell нь хэрэглэгчийн бичсэн командыг задлан уншиж, тохирох программыг ажиллуулдаг командын тайлбарлагч. Ubuntu-д түгээмэл shell нь Bash юм. Prompt нь shell команд хүлээж байгааг харуулах мөр бөгөөд хэрэглэгчийн нэр, компьютерийн нэр, одоогийн байрлал болон эрхийн түвшнийг илэрхийлнэ.
oyutniikod@ubuntu:~/F_NSM101/LAB2$
График орчинд Terminal нээх үндсэн арга нь Ctrl + Alt + T.
4.2 Командын бүтэц ба тусламжийн систем
ls -la ~/F_NSM101/LAB2
| Хэсэг | Жишээ | Үүрэг |
| Command | ls | Файл болон директорын жагсаалтыг харуулна |
| Option | -la | Дэлгэрэнгүй мэдээлэл болон далд объектыг харуулна |
| Argument | ~/F_NSM101/LAB2 | Команд ажиллах директорын зам |
Командын мэдээллийг --help, man, whatis, apropos ашиглан олно.
4.3 Файл, директор ба зам
| Замын төрөл | Жишээ | Тайлбар |
| Абсолют зам | /home/davaasuren/F_NSM101/LAB2/file1 | Үндсэн / директороос эхэлсэн бүрэн зам |
| Харьцангуй зам | ../LAB2/file1 | Одоогийн байрлалаас тооцсон зам |
| Home товчлол | ~/F_NSM101/LAB2/file1 | Одоогийн хэрэглэгчийн home директорыг ~ тэмдэглэнэ |
4.4 Стандарт урсгал, redirect болон pipe
| Тэмдэг | Үүрэг | Жишээ |
| > | Гаралтыг файлд шинээр бичнэ | ls > files.txt |
| >> | Гаралтыг файлын төгсгөлд нэмнэ | date >> files.txt |
| < | Командын оролтыг файлаас авна | sort < names.txt |
| 2> | Алдааны урсгалыг файлд бичнэ | ls missing 2> error.txt |
| | | Хоёр командын урсгалыг холбоно | cat names.txt | sort |
| tee | Дэлгэцэд харуулж файлд зэрэг хадгална | sort names.txt | tee sorted.txt |
6. Лабораторийг гүйцэтгэх алхам
6.1 Ажлын орчин бэлтгэх
whoami
hostname
pwd
mkdir -p ~/F_NSM101/LAB2
cd ~/F_NSM101/LAB2
printf "Оюутан: НЭР\nКод: ОЮУТНЫ_КОД\n" > student_info.txt
cat student_info.txt
6.2 Тусламжийн систем ашиглах
type ls
ls --help | head -n 15
man ls
whatis pwd
apropos "current directory"
6.3 Замын ялгааг турших
mkdir -p project/docs project/data project/backup
cd project/docs
pwd
touch notes.txt
ls -l notes.txt
ls -l ~/F_NSM101/LAB2/project/docs/notes.txt
cd ../data
pwd
7. Хийх даалгавар
7.1 Нэгдсэн даалгавар 1 — Файл, хавтас болон зам
F_NSM101/
└── LAB2/
├── documents/
├── backup/
└── result/
- F_NSM101 болон LAB2 директор, түүний дотор documents, backup, result дэд директор үүсгэнэ.
- LAB2 директор руу харьцангуй зам ашиглан нэвтэрч, одоогийн байрлалыг шалгана.
- documents дотор student.txt нэртэй файл үүсгэнэ.
- student.txt файлд өөрийн нэр, оюутны код, хичээлийн нэрийг терминалаас бичнэ.
- Файлын агуулгыг терминал дээр нээж харуулна.
- student.txt файлыг backup директор руу хуулна.
- Хуулсан файлын нэрийг student_backup.txt болгон өөрчилнө.
- student_backup.txt файлд абсолют зам ашиглан хандаж агуулгыг харуулна.
- student.txt файлыг result директор руу зөөн final.txt гэж нэрлэнэ.
- Үүссэн бүтцийг дэлгэрэнгүй жагсааж, файл бүрийн эзэмшигч, бүлэг, хэмжээ, эрхийг тайлбарлана.
Ашиглах үндсэн команд: pwd, ls, cd, mkdir, touch, echo, cat, cp, mv, realpath
7.1.1 Ахисан түвшин
- LAB2 доторх бүх .txt өргөтгөлтэй файлыг дэд директоруудын хамт хайж жагсаана.
- student.txt файлын inode дугаар болон hard link-ийн тоог харуулна.
- student.txt файлд student_link.txt нэртэй hard link үүсгэнэ.
- Хоёр нэр ижил inode руу зааж байгааг батална.
- Эх student.txt нэрийг устгасны дараа student_link.txt-ээр агуулгыг уншина.
- Өгөгдөл яагаад усталгүй үлдсэнийг inode болон link count ойлголтоор тайлбарлана.
7.2 Нэгдсэн даалгавар 2 — Redirect, pipe болон алдааны урсгал
fruits.txt агуулга:
apple
banana
orange
apple
banana
apple
> оператор ашиглан fruits.txt файлын эхний мөрийг бичнэ.
>> оператор ашиглан үлдсэн мөрүүдийг файлын төгсгөлд нэмнэ.
- Файлын агуулгыг терминал дээр нээж зөв бичигдсэнийг шалгана.
< оператор ашиглан файлын мөрүүдийг эрэмбэлнэ.
- Pipe ашиглан нэр бүр хэдэн удаа давтагдсаныг тоолно.
- Боловсруулсан үр дүнг дэлгэцэд харуулахын зэрэгцээ fruit_count.txt файлд хадгална.
- apple орсон мөрийн тоог pipe ашиглан гаргана.
- Байхгүй файл эсвэл директорт хандаж алдаа үүсгэнэ.
- Алдааны урсгалыг error.txt файл руу чиглүүлж, дараа нь агуулгыг харуулна.
- fruits.txt, fruit_count.txt, error.txt файлуудыг жагсааж, зориулалтыг тайлбарлана.
Ашиглах команд ба оператор: echo, cat, sort, uniq, grep, wc, tee, >, >>, <, 2>, |
7.2.1 Ахисан түвшин
- Жимсний нэр бүрийн давтамжийг тоолж, давтамжаар нь ихээс бага руу эрэмбэлнэ.
- Хамгийн олон давтагдсан нэг жимсний нэр болон тоог гаргана.
- Эцсийн үр дүнг дэлгэцэд харуулахын зэрэгцээ summary.txt файлд хадгална.
- Зөв гаралт болон алдааны урсгалыг combined.log нэртэй нэг файлд хамтад нь хадгална.
- Pipe-ийн шат бүрийн stdin, stdout хэрхэн өөрчлөгдөж байгааг дарааллаар тайлбарлана.
8. Хамгаалалтын бэлтгэл
Тусламжгүй бичих үндсэн команд:
pwd ls ls -l ls -la cd mkdir touch cp mv rm -i
cat echo whoami id hostname uname -r
Оператор: > >> < 2> |
Тусламжийн системээр ажиллуулах: man whatis apropos grep sort uniq wc tee realpath
9.1 Хамгаалалтын жишиг даалгавар
- LAB2 нэртэй директор үүсгэж, дотор нь file1 файл үүсгэн Hello Linux текст бичих.
- file1 файлыг backup директорт хуулж, хуулсан файлын absolute path-ыг харуулах.
- fruits.txt файлын мөрүүдийг эрэмбэлж, давхардлын тоог pipe ашиглан гаргах.
- Байхгүй директорын алдааг error.txt файлд хадгалаад агуулгыг тайлбарлах.
- Командын үл мэдэх option-ыг man эсвэл --help-ээс олж зөв ажиллуулах.
10. Хамгаалалтын асуулт
- Shell болон Terminal хоёр ямар ялгаатай вэ?
- man cp дахь SYNOPSIS хэсгийн дөрвөлжин хаалт ямар утгатай вэ?
- Абсолют зам ямар тэмдэгтээс эхэлдэг вэ?
- cd .., cd ~, cd - командуудын ялгаа юу вэ?
- > ба >> операторууд файлын өмнөх агуулгад хэрхэн нөлөөлөх вэ?
- stdout, stderr урсгалуудын дугаар хэд вэ?
- Pipe нь файл үүсгэхгүйгээр хоёр командыг хэрхэн холбодог вэ?
- tee команд ямар тохиолдолд хэрэгтэй вэ?
- rm -i сонголтыг яагаад ашигласан бэ?
- cat fruits.txt | sort | uniq -c командын өгөгдлийн урсгалыг тайлбарла.
12. Түгээмэл алдаа
| Буруу жишээ | Шалтгаан | Зөв хувилбар |
ls-l file1 | Команд ба option хооронд зай аваагүй | ls -l file1 |
echo $term | Орчны хувьсагч том жижиг үсэг ялгана | echo $TERM |
man -l passwd | -l нь локал man файл нээх зориулалттай | man passwd |
cd pictures | Директорын нэрийн үсгийн хэмжээ таараагүй | cd Pictures |
ls file1 | Файл одоогийн хавтаст байхгүй | pwd; ls -la; realpath file1 |
Энэ HTML нь uploaded PDF-ийн текстийг copy/select хийхэд зориулж хөрвүүлсэн хувилбар.