เหตุใดชื่อนามแฝงที่กำหนดในไฟล์. bashrc จึงไม่ทำงาน


11

ฉันให้ชื่อนามแฝงในไฟล์. bashrc เหมือนด้านล่าง แต่ชื่อนามแฝงไม่ทำงาน ทำไม?

alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

2
คุณกำลังบอกว่าคุณได้รับตัวแปรสภาพแวดล้อม แต่ไม่ใช่นามแฝงหรือคุณไม่ได้รับมัน
Paul

อาจเป็นปัญหาที่แยกจากกัน แต่คุณลบล้าง PATH ของคุณ คุณควรอ้างอิง PATH เก่าของคุณในการตั้งค่าใด ๆ เช่น export PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Rich Homolka

คำตอบ:


25

คุณมาของคุณหรือไม่ .bashrc ไฟล์หลังจากที่คุณเปลี่ยนมัน? ลอง:

. ~/.bashrc

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


2
นี่เป็นการแก้ไขปัญหาของฉัน! ก่อนหน้านั้นฉันก็พยายามออกจากระบบแล้วเข้าสู่ SSH อีกครั้ง แต่ก็ไม่มีอะไรเกิดขึ้น ชื่อแทนยังคงไม่พร้อมใช้งาน ดูเหมือนว่าฉันจะต้องทำสิ่งนี้ทุกครั้งที่ฉันทำ SSH! คุณรู้ไหมว่าทำไมสิ่งนี้จึงเกิดขึ้น
Vladimir Despotovic

ฉันไม่แนะนำให้เรียกใช้ซ้ำ .bashrc. มันสามารถทำให้ค่าที่ซ้ำกันและบวมบางอย่าง ทำไมไม่ออกและเริ่มเชลล์ใหม่? มันจะโหลดการปรับปรุง .bashrc ไฟล์.
AlikElzin-kilaka

2

สิ่งนี้อาจเกิดขึ้นเนื่องจาก PATH ของคุณไม่ได้รับการตั้งค่าอย่างถูกต้องเพื่อใช้นามแฝงทั้งหมดที่อ้างถึงเส้นทางไบนารี absoulte I.e ls มีอยู่ภายใต้ / bin / ls

คุณสามารถลองใช้ "export PATH = $ PATH: $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin:"  หรือ บางอย่างเช่น "export PATH = $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin: / bin: / bin: / sbin /: / usr / sbin

ถ้าไม่เช่นนั้นใช้ "ซึ่ง" เพื่อค้นหาไดเรกทอรีเส้นทางสำหรับไบนารีอ้างอิงนามแฝงของแต่ละบุคคล (ประวัติใด)


1

คำถามที่ถามตัวเองคือ:

  • เป็น ~ / .bashrc แล้วดำเนินการในเปลือกของคุณ มันจะทำงานเฉพาะเมื่อเชลล์เริ่มทำงาน หากคุณเปิดเชลล์ใหม่ (ดำเนินการ bash ) มันควรจะเป็น. กับ alias คุณควรเห็นชื่อแทนทั้งหมดของคุณพิมพ์
  • สิ่งที่สองที่ต้องถาม: มีโปรแกรมในนามแฝงของคุณหรือไม่ อย่างน้อย h (ประวัตินามแฝง) ควร ทำงานได้อย่างแน่นอนเพราะมันสร้างขึ้นในตัว

1

บางทีคุณอาจกำลังพยายามกำหนดนามแฝงใน .bashrc ที่เป็นสากลแล้ว

มักจะเป็นชื่อแทนของคุณใน .bashrc ถูกกำหนดไว้ก่อน /etc/bashrc โทร. พยายามที่จะกำหนดพวกเขา หลังจาก .

นี่คือตัวอย่างของคุณ .bashrc:

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

คำตอบที่ยอดเยี่ยม! ฉันเห็นสิ่งนี้อย่างสม่ำเสมอใน AWS Linux AMI
rainabba
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.