คำถามติดแท็ก bashrc

คำถามเฉพาะของ Bourne อีกครั้งของเชลล์ใน GNU เมื่อเทียบกับเชลล์ Bourne / POSIX อื่น ๆ สำหรับคำถามเกี่ยวกับเชลล์ Unix โดยทั่วไปให้ใช้ / เชลล์แท็กแทน

5
จะทดสอบความขัดแย้งที่อาจเกิดขึ้นขณะใช้นามแฝงใน bashrc อย่างไร
มีวิธีง่าย ๆ ในการแสดงรายการความขัดแย้งของคำสั่งทั้งหมดที่เกิดขึ้นในระบบเนื่องจากการอัพเดต bashrc ที่เกี่ยวข้องกับคำสั่ง alias หรือไม่? ตัวอย่างเช่นมีคนเขียนเป็นalias ls=/path/to/user-generated/executablebashrc เราจะรู้ได้อย่างไรว่านี่เป็นการปกปิดคำสั่งจริง ( ls) วิธีหนึ่งดูเหมือนว่าจะเรียกใช้นามแฝงทั้งหมดก่อนและหลังการจัดหา bashrc และกระจายเอาต์พุต มีวิธีที่ดีกว่านี้อีกไหม? ฉันใช้ Ubuntu 12.04 ทุบตี - รุ่น GNU ทุบตีรุ่น 4.2.24 (1) - ปล่อย (i686-pc-linux-gnu)
12 bash  alias  bashrc 

5
เชลล์แบบไม่โต้ตอบขยายนามแฝง
ฉันมีปัญหาในการรับชื่อแทนเพื่อขยายบัญชีโฮสติ้งของฉันเมื่อฉันเรียกใช้คำสั่งเช่น: ssh user@server "bash -c \"alias\"" ไฟล์. bashrc ของฉันคือ: echo .bashrc # .bashrc shopt -s expand_aliases # Source global definitions (commenting this out does nothing) if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias php="php55" alias composer="php ~/bin/composer.phar" เมื่อฉันเรียกใช้คำสั่ง ssh ฉันเห็น ".bashrc" echo'd …
12 bash  ssh  alias  bashrc 

4
ปิดใช้งานการควบคุมงานใน bash (CTRL-Z)
มันเกิดขึ้นกับฉันในบางครั้งฉันกดCTRL+ Zโดยไม่ตั้งใจและใบสมัครของฉันหายไปเป็นพื้นหลัง ฉันรู้ว่าฉันสามารถนำมันกลับมาได้fgดังนั้นจึงไม่ใช่เรื่องใหญ่อะไร แต่ฉันสงสัยเกี่ยวกับการjob controlปิดเครื่องนี้อยู่ดี ในชีวิตทั้งชีวิตของฉันฉันไม่สามารถจำหนึ่งครั้งเมื่อฉันต้องการมันก็แค่ดูเหมือนว่าฉันเป็นรูปแบบที่ระลึกในอดีต ตกลงเพื่อปิดใช้งานjob controlทั้งหมดหรือไม่ หรือฉันกำลังพลาดบางสิ่งบางอย่างและคุณสมบัตินี้มีประโยชน์หรือไม่ ฉันจะปิดการใช้งานในฉันได้อย่างไร.bashrc UPDATE: ฉันได้ลองset +mตามที่ @Falsenames แนะนำแล้ว อย่างไรก็ตามสิ่งนี้ใช้ได้เฉพาะเมื่อฉันพิมพ์ในเทอร์มินัล การเพิ่มset +mเข้าไปในของฉัน.bashrcไม่มีผล

2
ตกลงไหมที่จะใช้“.” รันไฟล์แทนที่จะเป็น source - in .bashrc ใน Ubuntu และ OS X
ตกลงดังนั้นsourceรันสคริปต์ในเชลล์ปัจจุบันและ.แยกกันตามรายละเอียดในการรันสคริปต์ด้วย "." และด้วย "source"ตัวอย่างเช่น แต่โดยเฉพาะใน.bashrcไฟล์ของฉันฉันมี: [ -f ~/.bash_aliases ] && source ~/.bash_aliases [ -f ~/.git-completion.bash ] && source ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh ฉันสามารถแทนที่ด้วย: [ -f ~/.bash_aliases ] && . ~/.bash_aliases [ -f ~/.git-completion.bash ] && . ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh จะใช้งานได้กับ OS …
11 osx  bashrc  posix 

4
เป็นไปได้หรือไม่ที่จะมีเชลล์ล็อกอินที่ไม่ทำงาน?
ในการตีความผังงานนี้ ฉันพบว่าในคนทุบตี: เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์แบบไม่โต้ตอบที่มีตัวเลือก --login มันจะอ่านและเรียกใช้คำสั่งจากไฟล์ / etc / profile ก่อนหากไฟล์นั้นมีอยู่ ระบุว่าเชลล์ล็อกอินแบบโต้ตอบอ่าน/etc/profile(โดยไม่มี --noprofile) นอกจากนี้เชลล์ที่ไม่มีการโต้ตอบพร้อมตัวเลือกการ--loginอ่าน/etc/profile ที่ดูเหมือนว่าจะปล่อยให้บางอย่างที่เป็นไปได้เข้าสู่ระบบเปลือกหอย (ซึ่ง$0เริ่มต้นด้วย-) ที่ถูกไม่โต้ตอบ (เรียกใช้สคริปต์ที่อาจจะเป็นง่ายๆเป็นdate) อาจจะไม่อ่าน /etc/profile(ที่มา) หากต้องการยืนยันหรือปฏิเสธแนวคิดนี้: ก่อนอื่นฉันพยายามใช้su -l -ซึ่งเริ่มต้นเชลล์การเข้าสู่ระบบด้วย-อักขระตัวแรก แต่ฉันไม่สามารถทำให้มันเป็นแบบไม่โต้ตอบ (และสามารถแสดงการทดสอบเพื่อตรวจสอบได้) เรียกสิ่งที่ชอบ $ bash -c 'date' -bash ไม่รายงานว่าเป็นเชลล์ล็อกอิน (แม้ว่าอักขระตัวแรกคือ-) ลองใช้วิธีนี้เพื่อเปิดเผยรายละเอียด: $ bash -c 'echo "$0 $- ||$(shopt -p login_shell)||";date' -bash -bash hBc ||shopt -u …
11 bash  login  startup  bashrc 

1
ดูนิยามปัจจุบันของฟังก์ชัน shell
ดังนั้นฉันจึงแก้ไข bashrc อย่างต่อเนื่องและฉันมีเทอร์มินัลเปิดพร้อมกับนิยามฟังก์ชั่นการทำงานแม้ว่า bashrc ได้รับการปรับปรุงด้วยนิยามฟังก์ชั่นที่ไม่ถูกต้อง (เนื่องจากคำจำกัดความไม่เปลี่ยนแปลงจนกว่าฉันจะจัดหา bashrc ที่อัปเดตแล้ว) ฉันจะค้นหาคำนิยามฟังก์ชันการทำงานในกรณีนี้ได้อย่างไร ตัวอย่างเช่นถ้าฉันพิมพ์: alias function_name ฉันสามารถดูความหมายของนามแฝงนั้นได้ มีคำสั่งที่คล้ายกันสำหรับฟังก์ชั่นหรือไม่? หากไม่มีมีคำสั่งให้ส่งเอาต์พุต bashrc ทั้งหมดที่เทอร์มินัลปัจจุบันใช้หรือไม่?
11 function  bashrc 

3
เนื้อหาของไฟล์. bash_history ใช้เวลานานเท่าใด
ฉันจะแก้ไขเนื้อหาของbash_historyไฟล์ของฉันได้อย่างไร? ค่าหรือตัวแปรใดที่ควบคุมว่าประวัติศาสตร์จะอยู่ได้นานแค่ไหน มีสิ่งอื่นใดอีกบ้างที่ฉันสามารถเปลี่ยนเพื่อให้การควบคุมประวัติ BASH ของฉันดีขึ้นหรือไม่?


3
ทำไม root ไม่มา. bash_profile
ทุกครั้งที่ฉันพยายามเข้าสู่ระบบในฐานะรูทโดยใช้su(ไม่ใช่su -) จะไม่ได้มา.bash_profileจากไดเรกทอรีหลักของ user1 โดยทั่วไปฉัน/var/rootไดเรกทอรีไม่ได้.bash_profileดังนั้นผมจึงนำสำเนา.bash_profileในการทดสอบ/var/rootsu - มันไม่ได้มาโดยอัตโนมัติ.bash_profile(ในvar/root) อย่างใดอย่างหนึ่ง อย่างไรก็ตามผมต้องการที่จะทำให้.bash_profileของ user1 suที่มาในบัญชีของรากโดยอัตโนมัติเมื่อฉันใช้ ฉันควรทำอย่างไรดี? (มันทำงานมาก่อน! วันหนึ่งมันไม่ได้มาเลย! อาจมีบางอย่างเปลี่ยนการตั้งค่าเป็น bash มันทำงานเมื่อฉันเข้าsource .bash_profileสู่ระบบหลังจากเข้าสู่ระบบ) ฉันใช้ Mac และ OS X Yosemite
10 osx  root  bashrc  su 

1
เจนกินส์ไม่ได้ใช้ตำแหน่งที่ตั้งของระบบ
ฉันมีพฤติกรรมที่น่าสนใจในเจนกินส์ เชลล์ของ Jenkins ไม่ได้ใช้ระบบตำแหน่งที่ตั้งของฉัน เจนกินส์ทำงานเป็นผู้ใช้jenkinsในระบบของฉัน เข้าสู่ระบบjenkinsผ่านทาง SSH: locale แสดง: LANG = en_US.UTF-8 LANGUAGE = th_: en LC_CTYPE = "en_US.UTF-8" ฯลฯ ... envการแสดงLANGและLANGUAGEตัวแปร: LANG = en_US.UTF-8 LANGUAGE = en_US: en id แสดง ID ของผู้ใช้: uid = 1008 (jenkins) gid = ... ป้อนคำสั่งด้านบนลงในเชลล์งาน jenkins: locale แสดง: LANG = LANGUAGE = LC_CTYPE = …

1
มีไฟล์ Bash ที่จะมีแหล่งที่มาในโหมดอินเตอร์แอคทีฟเสมอไม่ว่าจะเป็นการเข้าสู่ระบบหรือไม่เข้าสู่ระบบ?
เท่าที่ฉันรู้เปลือกโต้ตอบอาจเข้าสู่ระบบหรือไม่เข้าสู่ระบบและไฟล์เริ่มต้นสำหรับพวกเขาจะแตกต่างกัน ถ้าโต้ตอบ + เปลือกเข้าสู่ระบบ→ /etc/profileแล้วอ่านครั้งแรก~/.bash_profile, ~/.bash_loginและ~/.profile หากเปลือกแบบโต้ตอบ + ที่ไม่ใช่การเข้าสู่ระบบ→ /etc/bash.bashrcแล้ว~/.bashrc ฉันต้องการตั้งค่าตัวแปรบางอย่างทุกครั้งที่ฉันใช้เชลล์แบบโต้ตอบโดยไม่คำนึงว่ามันเป็นเชลล์ล็อกอินหรือไม่
10 bash  login  bashrc 

1
bashrc ขี้เกียจทดแทน
เราจะได้รับ~/.bashrcชื่อแทนเพื่อประเมินการ$()ทดแทนในเวลาทำงานแทนที่จะเป็นช่วงเวลาที่ดำเนินการ ~ / .bashrc (เมื่อเปิดเทอร์มินัล)? ฉันรันคำสั่งนี้บ่อยพอที่ฉันต้องการเพิ่มนามแฝง: svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff อย่างไรก็ตามเมื่อฉันเพิ่มลง~/.bashrcในนามแฝงฉันเห็นว่าการประเมินผลนั้นได้รับการกำหนดค่าตายตัวในค่าที่พวกเขามีในขณะที่ฉันเปิดเทอร์มินัล: $ alias alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff' ถ้าฉันเปิดเทอร์มินัล~ฉันจะได้รับข้อผิดพลาด: svn: E155007: '/home/dotancohen' is not a working copy svn: …
10 bash  shell  quoting  alias  bashrc 

1
.inputrc vs .bashrc การตั้งค่า
ฉันสังเกตเห็นการตั้งค่าบางอย่างใน.bashrcและ.inputrcไฟล์มีลักษณะเหมือนหรือคล้ายกันเช่น: shopt -s nocaseglobVS set completion-ignore-case export HISTSIZEVS set history-size export HISTFILESIZEVSset history-size อย่า.inputrcตั้งค่ายังส่งผลกระทบต่อการเสร็จสิ้นและขนาดประวัติศาสตร์ในเปลือกหลาม (ถ้าวิ่งภายในอาคารผู้โดยสาร)? ถูกHISTSIZEจำกัด ด้วยhistory-sizeหรือไม่ก็แทนที่มันได้หรือไม่
9 bashrc  inputrc 

1
/root/.bashrc และ /root/.profile มาจากไหนในระบบ Debian?
โดยปกติเมื่อคุณเพิ่มผู้ใช้ในระบบ Debian เนื้อหาของ/etc/skel/จะถูกคัดลอกไปยังโฮมไดเรกทอรีของผู้ใช้ใหม่ แต่/root/.bashrcไม่ตรง/etc/skel/.bashrcและไม่ตรงกับ/root/.profile นอกจากนี้ยังมีไฟล์ไม่เป็นที่รู้จักกัน/etc/skel/.profile dpkgแล้วพวกเขามาจากไหน

3
ในสคริปต์การกำหนดค่าเชลล์ฉันจะอธิบายถึงความแตกต่างระหว่าง coreutils บน BSD ได้อย่างไรเมื่อเปรียบเทียบกับ GNU
จนถึงเดือนนี้การกำหนดค่าเปลือกของฉันค่อนข้างเรียบง่าย (แค่ส่วนใหญ่.bashrcหรือ.bash_profileด้วยนามแฝงบางส่วน) แต่ฉันได้ทำการปรับโครงสร้างใหม่เพื่อที่ฉันจะได้รับพฤติกรรมที่แตกต่างกันขึ้นอยู่กับว่าฉันใช้ zsh และทุบตี พวกเขาแรกมาไฟล์เปลือก config ทั่วไปที่ควรทำงานอะไรก็ตามแล้วเชี่ยวชาญสำหรับเชลล์เฉพาะที่ใช้ (ฉัน symlink นี้) วันนี้ฉันรู้สึกประหลาดใจเมื่อlsหยุดทำงาน มันกลับกลายเป็นว่าในระหว่างการรีแฟค.bashrcเตอร์ alias ls='ls --color=always' ที่ทำลายสิ่งต่าง ๆlsในการทุบตีใน Terminal ใน OSX เมื่อฉันเห็นว่า BSD lsชอบ-Gสี แต่ GNU (หรืออะไรก็ตามที่อยู่บน Ubuntu) ชอบ--colorมันชัดเจนว่ามีตัวเลือกไม่กี่ตัวที่แตกต่างกัน คำถามของฉันคืออะไรวิธีที่ดีที่สุดในการพิจารณาความแตกต่างของตัวเลือกและระหว่างแกนกลาง BSD และ GNU คืออะไร? ฉันควรทดสอบตัวแปร env ในifบล็อกเพื่อดูว่ามีการใช้ระบบปฏิบัติการใดและใช้พฤติกรรมที่ถูกต้องหรือไม่ หรือมันเหมาะสมกว่าที่จะแยกไฟล์ปรับแต่งสำหรับแต่ละระบบปฏิบัติการ ในขณะที่คำตอบสำหรับคำถามเหล่านี้อาจเป็นอัตนัยดูเหมือนว่าบทสรุปของขอบเขตของความแตกต่างระหว่าง coreutils ของ BSD และ GNU และกลยุทธ์ในการแก้ไขปัญหาเหล่านี้เพื่อให้การกำหนดค่าทั่วไปที่ใช้งานได้บน nix ส่วนใหญ่จะมีวัตถุประสงค์อย่างเป็นธรรม
9 bash  bashrc  bsd  gnu 

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