ค้นหาเว็บไซต์

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

  1. -w สำหรับคำ (egrep -w 'word1|word2' /path/to/file)
  2. -c สำหรับการนับ (เช่น จำนวนครั้งทั้งหมดที่รูปแบบตรงกัน) (grep -c 'คำ' /path/to/file)
  3. –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