Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

Bash นามแฝงที่คุณขาดไม่ได้

นามแฝงของ Bash เป็นวิธีการเสริมหรือแทนที่คำสั่ง Bash ด้วยคำสั่งใหม่ Bash alias ช่วยให้ผู้ใช้ปรับแต่งประสบการณ์ในเทอร์มินัล POSIX ได้อย่างง่ายดาย มักจะมีการกำหนดไว้ใน $HOME/.bashrc หรือ $HOME/bash_aliases (ซึ่งต้องโหลดโดย $HOME/.bashrc )

การแจกแจงส่วนใหญ่เพิ่มนามแฝงที่เป็นที่นิยมอย่างน้อยใน .bashrc . เริ่มต้น ไฟล์ของบัญชีผู้ใช้ใหม่ใด ๆ สิ่งเหล่านี้เป็นตัวอย่างง่ายๆ ในการสาธิตไวยากรณ์ของนามแฝง Bash:

alias ls='ls -F'
alias ll='ls -lh'

ไม่ใช่การแจกจ่ายทั้งหมดที่มาพร้อมกับนามแฝงที่เติมไว้ล่วงหน้า หากคุณเพิ่มนามแฝงด้วยตนเอง คุณต้องโหลดลงในเซสชัน Bash ปัจจุบันของคุณ:

$ source ~/.bashrc

มิฉะนั้น คุณสามารถปิดเทอร์มินัลแล้วเปิดใหม่อีกครั้งเพื่อโหลดไฟล์การกำหนดค่าใหม่

ด้วยนามแฝงที่กำหนดไว้ในสคริปต์เริ่มต้น Bash ของคุณ คุณสามารถพิมพ์ ll และรับผลลัพธ์ของ ls -l และเมื่อคุณพิมพ์ ls คุณได้รับแทนที่จะเป็นผลลัพธ์ของเก่าธรรมดา ล.

นามแฝงเหล่านั้นดีมากที่จะมี แต่เพียงแค่ขีดพื้นผิวของสิ่งที่เป็นไปได้ ต่อไปนี้คือชื่อแทน Bash 10 อันดับแรกที่เมื่อคุณลองใช้แล้ว คุณจะไม่สามารถอยู่ได้โดยปราศจาก

ตั้งค่าก่อน

ก่อนเริ่มต้น ให้สร้างไฟล์ชื่อ ~/.bash_aliases :

$ touch ~/.bash_aliases

จากนั้น ตรวจสอบให้แน่ใจว่ารหัสนี้ปรากฏใน ~/.bashrc . ของคุณ ไฟล์:

if [ -e $HOME/.bash_aliases ]; then
    source $HOME/.bash_aliases
fi

หากคุณต้องการลองใช้นามแฝงในบทความนี้ด้วยตัวเอง ให้ป้อนชื่อเหล่านี้ลงใน .bash_aliases ไฟล์แล้วโหลดลงในเซสชัน Bash ของคุณด้วย source ~/.bashrc คำสั่ง

จัดเรียงตามขนาดไฟล์

หากคุณเริ่มต้นชีวิตการใช้คอมพิวเตอร์ด้วยตัวจัดการไฟล์ GUI เช่น Nautilus ใน GNOME, Finder ใน MacOS หรือ Explorer ใน Windows คุณอาจเคยชินกับการจัดเรียงรายการไฟล์ตามขนาด คุณสามารถทำได้ในเทอร์มินัลเช่นกัน แต่ก็ไม่กระชับ

เพิ่มนามแฝงนี้ในการกำหนดค่าของคุณบนระบบ GNU:

alias lt='ls --human-readable --size -1 -S --classify'

นามแฝงนี้แทนที่ lt ด้วย ls คำสั่งที่แสดงขนาดของแต่ละรายการ แล้วจัดเรียงตามขนาดในคอลัมน์เดียว โดยมีเครื่องหมายระบุประเภทไฟล์ โหลดนามแฝงใหม่ของคุณแล้วลองใช้:

$ source ~/.bashrc
$ lt
total 344K
140K configure*
 44K aclocal.m4
 36K LICENSE
 32K config.status*
 24K Makefile
 24K Makefile.in
 12K config.log
8.0K README.md
4.0K info.slackermedia.Git-portal.json
4.0K git-portal.spec
4.0K flatpak.path.patch
4.0K Makefile.am*
4.0K dot-gitlab.ci.yml
4.0K configure.ac*
   0 autom4te.cache/
   0 share/
   0 bin/
   0 install-sh@
   0 compile@
   0 missing@
   0 COPYING@

บน MacOS หรือ BSD ls คำสั่งไม่มีตัวเลือกเหมือนกัน ดังนั้นนามแฝงนี้จึงใช้งานได้แทน:

alias lt='du -sh * | sort -h'

ผลลัพธ์ของเวอร์ชันนี้แตกต่างกันเล็กน้อย:

$ du -sh * | sort -h
0       compile
0       COPYING
0       install-sh
0       missing
4.0K    configure.ac
4.0K    dot-gitlab.ci.yml
4.0K    flatpak.path.patch
4.0K    git-portal.spec
4.0K    info.slackermedia.Git-portal.json
4.0K    Makefile.am
8.0K    README.md
12K     config.log
16K     bin
24K     Makefile
24K     Makefile.in
32K     config.status
36K     LICENSE
44K     aclocal.m4
60K     share
140K    configure
476K    autom4te.cache

อันที่จริง แม้แต่บน Linux คำสั่งนั้นก็มีประโยชน์เพราะ ใช้ ls แสดงรายการไดเร็กทอรีและ symlink ที่มีขนาดเท่ากับ 0 ซึ่งอาจไม่ใช่ข้อมูลที่คุณต้องการจริงๆ มันเป็นทางเลือกของคุณ

ขอบคุณ Brad Alexander สำหรับแนวคิดนามแฝงนี้

ดูเฉพาะไดรฟ์ที่ติดตั้ง

เมานต์ คำสั่งที่เคยเรียบง่าย ด้วยคำสั่งเดียว คุณจะได้รับรายการระบบไฟล์ที่ต่อเชื่อมทั้งหมดบนคอมพิวเตอร์ของคุณ และมักใช้สำหรับภาพรวมของไดรฟ์ที่ต่อเข้ากับเวิร์กสเตชัน การดูมากกว่าสามหรือสี่รายการเคยน่าประทับใจเพราะคอมพิวเตอร์ส่วนใหญ่ไม่มีพอร์ต USB มากกว่านั้น ดังนั้นผลลัพธ์จึงสามารถจัดการได้

คอมพิวเตอร์มีความซับซ้อนขึ้นเล็กน้อยในขณะนี้ และระหว่าง LVM, ฟิสิคัลไดรฟ์, พื้นที่เก็บข้อมูลเครือข่าย และระบบไฟล์เสมือน ผลลัพธ์ของเมานต์ แยกวิเคราะห์ได้ยาก:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=8131024k,nr_inodes=2032756,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
[...]
/dev/nvme0n1p2 on /boot type ext4 (rw,relatime,seclabel)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
[...]
gvfsd-fuse on /run/user/100977/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=100977,group_id=100977)
/dev/sda1 on /run/media/seth/pocket type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
/dev/sdc1 on /run/media/seth/trip type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

ในการแก้ปัญหานั้น ให้ลองใช้นามแฝงดังนี้:

alias mnt="mount | awk -F' ' '{ printf \"%s\t%s\n\",\$1,\$3; }' | column -t | egrep ^/dev/ | sort"

นามแฝงนี้ใช้ awk เพื่อแยกวิเคราะห์ผลลัพธ์ของ เมานต์ ตามคอลัมน์ ลดเอาต์พุตให้เหลือสิ่งที่คุณอาจมองหา (ติดตั้งฮาร์ดไดรฟ์ที่ไม่ใช่ระบบไฟล์):

$ mnt
/dev/mapper/fedora-root  /
/dev/nvme0n1p1           /boot/efi
/dev/nvme0n1p2           /boot
/dev/sda1                /run/media/seth/pocket
/dev/sdc1                /run/media/seth/trip

บน MacOS เมานต์ คำสั่งไม่ได้ให้ผลลัพธ์ที่ละเอียดมาก ดังนั้นนามแฝงอาจใช้มากเกินไป อย่างไรก็ตาม หากคุณต้องการรายงานที่กระชับ ลองทำสิ่งนี้:

alias mnt='mount | grep -E ^/dev | column -t'

ผลลัพธ์:

$ mnt
/dev/disk1s1  on  /                (apfs,  local,  journaled)
/dev/disk1s4  on  /private/var/vm  (apfs,  local,  noexec,     journaled,  noatime,  nobrowse)

ค้นหาคำสั่งในประวัติ grep ของคุณ

บางครั้งคุณคิดหาวิธีทำบางสิ่งในเทอร์มินัล และสัญญากับตัวเองว่าคุณจะไม่มีวันลืมสิ่งที่คุณเพิ่งเรียนรู้ จากนั้นหนึ่งชั่วโมงผ่านไป และคุณลืมสิ่งที่คุณทำไปโดยสิ้นเชิง

การค้นหาประวัติ Bash ของคุณเป็นสิ่งที่ทุกคนต้องทำเป็นครั้งคราว หากคุณรู้ว่าคุณกำลังค้นหาอะไรอยู่ คุณสามารถใช้ Ctrl+R เพื่อทำการค้นหาย้อนกลับผ่านประวัติของคุณ แต่บางครั้งคุณอาจจำคำสั่งที่คุณต้องการค้นหาไม่ได้

นี่คือนามแฝงที่จะทำให้งานนั้นง่ายขึ้นเล็กน้อย:

alias gh='history|grep'

นี่คือตัวอย่างการใช้งาน:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

จัดเรียงตามเวลาแก้ไข

มันเกิดขึ้นทุกวันจันทร์:คุณไปทำงาน คุณนั่งที่คอมพิวเตอร์ของคุณ คุณเปิดเทอร์มินัล และพบว่าคุณลืมสิ่งที่คุณทำเมื่อวันศุกร์ที่แล้ว สิ่งที่คุณต้องการคือนามแฝงสำหรับแสดงรายการไฟล์ที่แก้ไขล่าสุด

คุณสามารถใช้ ls คำสั่งสร้างนามแฝงเพื่อช่วยให้คุณค้นหาจุดที่คุณค้างไว้:

alias left='ls -t -1'

ผลลัพธ์นั้นง่าย แม้ว่าคุณสามารถขยายได้ด้วย --ยาว ตัวเลือกหากคุณต้องการ นามแฝงตามรายการจะแสดงสิ่งนี้:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

นับไฟล์

หากคุณต้องการทราบจำนวนไฟล์ที่คุณมีในไดเร็กทอรี โซลูชันนี้เป็นหนึ่งในตัวอย่างคลาสสิกที่สุดของการสร้างคำสั่ง UNIX:คุณแสดงรายการไฟล์ด้วย ls คำสั่งควบคุมเอาต์พุตให้มีเพียงคอลัมน์เดียวด้วย -1 ตัวเลือกแล้วไปป์ที่ส่งออกไปยัง wc (word count) คำสั่งนับจำนวนไฟล์เดี่ยวที่มี

เป็นการสาธิตที่ยอดเยี่ยมว่าปรัชญา UNIX ช่วยให้ผู้ใช้สามารถสร้างโซลูชันของตนเองโดยใช้ส่วนประกอบของระบบขนาดเล็กได้อย่างไร ชุดคำสั่งนี้มีหลายแบบให้พิมพ์หากคุณทำหลายครั้งต่อวัน และไม่สามารถใช้ได้กับไดเร็กทอรีของไดเร็กทอรีอย่างแน่นอนโดยไม่ต้องใช้ -R ซึ่งแนะนำบรรทัดใหม่ให้กับผลลัพธ์และทำให้การฝึกไม่มีประโยชน์

นามแฝงนี้ทำให้กระบวนการง่ายขึ้น:

alias count='find . -type f | wc -l'

อันนี้นับไฟล์ ละเว้นไดเร็กทอรี แต่ ไม่ เนื้อหาของไดเร็กทอรี หากคุณมีโฟลเดอร์โปรเจ็กต์ที่มีสองไดเร็กทอรี ซึ่งแต่ละไดเร็กทอรีมี 2 ไฟล์ นามแฝงจะส่งกลับสี่ไฟล์ เนื่องจากมีสี่ไฟล์ในโปรเจ็กต์ทั้งหมด

$ ls
foo   bar
$ count
4

สร้างสภาพแวดล้อมเสมือน Python

คุณเขียนโค้ดในภาษา Python หรือไม่

คุณเขียนโค้ดในภาษา Python บ่อยไหม

หากคุณทำเช่นนั้น คุณจะรู้ว่าการสร้างสภาพแวดล้อมเสมือนของ Python อย่างน้อยต้องมีการกดแป้น 53 ครั้ง

นั่นก็มากเกินไป 49 ครั้ง แต่นั่นก็หลีกเลี่ยงได้ง่ายๆ ด้วยนามแฝงใหม่สองชื่อที่เรียกว่า ve และ วา :

alias ve='python3 -m venv ./venv'
alias va='source ./venv/bin/activate'

วิ่งได้ สร้างไดเร็กทอรีใหม่ชื่อว่า venv ซึ่งประกอบด้วยระบบไฟล์สภาพแวดล้อมเสมือนปกติสำหรับ Python3 วา alias เปิดใช้งานสภาพแวดล้อมในเชลล์ปัจจุบันของคุณ:

$ cd my-project
$ ve
$ va
(venv) $

เพิ่มแถบความคืบหน้าในการคัดลอก

ทุกคนแหย่ความสนุกที่แถบความคืบหน้าเพราะพวกเขาไม่ถูกต้องอย่างน่าอับอาย และลึกลงไป เราทุกคนดูเหมือนจะต้องการพวกเขา UNIX cp คำสั่งไม่มีแถบความคืบหน้า แต่มี -v ตัวเลือกสำหรับการใช้คำฟุ่มเฟือย หมายความว่ามันสะท้อนชื่อของแต่ละไฟล์ที่ถูกคัดลอกไปยังเทอร์มินัลของคุณ นั่นเป็นแฮ็คที่ค่อนข้างดี แต่มันใช้งานไม่ได้ดีนักเมื่อคุณคัดลอกไฟล์ขนาดใหญ่หนึ่งไฟล์และต้องการระบุจำนวนไฟล์ที่ยังไม่ได้โอน

pv คำสั่งมีแถบความคืบหน้าในระหว่างการคัดลอก แต่จะไม่เหมือนกับแอปพลิเคชันเริ่มต้นทั่วไป ในทางกลับกัน rsync คำสั่งจะรวมอยู่ในการติดตั้งเริ่มต้นของเกือบทุกระบบ POSIX ที่มีอยู่ และเป็นที่รู้จักกันอย่างแพร่หลายว่าเป็นหนึ่งในวิธีที่ฉลาดที่สุดในการคัดลอกไฟล์ทั้งจากระยะไกลและในเครื่อง

ยิ่งไปกว่านั้น ยังมีแถบแสดงความคืบหน้าในตัว

alias cpv='rsync -ah --info=progress2'

การใช้นามแฝงนี้เหมือนกับการใช้ cp คำสั่ง:

$ cpv bigfile.flac /run/media/seth/audio/
          3.83M 6%  213.15MB/s    0:00:00 (xfr#4, to-chk=0/4)

ผลข้างเคียงที่น่าสนใจของการใช้คำสั่งนี้คือ rsync คัดลอกทั้งไฟล์และไดเร็กทอรีที่ไม่มี -r ตั้งค่าสถานะว่า cp มิฉะนั้นจะต้องการ

ป้องกันตัวเองจากอุบัติเหตุการลบไฟล์

คุณไม่ควรใช้ rm สั่งการ. rm คู่มือยังบอกอย่างนั้น:

คำเตือน :หากคุณใช้ 'rm' เพื่อลบไฟล์ มักจะสามารถกู้คืนเนื้อหาของไฟล์นั้นได้ หากคุณต้องการความมั่นใจมากขึ้นว่าเนื้อหานั้นไม่สามารถกู้คืนได้อย่างแท้จริง ให้ลองใช้ "ฉีก"

หากคุณต้องการลบไฟล์ คุณควรย้ายไฟล์ไปที่ถังขยะ เช่นเดียวกับที่คุณทำเมื่อใช้เดสก์ท็อป

POSIX ทำให้สิ่งนี้เป็นเรื่องง่าย เนื่องจากถังขยะเป็นตำแหน่งจริงที่เข้าถึงได้ในระบบไฟล์ของคุณ ตำแหน่งนั้นอาจเปลี่ยนแปลงได้ ขึ้นอยู่กับแพลตฟอร์มของคุณ:บน FreeDesktop ถังขยะจะอยู่ที่ ~/.local/share/Trash ในขณะที่ใช้ MacOS จะเป็น ~/.Trash แต่ไม่ว่าจะด้วยวิธีใด มันเป็นเพียงไดเร็กทอรีที่คุณวางไฟล์ที่คุณต้องการให้พ้นสายตา จนกว่าคุณจะพร้อมที่จะลบทิ้งไปตลอดกาล

นามแฝงง่ายๆ นี้มีวิธีในการโยนไฟล์ลงในถังขยะจากเทอร์มินัลของคุณ:

alias tcn='mv --force -t ~/.local/share/Trash '

นามแฝงนี้ใช้ mv ที่ไม่ค่อยมีใครรู้จัก แฟล็กที่ให้คุณระบุไฟล์ที่คุณต้องการย้ายเป็นอาร์กิวเมนต์สุดท้ายได้ โดยไม่สนใจข้อกำหนดปกติสำหรับไฟล์นั้นที่จะแสดงรายการก่อน ตอนนี้คุณสามารถใช้คำสั่งใหม่ของคุณเพื่อย้ายไฟล์และโฟลเดอร์ไปยังถังขยะในระบบของคุณ:

$ ls 
foo  bar
$ tcn foo
$ ls
bar

ตอนนี้ไฟล์ "หายไป" แต่เพียงจนกว่าคุณจะรู้ว่าคุณยังต้องการมันอยู่ เมื่อถึงจุดนั้น คุณสามารถกู้คืนไฟล์จากถังขยะระบบของคุณ อย่าลืมให้ทิป Bash และ mv นักพัฒนากำลังจะออกไป

หมายเหตุ: หากคุณต้องการ ถังขยะ . ที่แข็งแกร่งกว่านี้ คำสั่งที่สอดคล้องกับ FreeDesktop ที่ดีขึ้น โปรดดูที่ Trashy

ลดความซับซ้อนของเวิร์กโฟลว์ Git

ทุกคนมีเวิร์กโฟลว์ที่ไม่ซ้ำกัน แต่มักจะมีงานซ้ำๆ กันไม่ว่าจะเกิดอะไรขึ้น หากคุณทำงานกับ Git เป็นประจำ อาจมีลำดับบางอย่างที่คุณพบว่าตัวเองทำซ้ำบ่อยครั้ง บางทีคุณอาจพบว่าตัวเองกำลังกลับไปที่มาสเตอร์แบรนช์และดึงการเปลี่ยนแปลงล่าสุดซ้ำแล้วซ้ำเล่าในระหว่างวัน หรือบางทีคุณอาจพบว่าตัวเองสร้างแท็กแล้วผลักไปยังรีโมต หรืออาจเป็นอย่างอื่นทั้งหมด

ไม่ว่าคุณจะพิมพ์คาถา Git แบบไหน คุณอาจสามารถบรรเทาความเจ็บปวดได้ด้วย Bash alias ต้องขอบคุณความสามารถในการส่งผ่านอาร์กิวเมนต์ไปยัง hooks อย่างมาก Git มีชุดคำสั่งครุ่นคิดมากมายที่ช่วยให้คุณไม่ต้องทำอะไรแปลกๆ ใน Bash

ตัวอย่างเช่น ในขณะที่คุณอาจมีปัญหาในการค้นหา ใน Bash ไดเร็กทอรีระดับบนสุดของโปรเจ็กต์ (ซึ่งเท่าที่เกี่ยวข้องกับ Bash นั้นเป็นการกำหนดโดยพลการโดยสิ้นเชิง เนื่องจากระดับบนสุดที่แน่นอนสำหรับคอมพิวเตอร์คือไดเร็กทอรีราก) Git รู้ระดับบนสุดด้วยแบบสอบถามง่ายๆ หากคุณศึกษา Git hooks คุณจะพบว่าตัวเองสามารถค้นหาข้อมูลทุกประเภทที่ Bash ไม่รู้ แต่คุณสามารถใช้ข้อมูลนั้นได้ด้วยนามแฝงของ Bash

ต่อไปนี้คือนามแฝงเพื่อค้นหาระดับสูงสุดของโปรเจ็กต์ Git ไม่ว่าคุณจะทำงานอยู่ที่ใดในโปรเจ็กต์นั้น จากนั้นเปลี่ยนไดเร็กทอรีไป เปลี่ยนเป็นมาสเตอร์แบรนช์ และทำการดึง Git:

alias startgit='cd `git rev-parse --show-toplevel` && git checkout master && git pull'

นามแฝงประเภทนี้ไม่ได้หมายถึงนามแฝงที่มีประโยชน์ในระดับสากล แต่แสดงให้เห็นว่านามแฝงที่ค่อนข้างง่ายสามารถกำจัดการนำทางที่ลำบาก คำสั่ง และการรอข้อความแจ้งที่ยุ่งยากออกไปได้มากเพียงใด

นามแฝงที่เรียบง่ายกว่าและอาจเป็นสากลมากกว่าจะนำคุณกลับสู่ระดับสูงสุดของโปรเจ็กต์ Git นามแฝงนี้มีประโยชน์เพราะเมื่อคุณกำลังทำงานในโครงการ โครงการนั้นจะกลายเป็นไดเร็กทอรี "บ้านชั่วคราว" ของคุณไม่มากก็น้อย การ "กลับบ้าน" ควรจะง่ายพอๆ กับการไปที่บ้านจริงของคุณ และนี่คือนามแฝงที่ต้องทำ:

alias cg='cd `git rev-parse --show-toplevel`'

ตอนนี้คำสั่ง cg นำคุณไปที่ด้านบนสุดของโปรเจ็กต์ Git ของคุณ ไม่ว่าคุณจะลงไปในโครงสร้างไดเร็กทอรีลึกแค่ไหน

เปลี่ยนไดเรกทอรีและดูเนื้อหาพร้อมกัน

ครั้งหนึ่งเคยมีนักวิทยาศาสตร์ชั้นนำเสนอ (ถูกกล่าวหา) ว่าเราสามารถแก้ปัญหาด้านพลังงานของโลกได้มากมายโดยควบคุมพลังงานที่ใช้ไปโดยการพิมพ์ cd ตามด้วย ls .

เป็นรูปแบบทั่วไป เนื่องจากโดยทั่วไปเมื่อคุณเปลี่ยนไดเร็กทอรี คุณมีแรงกระตุ้นหรือต้องการดูว่ามีอะไรอยู่รอบๆ

แต่ "การเดิน" แผนผังไดเร็กทอรีของคอมพิวเตอร์ไม่จำเป็นต้องเป็นกระบวนการเริ่มต้นและหยุด

คนนี้โกงเพราะไม่ใช่นามแฝง แต่เป็นข้ออ้างที่ดีในการสำรวจฟังก์ชัน Bash แม้ว่านามแฝงจะเหมาะสำหรับการแทนที่อย่างรวดเร็ว แต่ Bash ให้คุณเพิ่มฟังก์ชันในเครื่องใน .bashrc ไฟล์ (หรือไฟล์ฟังก์ชันแยกต่างหากที่คุณโหลดลงใน .bashrc เช่นเดียวกับที่คุณทำไฟล์นามแฝงของคุณ)

เพื่อให้สิ่งต่าง ๆ เป็นโมดูล ให้สร้างไฟล์ใหม่ชื่อ ~/.bash_functions แล้วมี .bashrc . ของคุณ โหลดเลย:

if [ -e $HOME/.bash_functions ]; then
    source $HOME/.bash_functions
fi

ในไฟล์ฟังก์ชัน เพิ่มโค้ดนี้:

function cl() {
    DIR="$*";
        # if no DIR given, go home
        if [ $# -lt 1 ]; then
                DIR=$HOME;
    fi;
    builtin cd "${DIR}" && \
    # use your preferred ls command
        ls -F --color=auto
}

โหลดฟังก์ชันลงในเซสชัน Bash แล้วลองใช้:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop  Documents  Downloads
[...]
$ pwd
/home/seth

ฟังก์ชันมีความยืดหยุ่นมากกว่าชื่อแทนมาก แต่ด้วยความยืดหยุ่นนั้น ความรับผิดชอบของคุณจึงทำให้มั่นใจว่าโค้ดของคุณเหมาะสมและทำในสิ่งที่คุณคาดหวัง นามแฝงมีความหมายว่าเรียบง่าย ดังนั้นจงใช้ชื่อที่ง่าย แต่มีประโยชน์ สำหรับการปรับเปลี่ยนลักษณะการทำงานของ Bash อย่างจริงจัง ให้ใช้ฟังก์ชันหรือเชลล์สคริปต์แบบกำหนดเองที่บันทึกไว้ในตำแหน่งใน PATH ของคุณ .

สำหรับบันทึก มี มี เคล็ดลับที่ชาญฉลาดในการใช้ cd และ เรียงลำดับเป็นนามแฝง ดังนั้นหากคุณอดทนพอ ท้องฟ้าก็มีขีดจำกัดแม้จะใช้นามแฝงที่ต่ำต้อย

เริ่มใช้นามแฝงและทำงาน

การปรับแต่งสภาพแวดล้อมของคุณเป็นสิ่งที่ทำให้ Linux สนุก และการเพิ่มประสิทธิภาพของคุณคือสิ่งที่ทำให้ Linux เปลี่ยนแปลงชีวิต เริ่มต้นด้วยนามแฝงธรรมดา เลื่อนไปที่ฟังก์ชัน และโพสต์นามแฝงที่ต้องมีในความคิดเห็น!