Tôi đã đặt bash PATH của mình ở đâu?


9

Tôi muốn loại bỏ ~/binkhỏi ĐƯỜNG của tôi. Tôi đã thiết lập nó từ nhiều tháng trước khi Linux (Ubuntu) còn rất mới đối với tôi, nhưng tôi không biết tôi đã thêm nó như thế nào ...

Không có gì hiển thị khi tôi tìm kiếm tất cả các tập tin được liệt kê dưới đây.
Nơi nào khác nó có thể được thiết lập? Nó đang được chờ đợi sau $HOME/.profiletiền tố PATH với$HOME/bin

Nếu nó có bất kỳ sự khác biệt nào, tôi nhận được cùng một PATH từ cả dấu nhắc lệnh và tập lệnh đang chạy.

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}

Đầu ra là:

first dir of PATH is: '~/bin'

PATHThay vào đó hãy thử grepping . Nếu vẫn không gặp may, hãy kiểm tra tất cả các tệp cho bất cứ thứ gì đang có nguồn gốc.
jw013

Bạn đã kiểm tra ~ / .bashrc và ~ / .profile cho nó chưa? Nếu không có cái nhìn vào / etc / profile. Tôi nghĩ bạn sẽ tìm thấy nó ở một trong những nơi này.
nikhil

Cảm ơn tất cả mọi người ... tất cả các đề xuất đều hữu ích ... đó là trong ~/.gnomerc...
Peter.O

Câu trả lời:


10

Bạn có thể muốn theo dõi tải môi trường đầy đủ khi đăng nhập. Chỉ là một ý tưởng.

Vì / etc / profile là tập tin đầu tiên có nguồn gốc, bạn có thể thêm nó vào đầu trang:

set -x
exec 2> /tmp/debug.log

Sau đó mở một thiết bị đầu cuối mới và làm một bash -l; sau đó đi đến thiết bị đầu cuối ban đầu và xóa các dòng được thêm vào (bạn muốn có một môi trường làm việc, phải không?).

Bạn nên kết thúc với một dấu vết đầy đủ của tất cả các bước của load_the_bash_en môi trường tại /tmp/debug.log. Nó sẽ là một tập tin loooong.

Cùng với đó, bạn phải có khả năng xác định vị trí "~ / bin" vào PATH của bạn

Trước tiên tôi sẽ tìm một grep của tất cả các tệp có nguồn gốc. Từ bài đăng của bạn, tôi cá rằng ~ / bin trong đường dẫn được đặt trong một tệp khác của những người bạn đã liệt kê.


@hmontoliu .. Tôi đã có một vài vấn đề với điều này .. Đầu tiên, không có gì xảy ra với nhật ký, nhưng tôi nhận được rất nhiều đầu ra trong thiết bị đầu cuối ( konsole) ... Tham chiếu đầu tiên cho ~/binthấy nó đã có trong đường dẫn, nhưng tôi không thể thấy gợi ý về nguồn gốc từ đâu .. Tại thời điểm này, nó đã được theo dõi $HOME/bintừ $HOME/.profile(Tôi chắc chắn là từ đó, vì tôi đã sử dụng một thư mục bổ sung đặc biệt cho bài kiểm tra này). ... Howerver, tôi đã quản lý để tìm thấy nó theo kinh nghiệm, bằng cách tìm kiếm tất cả các tệp văn bản của tôi .. Nó đến từ ~/.gnomerc.. và tôi cần phải đăng nhập lại để khiến nó thay đổi. ?? !! ..
Peter.O

Bạn có chắc chắn rằng bạn đã dán các dòng trên đầu trang / etc / profile và rằng bạn đang thực hiện nó với một đơn giản bash -l? Nó phải gửi gỡ lỗi (-x) tới stderr tới /tmp/debug.log; thực sự tôi vừa thử nghiệm cái này và làm việc như tôi mong đợi
hmontoliu

Tôi sẽ thử lại (một lần nữa) ... Phân tích nhật ký này chắc chắn là hướng đi (khi tất cả đều thất bại :) và đây là cơ hội tốt để tôi hiểu rõ hơn về nó ...
Peter.O

... Bây giờ tôi sẽ phải đặt vấn đề nhật ký này vào giỏ quá khó .. Nó vẫn không xuất ra logfile, nhưng tôi đã nhận được hàng trăm dòng trong thiết bị đầu cuối .. nhưng không sao .. Nó đã ổn một phần giới thiệu tốt về nhật ký gỡ lỗi .. và tôi chắc chắn đã cảm nhận rõ hơn về các tệp cấu hình ... cảm ơn ...
Peter.O

3
Tôi đã phải thay thế setbằng exectrong dòng thứ hai, sau đó nó hoạt động hoàn hảo với tôi :)
thomasa88
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.