ในระหว่างการทำงานของฉันฉันต้องเพิ่มคำสั่ง alias อย่างต่อเนื่องใน bashrc คำสั่งเหล่านั้นส่วนใหญ่จะต้องถูกเรียกใช้โดยผู้ใช้รายอื่น มีวิธีใดบ้างที่ฉันสามารถเพิ่มคำสั่ง alias ไปยัง bashrc จากแหล่งภายนอก?
ในระหว่างการทำงานของฉันฉันต้องเพิ่มคำสั่ง alias อย่างต่อเนื่องใน bashrc คำสั่งเหล่านั้นส่วนใหญ่จะต้องถูกเรียกใช้โดยผู้ใช้รายอื่น มีวิธีใดบ้างที่ฉันสามารถเพิ่มคำสั่ง alias ไปยัง bashrc จากแหล่งภายนอก?
คำตอบ:
config ไฟล์จำนวนมากในผู้ใช้ไดเรกทอรีบ้านเพียงแทนที่ / สั่งคนใน/etc
- ตัวอย่างการตั้งค่าสำหรับคนพิการในผู้ใช้ที่บ้านอยู่ในซึ่งจะเพิ่มการตั้งค่าทั้งระบบ~/.gimp-2.*
/etc/gimp/2.0
ดังนั้นสำหรับ~/.bashrc
คุณสามารถแก้ไขไฟล์กำหนดค่าทั้งระบบ/etc/bash.bashrc
(สำหรับฟังก์ชั่น / นามแฝง ) หรือ/etc/profile
(สำหรับเนื้อหาสภาพแวดล้อม) - คุณสามารถดูรายการทั้งหมดจากman bash
:
FILES
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
/etc/bash.bash_logout
The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
คำเตือนนี้มีให้สำหรับระบบ Linux บางตัวในไฟล์:
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
ดังนั้นคุณสามารถแก้ไขไฟล์เหล่านั้นคุณอาจต้องการสำรองข้อมูลก่อน ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
ตัวอย่าง) หรือสร้างเชลล์สคริปต์ใน/etc/profile.d
- ตัวอย่างเช่นคุณสามารถสร้างไฟล์ด้วยคำสั่งเหล่านี้ (ด้วย sudo / as root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
จากนั้นเปิดด้วย nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
และตรวจสอบว่ามันทำงานโดยดูว่ามันปรากฏในผลลัพธ์ของalias
- โปรดทราบว่าคุณอาจต้องออกจากระบบ / เข้าสู่ระบบหรือรีบูตเพื่อดูการเปลี่ยนแปลงใด ๆ (ถ้าคุณไม่ต้องการทำงานsource /etc/profile
หลังจากการเปลี่ยนแปลงใด ๆ อาจทำงาน)
[แก้ไข: ลบลิงค์นี้] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
และ/etc/bash.bash_logout
ไม่ทำงาน :(
/etc/profile.d/
จะไม่ถูกเลือกโดยกระบวนการย่อยใช่มั้ย ดังนั้นนามแฝงจะใช้ได้เฉพาะเมื่อ Bash เป็นเชลล์เข้าสู่ระบบ?
ไปที่ /etc/bash.bashrc
เป็นกลุ่ม /etc/bash.bashrc
และสร้างนามแฝงของคุณที่นั่น
เพิ่มนามแฝงของคุณในบรรทัดสุดท้าย
นามแฝง abc = "อะไรก็ตาม"
นามแฝงนั้นจะกลายเป็นส่วนกลางสำหรับผู้ใช้ทั้งหมด
แต่เพื่อความปลอดภัยเราไม่แนะนำให้คุณทำ
มีprofile.d
ไดเร็กทอรีซึ่งมีไฟล์สภาพแวดล้อมผู้ใช้
ไปที่
cd /etc/profile.d/
นามแฝงเป็นกลุ่ม
และเพิ่มชื่อแทนของคุณที่นี่
โดยไม่ส่งผลกระทบต่อไฟล์ระบบของคุณ มันปลอดภัยและถูกต้องในการทำงานกับไฟล์สภาพแวดล้อมของคุณ
มีคำตอบที่ยอมรับแล้วที่นี่ แต่คุณอาจพิจารณาใช้รูปแบบของโมดูลสภาพแวดล้อมเพื่อจัดการการกำหนดค่าทั่วทั้งระบบของสภาพแวดล้อมผู้ใช้แทนที่จะไปยุ่งกับไฟล์ใน /etc/profile.d ฯลฯ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งถ้าคุณต้องการ จัดการการควบคุมนี้ในที่เดียวในทุก ๆ เชลล์ Lmod (ภายใต้การพัฒนาที่ใช้งานอยู่มาก), โมดูล C / TCL (โซลูชันแบบคลาสสิก) หรือCmod (น้ำหนักเบา)
ไม่ทราบว่าฉันทำถูกต้องหรือไม่ แต่ใช้งานได้สำหรับฉันที่จะเก็บไดเรกทอรี / home / ComunAtodos (พิมพ์ใหญ่และเป็นภาษาสเปนเพื่อให้เห็นได้ชัดว่าไม่ใช่ไดเรกทอรีของ linux) และใส่. bashrc, .nanorc และ .bash_aliases ที่นั่น จากนั้นฉันจะอ้างอิงผู้ใช้ใน /etc/skel/.profile เพื่อให้ผู้ใช้ใหม่ชี้ไปที่พวกเขาและเพิ่มเฉพาะผู้ใช้ที่ต้องการเท่านั้น
ฉันยังใหม่กับระบบปฏิบัติการ Linux แต่ฉันทำร่างของ bash script ที่ทำงานเพื่อแก้ไขไฟล์. bashrc ของผู้ใช้ทั้งหมดไม่ใช่ไฟล์ระบบ /etc/.bashrc
#!/bin/bash
X=$( cat etc/passwd | cut -f1 -d: ) #All-users
For X in /home/*/.bashrc ; do
echo "alias ls='ls -al'" >> $X
2>/dev/null
done
source $X
exit 0
โอเคฉันรู้ว่าสคริปต์นั้นใช้งานได้ แต่ฉันทำไม่ได้หากปราศจากข้อผิดพลาด :) นอกจากนี้คุณสามารถแก้ไขได้ดังนั้นจึงไม่เกี่ยวข้องกับผู้ใช้ทั้งหมดบางทีคุณอาจสร้างไฟล์สำหรับผู้ใช้ทั้งหมดที่ต้องการไฟล์. bashrc ที่กำหนดเอง
.bashrc
ไฟล์อยู่แล้วและต่อท้ายเสมอโดยไม่คำนึงว่าบรรทัดนั้นมีอยู่แล้วในไฟล์ของพวกเขา
/etc/skel/.bashrc
เพื่อเปลี่ยนสิ่งที่เนื้อหาของ~/.bashrc
จะมีลักษณะสำหรับผู้ใช้ที่สร้างขึ้นใหม่