20 คำสั่งขั้นสูงสำหรับผู้ใช้ Linux ระดับกลาง
คุณอาจพบว่าบทความแรกมีประโยชน์มาก บทความนี้เป็นส่วนเสริมของ 20 คำสั่งที่เป็นประโยชน์สำหรับมือใหม่ที่ใช้ Linux บทความแรกมีไว้สำหรับมือใหม่ และบทความนี้มีไว้สำหรับ ผู้ใช้ระดับกลาง และ ผู้ใช้ขั้นสูง ที่นี่คุณจะพบกับวิธีปรับแต่งการค้นหา รู้ขั้นตอนการดำเนินการเพื่อกำจัดการค้นหา วิธีทำให้เทอร์มินัล Linux ของคุณมีประสิทธิผลเป็นสิ่งสำคัญ และวิธีการคอมไพล์ c, c++, โปรแกรม java ใน nix
21. คำสั่ง: ค้นหา
ค้นหาไฟล์ในไดเร็กทอรีที่กำหนด โดยเริ่มจากไดเร็กทอรีหลักตามลำดับชั้นและย้ายไปยังไดเร็กทอรีย่อย
root@tecmint:~# find -name *.sh
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
หมายเหตุ: ตัวเลือก `-ชื่อ' ทำให้การค้นหามีความละเอียดอ่อน คุณสามารถใช้ตัวเลือก `-iname‘ เพื่อค้นหาบางสิ่งโดยไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ (* เป็นไวด์การ์ดและค้นหาไฟล์ทั้งหมดที่มีนามสกุล '.sh' คุณสามารถใช้ชื่อไฟล์หรือส่วนหนึ่งของชื่อไฟล์เพื่อปรับแต่งเอาต์พุตได้)
root@tecmint:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH)
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
root@tecmint:~# find -name *.tar.gz
/var/www/modules/update/tests/aaa_update_test.tar.gz
./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz
./home/server/Downloads/drupal-7.22.tar.gz
./home/server/Downloads/smtp-7.x-1.0.tar.gz
./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz
./usr/share/gettext/archive.git.tar.gz
./usr/share/doc/apg/php.tar.gz
./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz
./usr/share/doc/argyll/examples/spyder2.tar.gz
./usr/share/usb_modeswitch/configPack.tar.gz
หมายเหตุ: คำสั่งด้านบนจะค้นหาไฟล์ทั้งหมดที่มีนามสกุล 'tar.gz' ในไดเร็กทอรีรากและไดเร็กทอรีย่อยทั้งหมด รวมถึงอุปกรณ์ที่เมาท์ด้วย
อ่านตัวอย่างคำสั่ง Linux 'find' เพิ่มเติมที่ 35 ค้นหาตัวอย่างคำสั่งใน Linux
22. คำสั่ง: grep
คำสั่ง 'grep' ค้นหาไฟล์ที่กำหนดเพื่อหาบรรทัดที่ตรงกับสตริงหรือคำที่กำหนด ค้นหา '/etc/passwd' สำหรับผู้ใช้ 'tecmint'
root@tecmint:~# grep tecmint /etc/passwd
tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
ละเว้นตัวพิมพ์ของคำและการรวมกันอื่นๆ ทั้งหมดด้วยตัวเลือก '-i'
root@tecmint:~# grep -i TECMINT /etc/passwd
tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
ค้นหาซ้ำ (-r) เช่น อ่านไฟล์ทั้งหมดในแต่ละไดเรกทอรีเพื่อหาสตริง “127.0.0.1“
root@tecmint:~# grep -r "127.0.0.1" /etc/
/etc/vlc/lua/http/.hosts:127.0.0.1
/etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1"
/etc/mysql/my.cnf:bind-address = 127.0.0.1
/etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1;
/etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1;
/etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1
/etc/hosts:127.0.0.1 localhost
หมายเหตุ: คุณสามารถใช้ตัวเลือกต่อไปนี้ร่วมกับ grep
- -w สำหรับคำ (egrep -w 'word1|word2' /path/to/file)
- -c สำหรับการนับ (เช่น จำนวนครั้งทั้งหมดที่รูปแบบตรงกัน) (grep -c 'คำ' /path/to/file)
- –color สำหรับเอาต์พุตที่เป็นสี (เซิร์ฟเวอร์ grep –color /etc/passwd)
23. คำสั่ง: ผู้ชาย
'man' คือเพจเจอร์แบบแมนนวลของระบบ Man จัดทำเอกสารออนไลน์สำหรับตัวเลือกที่เป็นไปได้ทั้งหมดพร้อมคำสั่งและการใช้งาน คำสั่งเกือบทั้งหมดมาพร้อมกับหน้าคู่มือที่เกี่ยวข้อง ตัวอย่างเช่น,
root@tecmint:~# man man
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
[--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p
string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
[-H[browser]] [-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
หน้าคู่มือสำหรับหน้า man เอง ในทำนองเดียวกัน 'man cat' (หน้าคู่มือสำหรับคำสั่ง cat) และ 'man ls' (หน้าคู่มือสำหรับคำสั่ง ls)
หมายเหตุ: man page มีไว้สำหรับการอ้างอิงคำสั่งและการเรียนรู้
24. คำสั่ง: ปล
ps (กระบวนการ) ให้สถานะของกระบวนการที่ทำงานอยู่ด้วย Id เฉพาะที่เรียกว่า PID
root@tecmint:~# ps
PID TTY TIME CMD
4170 pts/1 00:00:00 bash
9628 pts/1 00:00:00 ps
หากต้องการแสดงรายการสถานะของกระบวนการทั้งหมดพร้อมกับกระบวนการ id และ PID ให้ใช้ตัวเลือก '-A'
root@tecmint:~# ps -A
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 kworker/u:0H
8 ? 00:00:00 migration/0
9 ? 00:00:00 rcu_bh
....
หมายเหตุ: คำสั่งนี้มีประโยชน์มากเมื่อคุณต้องการทราบว่ากระบวนการใดกำลังทำงานอยู่หรืออาจต้องใช้ PID ในบางครั้งเพื่อให้กระบวนการถูกฆ่า คุณสามารถใช้กับคำสั่ง 'grep' เพื่อค้นหาเอาต์พุตที่กำหนดเองได้ ตัวอย่างเช่น,
root@tecmint:~# ps -A | grep -i ssh
1500 ? 00:09:58 sshd
4317 ? 00:00:00 sshd
ที่นี่ 'ps' ถูกส่งไปพร้อมกับคำสั่ง 'grep' เพื่อค้นหาผลลัพธ์ที่กำหนดเองและเกี่ยวข้องตามความต้องการของเรา
25. คำสั่ง: ฆ่า
ตกลง คุณอาจเข้าใจว่าคำสั่งนี้มีไว้เพื่ออะไร จากชื่อของคำสั่ง คำสั่งนี้ใช้เพื่อฆ่ากระบวนการที่ไม่เกี่ยวข้องในขณะนี้หรือไม่ตอบสนอง เป็นคำสั่งที่มีประโยชน์มาก แต่เป็นคำสั่งที่มีประโยชน์มาก คุณอาจคุ้นเคยกับการรีสตาร์ท Windows บ่อยครั้ง เนื่องจากส่วนใหญ่แล้วกระบวนการที่ทำงานอยู่ไม่สามารถถูกฆ่าได้ และหากถูกฆ่า กระบวนการนั้นจะต้องรีสตาร์ท Windows เพื่อให้การเปลี่ยนแปลงมีผล แต่ในโลกของ Linux ไม่มีสิ่งนั้น ที่นี่คุณสามารถฆ่ากระบวนการและเริ่มต้นได้โดยไม่ต้องรีสตาร์ททั้งระบบ
คุณต้องมี pid ของกระบวนการ (ps) เพื่อฆ่ามัน
สมมติว่าคุณต้องการฆ่าโปรแกรม 'apache2' ที่อาจไม่ตอบสนอง เรียกใช้ 'ps -A' พร้อมกับคำสั่ง grep
root@tecmint:~# ps -A | grep -i apache2
1285 ? 00:00:00 apache2
ค้นหากระบวนการ 'apache2' สังเกต pid และ kill กระบวนการ ตัวอย่างเช่น ในกรณีของฉัน 'apache2' pid คือ '1285'
root@tecmint:~# kill 1285 (to kill the process apache2)
หมายเหตุ: ทุกครั้งที่คุณรันกระบวนการอีกครั้งหรือเริ่มระบบ pid ใหม่จะถูกสร้างขึ้นสำหรับแต่ละกระบวนการ และคุณสามารถทราบเกี่ยวกับกระบวนการที่ทำงานอยู่ในปัจจุบันและ pid โดยใช้คำสั่ง 'ps'
อีกวิธีในการฆ่ากระบวนการเดียวกันก็คือ
root@tecmint:~# pkill apache2
หมายเหตุ: Kill ต้องใช้ รหัสงาน/รหัสกระบวนการ สำหรับการส่งสัญญาณ โดยที่ใน pkill คุณมีตัวเลือก การใช้รูปแบบ การระบุเจ้าของกระบวนการ เป็นต้น
26. คำสั่ง: อยู่ที่ไหน
คำสั่ง 'whereis' ใช้เพื่อค้นหา ไบนารี, แหล่งที่มา และ หน้าคู่มือ ของคำสั่ง ตัวอย่างเช่น เมื่อต้องการค้นหา ไบนารี, แหล่งที่มา และ หน้าคู่มือ ของคำสั่ง 'ls' และ 'ฆ่า'
root@tecmint:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
root@tecmint:~# whereis kill
kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
หมายเหตุ: สิ่งนี้มีประโยชน์ในการทราบว่าไบนารีถูกติดตั้งไว้ที่ไหนสำหรับการแก้ไขด้วยตนเองในบางครั้ง
27. คำสั่ง: บริการ
คำสั่ง 'บริการ' ควบคุม การเริ่มต้น, การหยุด หรือ การรีสตาร์ท ของ 'บริการ '. คำสั่งนี้ทำให้สามารถ เริ่มต้น, รีสตาร์ท หรือ หยุด บริการโดยไม่ต้องรีสตาร์ทระบบ เพื่อให้การเปลี่ยนแปลงมีผล
การเริ่มต้นเซิร์ฟเวอร์ apache2 บน Ubuntu
root@tecmint:~# service apache2 start
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1285) already running [ OK ]
การรีสตาร์ทเซิร์ฟเวอร์ apache2 บน Ubuntu
root@tecmint:~# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
การหยุดเซิร์ฟเวอร์ apache2 บน Ubuntu
root@tecmint:~# service apache2 stop
* Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting [ OK ]
หมายเหตุ: สคริปต์กระบวนการทั้งหมดอยู่ใน '/etc/init.d' และอาจจำเป็นต้องรวมเส้นทางไว้ในระบบบางระบบ กล่าวคือ แม้ว่าจะทำงาน “ บริการ apache2 start ” คุณจะถูกขอให้เรียกใช้ “/etc/init.d/apache2 start ”
28. คำสั่ง: นามแฝง
นามแฝงเป็นคำสั่งเชลล์ในตัวที่ให้คุณกำหนดชื่อให้กับคำสั่งแบบยาวหรือคำสั่งที่ใช้บ่อย
ฉันใช้คำสั่ง 'ls -l' บ่อยครั้ง ซึ่งประกอบด้วยอักขระ 5 ตัว รวมทั้งเว้นวรรคด้วย ดังนั้นฉันจึงสร้างนามแฝงสำหรับสิ่งนี้เป็น 'l'
root@tecmint:~# alias l='ls -l'
ตรวจสอบว่ามันใช้งานได้หรือไม่
root@tecmint:~# l
total 36
drwxr-xr-x 3 tecmint tecmint 4096 May 10 11:14 Binary
drwxr-xr-x 3 tecmint tecmint 4096 May 21 11:21 Desktop
drwxr-xr-x 2 tecmint tecmint 4096 May 21 15:23 Documents
drwxr-xr-x 8 tecmint tecmint 4096 May 20 14:56 Downloads
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Music
drwxr-xr-x 2 tecmint tecmint 4096 May 20 16:17 Pictures
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Public
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Templates
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Videos
หากต้องการลบนามแฝง 'l' ให้ใช้คำสั่ง 'unalias' ต่อไปนี้
root@tecmint:~# unalias l
ตรวจสอบว่า 'l' ยังคงเป็นนามแฝงหรือไม่
root@tecmint:~# l
bash: l: command not found
สร้างความสนุกสนานเล็กน้อยจากคำสั่งนี้ สร้างนามแฝงของคำสั่งสำคัญบางคำสั่งให้กับคำสั่งสำคัญอื่นๆ
alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd' (set alias of pwd to su)
....
(You can create your own)
....
ตอนนี้เมื่อเพื่อนของคุณพิมพ์ 'cd' ลองคิดดูสิว่าจะตลกแค่ไหนเมื่อเขาได้รับรายชื่อไดเรกทอรีและไม่เปลี่ยนไดเรกทอรี และเมื่อเขาพยายามที่จะเป็น 'su' สิ่งที่เขาได้รับก็คือตำแหน่งของไดเร็กทอรีการทำงาน คุณสามารถลบนามแฝงได้ในภายหลังโดยใช้คำสั่ง 'unalias' ตามที่อธิบายไว้ข้างต้น
29. คำสั่ง: df
รายงานการใช้งานดิสก์ของระบบไฟล์ มีประโยชน์สำหรับผู้ใช้และผู้ดูแลระบบในการติดตามการใช้งานดิสก์ 'df' ทำงานโดยตรวจสอบรายการไดเรกทอรี ซึ่งโดยทั่วไปจะได้รับการอัปเดตเฉพาะเมื่อไฟล์ถูกปิดเท่านั้น
root@tecmint:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 47929224 7811908 37675948 18% /
none 4 0 4 0% /sys/fs/cgroup
udev 1005916 4 1005912 1% /dev
tmpfs 202824 816 202008 1% /run
none 5120 0 5120 0% /run/lock
none 1014120 628 1013492 1% /run/shm
none 102400 44 102356 1% /run/user
/dev/sda5 184307 79852 94727 46% /boot
/dev/sda7 95989516 61104 91045676 1% /data
/dev/sda8 91953192 57032 87218528 1% /personal
สำหรับตัวอย่างเพิ่มเติมของคำสั่ง 'df' โปรดอ่านบทความ 12 df Command Examples ใน Linux
30. คำสั่ง: du
ประมาณการการใช้พื้นที่ไฟล์ ส่งออกข้อมูลสรุปการใช้งานดิสก์ตามลำดับชั้นของไฟล์ เช่น ในลักษณะเรียกซ้ำ
root@tecmint:~# du
8 ./Daily Pics/wp-polls/images/default_gradient
8 ./Daily Pics/wp-polls/images/default
32 ./Daily Pics/wp-polls/images
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img
28 ./Daily Pics/wp-polls/tinymce/plugins/polls
32 ./Daily Pics/wp-polls/tinymce/plugins
36 ./Daily Pics/wp-polls/tinymce
580 ./Daily Pics/wp-polls
1456 ./Daily Pics
36 ./Plugins/wordpress-author-box
16180 ./Plugins
12 ./May Articles 2013/Xtreme Download Manager
4632 ./May Articles 2013/XCache
หมายเหตุ: 'df' รายงานเฉพาะสถิติการใช้งานบนระบบไฟล์ ในขณะที่ 'du' จะวัดเนื้อหาไดเรกทอรี หากต้องการดูตัวอย่างคำสั่ง 'du' เพิ่มเติมและการใช้งาน โปรดอ่านคำสั่ง 10 du (การใช้งานดิสก์)
31. คำสั่ง: RM
คำสั่ง 'rm' ย่อมาจากการลบ rm ใช้เพื่อลบไฟล์และไดเร็กทอรี
การลบไดเร็กทอรี
root@tecmint:~# rm PassportApplicationForm_Main_English_V1.0
rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
ไม่สามารถลบไดเร็กทอรีโดยใช้คำสั่ง 'rm' คุณต้องใช้สวิตช์ '-rf' พร้อมกับ 'rm'
root@tecmint:~# rm -rf PassportApplicationForm_Main_English_V1.0
คำเตือน: คำสั่ง “rm -rf ” เป็นคำสั่งที่สร้างความเสียหาย หากคุณเผลอไปผิดไดเรกทอรี เมื่อคุณ 'rm -rf' ไดเร็กทอรี ไฟล์ทั้งหมดและไดเร็กทอรีนั้นจะหายไปอย่างถาวรในทันที ใช้ด้วยความระมัดระวัง
32. คำสั่ง: เสียงสะท้อน
echo ตามชื่อที่แนะนำ สะท้อนข้อความในเอาต์พุตมาตรฐาน มันไม่เกี่ยวอะไรกับเชลล์ และเชลล์ก็ไม่อ่านเอาต์พุตของคำสั่ง echo ด้วย อย่างไรก็ตาม ในสคริปต์เชิงโต้ตอบ echo จะส่งข้อความไปยังผู้ใช้ผ่านเทอร์มินัล เป็นหนึ่งในคำสั่งที่ใช้กันทั่วไปในการเขียนสคริปต์ การเขียนสคริปต์เชิงโต้ตอบ
root@tecmint:~# echo "linux-console.net is a very good website"
linux-console.net is a very good website
การสร้างสคริปต์เชิงโต้ตอบขนาดเล็ก
1. สร้างไฟล์ชื่อ 'interactive_shell.sh' บนเดสก์ท็อป (โปรดจำไว้ว่าต้องมีนามสกุล '.sh')
2. คัดลอกและวางสคริปต์ด้านล่างนี้เหมือนกับด้านล่างทุกประการ
#!/bin/bash
echo "Please enter your name:"
read name
echo "Welcome to Linux $name"
ถัดไป ตั้งค่าสิทธิ์ดำเนินการและเรียกใช้สคริปต์
root@tecmint:~# chmod 777 interactive_shell.sh
root@tecmint:~# ./interactive_shell.sh
Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive
หมายเหตุ: '#!/bin/bash' จะบอกเชลล์ว่าเป็นสคริปต์ และควรรวมไว้ที่ด้านบนของสคริปต์เสมอ 'อ่าน' อ่านอินพุตที่กำหนด
33. คำสั่ง: passwd
นี่เป็นคำสั่งสำคัญที่มีประโยชน์สำหรับการเปลี่ยนรหัสผ่านของตัวเองในเทอร์มินัล แน่นอนว่าคุณจำเป็นต้องรู้รหัสผ่านปัจจุบันของคุณด้วยเหตุผลด้านความปลอดภัย
root@tecmint:~# passwd
Changing password for tecmint.
(current) UNIX password: ********
Enter new UNIX password: ********
Retype new UNIX password: ********
Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password]
Enter new UNIX password: #####
Retype new UNIX password:#####
34. คำสั่ง: ลป
คำสั่งนี้จะพิมพ์ไฟล์ที่มีชื่อบนบรรทัดคำสั่งไปยังเครื่องพิมพ์ที่มีชื่อ
root@tecmint:~# lpr -P deskjet-4620-series 1-final.pdf
หมายเหตุ: คำสั่ง 'lpq' ช่วยให้คุณดูสถานะของเครื่องพิมพ์ (ไม่ว่าจะพร้อมใช้งานหรือไม่) และงาน (ไฟล์) ที่รอการพิมพ์
35. คำสั่ง: cmp
เปรียบเทียบสองไฟล์ประเภทใดก็ได้และเขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน ตามค่าเริ่มต้น 'cmp' จะส่งกลับ 0 หากไฟล์เหมือนกัน หากต่างกัน ไบต์และหมายเลขบรรทัดที่เกิดความแตกต่างครั้งแรกจะถูกรายงาน
เพื่อให้เป็นตัวอย่างสำหรับคำสั่งนี้ ให้พิจารณาสองไฟล์:
file1.txt
root@tecmint:~# cat file1.txt
Hi My name is Tecmint
file2.txt
root@tecmint:~# cat file2.txt
Hi My name is tecmint [dot] com
ตอนนี้เรามาเปรียบเทียบสองไฟล์และดูผลลัพธ์ของคำสั่ง
root@tecmint:~# cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 15, line 1
36. คำสั่ง: wget
Wget เป็นโปรแกรมอรรถประโยชน์ฟรีสำหรับการดาวน์โหลดไฟล์แบบไม่โต้ตอบ (เช่น สามารถทำงานในพื้นหลัง) จากเว็บ รองรับโปรโตคอล HTTP, HTTPS, FTP และพร็อกซี HTTP
ดาวน์โหลด ffmpeg โดยใช้ wget
root@tecmint:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
--2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following]
--2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 275557 (269K) [application/octet-stream]
Saving to: ‘ffmpeg-php-0.6.0.tbz2’
100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s
2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
37. คำสั่ง: เมานต์
เมานต์เป็นคำสั่งสำคัญที่ใช้ในการเมานต์ระบบไฟล์ที่ไม่ได้เมานต์ตัวเอง คุณต้องมีสิทธิ์รูทจึงจะเมานต์อุปกรณ์ได้
เรียกใช้ 'lsblk' ก่อนหลังจากเสียบระบบไฟล์ของคุณแล้วระบุอุปกรณ์ของคุณและจดชื่ออุปกรณ์ของคุณที่กำหนด
root@tecmint:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 923.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
sdb 8:16 1 3.7G 0 disk
└─sdb1 8:17 1 3.7G 0 part
จากหน้าจอนี้เห็นได้ชัดว่าฉันเสียบเพนไดรฟ์ 4 GB ดังนั้น 'sdb1' คือระบบไฟล์ของฉันที่จะติดตั้ง มาเป็น root เพื่อดำเนินการนี้และเปลี่ยนเป็นไดเร็กทอรี /dev ที่ระบบไฟล์ทั้งหมดติดตั้งอยู่
root@tecmint:~# su
Password:
root@tecmint:~# cd /dev
สร้างไดเร็กทอรีชื่ออะไรก็ได้ แต่ควรเกี่ยวข้องสำหรับการอ้างอิง
root@tecmint:~# mkdir usb
ตอนนี้เมานต์ระบบไฟล์ 'sdb1' ไปยังไดเร็กทอรี 'usb'
root@tecmint:~# mount /dev/sdb1 /dev/usb
ตอนนี้คุณสามารถนำทางไปยัง /dev/usb จากเทอร์มินัลหรือระบบ X-windows และเข้าถึงไฟล์จากไดเร็กทอรีที่เมาท์
38. คำสั่ง: gcc
gcc เป็นคอมไพเลอร์ที่สร้างขึ้นสำหรับภาษา 'c' ในสภาพแวดล้อม Linux โปรแกรม c ง่ายๆ บันทึกไว้บนเดสก์ท็อปของคุณเป็น Hello.c (โปรดจำไว้ว่า ต้องมีนามสกุล '.c')
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
เรียบเรียงมัน
root@tecmint:~# gcc Hello.c
เรียกใช้มัน
root@tecmint:~# ./a.out
Hello world
หมายเหตุ: ในการคอมไพล์โปรแกรม c ผลลัพธ์จะถูกสร้างขึ้นโดยอัตโนมัติเป็นไฟล์ใหม่ “a.out ” และทุกครั้งที่คุณคอมไพล์ c ไฟล์เดียวกันของโปรแกรม “a.out ” ได้รับการแก้ไข ดังนั้นจึงเป็นคำแนะนำที่ดีในการกำหนดไฟล์เอาท์พุตระหว่างการคอมไพล์ ดังนั้นจึงไม่มีความเสี่ยงในการเขียนทับไฟล์เอาท์พุต
เรียบเรียงตามนี้ครับ
root@tecmint:~# gcc -o Hello Hello.c
ที่นี่ '-o' ส่งออกไปยังไฟล์ 'Hello' ไม่ใช่ 'a.out' เรียกใช้อีกครั้ง
root@tecmint:~# ./Hello
Hello world
39. คำสั่ง: g++
g++ เป็นคอมไพเลอร์ที่สร้างขึ้นสำหรับ 'C++' ซึ่งเป็นภาษาการเขียนโปรแกรมเชิงวัตถุภาษาแรก โปรแกรม c++ ง่ายๆ บันทึกไว้บนเดสก์ท็อปของคุณเป็น Add.cpp (โปรดจำไว้ว่า ต้องมีนามสกุล '.cpp')
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout<<"Enter first number:\n";
cin >> a;
cout <<"Enter the second number:\n";
cin>> b;
cin.ignore();
int result = a + b;
cout<<"Result is"<<" "<<result<<endl;
cin.get();
return 0;
}
เรียบเรียงมัน
root@tecmint:~# g++ Add.cpp
เรียกใช้มัน
root@tecmint:~# ./a.out
Enter first number:
...
...
หมายเหตุ: ในการคอมไพล์โปรแกรม c++ ผลลัพธ์จะถูกสร้างขึ้นโดยอัตโนมัติเป็นไฟล์ใหม่ “a.out ” และทุกครั้งที่คุณคอมไพล์ ไฟล์เดียวกันของโปรแกรม c++ “a.out ” ได้รับการแก้ไข ดังนั้นจึงเป็นคำแนะนำที่ดีในการกำหนดไฟล์เอาท์พุตระหว่างการคอมไพล์ ดังนั้นจึงไม่มีความเสี่ยงในการเขียนทับไฟล์เอาท์พุต
เรียบเรียงตามนี้ครับ
root@tecmint:~# g++ -o Add Add.cpp
เรียกใช้มัน
root@tecmint:~# ./Add
Enter first number:
...
...
40. คำสั่ง: java
Java เป็นหนึ่งในภาษาการเขียนโปรแกรมที่มีการใช้งานมากที่สุดในโลก และถือว่ารวดเร็ว ปลอดภัย และเชื่อถือได้ บริการบนเว็บส่วนใหญ่ในปัจจุบันทำงานบนจาวา
สร้างโปรแกรม Java แบบง่ายๆ โดยวางการทดสอบด้านล่างลงในไฟล์ชื่อ tecmint.java (โปรดจำไว้ว่า ต้องมีนามสกุล '.java')
class tecmint {
public static void main(String[] arguments) {
System.out.println("Tecmint ");
}
}
คอมไพล์โดยใช้ javac
root@tecmint:~# javac tecmint.java
เรียกใช้มัน
root@tecmint:~# java tecmint
หมายเหตุ: เกือบทุกการแจกจ่ายมาพร้อมกับ คอมไพเลอร์ gcc จำนวน distros ส่วนใหญ่มี g++ และ คอมไพเลอร์ java ในตัว ในขณะที่บางคนอาจไม่มี คุณสามารถ เลือก หรือ ยำ แพ็คเกจที่ต้องการได้
อย่าลืมพูดถึงความคิดเห็นอันมีค่าของคุณและประเภทของบทความที่คุณต้องการดูที่นี่ เร็วๆ นี้ฉันจะกลับมาพร้อมกับหัวข้อที่น่าสนใจเกี่ยวกับข้อเท็จจริงที่ไม่ค่อยมีใครรู้จักเกี่ยวกับ Linux