trong quá trình làm việc của tôi, tôi cần liên tục thêm các lệnh bí danh vào bashrc, hầu hết các lệnh đó cần được chạy bởi những người dùng khác. Có cách nào để tôi có thể thêm các lệnh bí danh vào bashrc từ nguồn bên ngoài không?
trong quá trình làm việc của tôi, tôi cần liên tục thêm các lệnh bí danh vào bashrc, hầu hết các lệnh đó cần được chạy bởi những người dùng khác. Có cách nào để tôi có thể thêm các lệnh bí danh vào bashrc từ nguồn bên ngoài không?
Câu trả lời:
Nhiều tệp cấu hình trong thư mục gốc của người dùng chỉ ghi đè / thêm vào tệp trong /etc
- ví dụ: cài đặt cho GIMP trong nhà người dùng đang ở ~/.gimp-2.*
, bổ sung cho cấu hình toàn hệ thống /etc/gimp/2.0
.
Vì vậy, đối với ~/.bashrc
, bạn có thể chỉnh sửa các tệp cấu hình trên toàn hệ thống /etc/bash.bashrc
(đối với các hàm / bí danh ) hoặc /etc/profile
(đối với nội dung môi trường) - bạn có thể liệt kê đầy đủ từ 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
Cảnh báo này được đưa ra cho một vài hệ thống Linux trong các tệp:
# 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.
Vì vậy, bạn có thể chỉnh sửa các tệp đó, trước tiên bạn có thể muốn sao lưu chúng ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
ví dụ) hoặc tạo tập lệnh shell trong /etc/profile.d
- ví dụ: bạn có thể tạo tập tin bằng các lệnh này (với sudo / as root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Sau đó mở nó với nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
Và kiểm tra xem nó có hoạt động hay không bằng cách xem nó có xuất hiện trong đầu ra của không alias
- Lưu ý rằng bạn có thể cần phải đăng xuất / đăng nhập hoặc khởi động lại để xem bất kỳ thay đổi nào (nếu bạn không muốn, chạy source /etc/profile
sau khi có bất kỳ thay đổi nào có thể hoạt động)
[chỉnh sửa: xóa liên kết chết này] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
và /etc/bash.bash_logout
không hoạt động. :(
/etc/profile.d/
sẽ không được chọn bởi quy trình phụ phải không? Vậy bí danh chỉ khả dụng khi Bash là vỏ đăng nhập?
Đi đến /etc/bash.bashrc
vim /etc/bash.bashrc
và làm cho bí danh của bạn ở đó.
thêm bí danh của bạn trong dòng cuối cùng.
bí danh abc = "sao cũng được"
Bí danh đó sẽ trở thành toàn cầu cho tất cả người dùng.
nhưng vì lý do bảo mật, chúng tôi không khuyên bạn điều đó.
có profile.d
thư mục chứa các tệp môi trường người dùng
đi đến
cd /etc/profile.d/
bí danh vim
và thêm bí danh của bạn ở đây.
mà không ảnh hưởng đến các tập tin hệ thống của bạn. Đó là cách an toàn và đúng cách để làm việc với các tệp môi trường của bạn.
Đã có câu trả lời được chấp nhận ở đây, nhưng bạn có thể cân nhắc sử dụng một số dạng mô-đun môi trường để xử lý cấu hình toàn hệ thống của môi trường người dùng thay vì làm rối các tệp trong /etc/profile.d, v.v. Điều này đặc biệt đúng nếu bạn muốn quản lý điều khiển này ở một nơi trên nhiều vỏ. Lmod (dưới sự phát triển rất tích cực), các mô-đun C / TCL (giải pháp cổ điển) hoặc Cmod (nhẹ).
Không biết tôi có làm đúng hay không, nhưng tôi giữ một thư mục / home / ComunAtodos (viết hoa và bằng tiếng Tây Ban Nha để làm rõ rằng đó không phải là thư mục gốc linux) và đặt .bashrc, .nanorc và .bash_aliases ở đó. Sau đó, tôi tham chiếu những người trong /etc/skel/.profile để người dùng mới trỏ đến họ và chỉ thêm các tính năng bổ sung cho những người dùng cụ thể cần họ.
Tôi thực sự mới với hệ thống operativ của Linux, nhưng tôi đã phác thảo một tập lệnh bash hoạt động để sửa đổi tất cả các tệp .bashrc của người dùng chứ không phải tệp /etc/.bashrc của hệ thống.
#!/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
Được rồi vì vậy tôi biết rằng tập lệnh đó hoạt động, nhưng tôi không biết nếu nó không có lỗi :) Ngoài ra, bạn có thể sửa đổi nó để nó không liên quan đến tất cả người dùng, có thể bạn tạo một tệp cho tất cả người dùng cần tệp .bashrc của họ tùy chỉnh.
.bashrc
tệp và luôn luôn xuất hiện bất kể dòng đó đã có trong tệp của họ chưa.
/etc/skel/.bashrc
để thay đổi nội dung của~/.bashrc
những người dùng mới được tạo.