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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

1
ใน Bash ฉันสามารถให้ autocd เปิดโปรแกรมแก้ไขได้หรือไม่ถ้าฉันใส่ชื่อไฟล์?
ฉันเพิ่งตั้งค่าautocdของฉัน.bash_profile: shopt -s autocd ตอนนี้ฉันพิมพ์ได้ $ some-directory และโดยอัตโนมัติcdลงไป ตอนนี้ฉันสามารถบอก Bash ได้ไหมถ้าฉันป้อนไม่ใช่แค่ชื่อไดเรกทอรี แต่ชื่อไฟล์: $ some-directory/file.txt ฉันต้องการให้เปิดไฟล์นั้นในโปรแกรมแก้ไข (เช่น Vim) หรือไม่? ฉันไม่รู้ว่านี่จะเป็นตัวเลือกในตัว แต่ฉันหวังว่าฉันจะทำได้โดยใช้สคริปต์ที่ฉลาด

3
ถ่ายโอนการตั้งค่าเชลล์ไปยังเซสชัน ssh จากระยะไกลชั่วคราวหรือไม่
ฉันอยากรู้อยากเห็นบ่อยครั้งที่ฉันต้องการถ่ายโอนการตั้งค่าเปลือก (dotfiles) ทั้งหมดของฉันไปยังเซสชันระยะไกลเพียงแค่ในช่วงเซสชั่นของฉันแล้วพวกเขากลับรายการเมื่อฉันออกจากระบบ ยิ่งไปกว่านั้นคือให้ใช้งานเฉพาะในเซสชันนี้เพื่อให้ทุกคนที่เข้าสู่ระบบจะสามารถมีค่าเริ่มต้นหรือการตั้งค่าแบบกำหนดเองสำหรับเชลล์ มีวิธีที่จะทำในปัจจุบันหรือมันจะต้องมีโซลูชันที่กำหนดเองของฉันเขียนฟังก์ชันนี้ด้วยตัวเอง? ฉันไม่เห็นตัวเลือกที่แท้จริงใด ๆ เพื่อให้บรรลุสิ่งนี้
linux  bash  ssh  shell  zsh 

2
วิธีลบไฟล์จำนวนมากโดยไม่มีคำต่อท้าย
ฉันใช้ Linux, ใช้ Bash ฉันต้องการลบไฟล์ทั้งหมดโดยไม่มีคำต่อท้ายเช่น "dist" ฉันรู้ว่ามีเทคนิคบางอย่างที่จะทำแทนที่จะลบไฟล์ที่ไม่ต้องการทั้งหมดทีละคน
linux  bash 

1
ฉันจะตัดไฟล์ข้อความที่เหมาะสมด้วยสคริปต์ Bash ที่อนุญาตให้ผู้ใช้ทุกคน grep สำหรับ $ USER ได้อย่างไร
ดังนั้นฉันมีไฟล์data.txtที่เก็บชื่อผู้ใช้และข้อมูลบางส่วนหนึ่งบรรทัดต่อผู้ใช้ ฉันต้องการมีสคริปต์ Bash ที่ผู้ใช้สามารถเรียกใช้และอนุญาตให้โทร grep -w "^$USER" data.txt เพื่อดึงพวกเขาชิ้นส่วนของข้อมูล data.txtแต่ไม่สามารถที่จะอ่านทั้งหมด มี setuid-trick ง่าย ๆ ทำไหม? ไม่จำเป็นต้องเป็น Bash โซลูชัน C หรือ Perl ใด ๆ ก็ใช้ได้

1
ไม่สามารถเมานต์ปริมาณ TrueCrypt โดยอัตโนมัติ
ฉันมีสคริปต์สำหรับเดารหัสผ่านของปริมาณ TrueCrypt มันควรจะทำงานได้ แต่ TrueCrypt หรือ VeraCrypt บอกว่ามันถูกเรียกใช้ด้วยพารามิเตอร์บรรทัดคำสั่งที่ไม่ถูกต้อง มีใครสามารถช่วยได้บ้าง #!/bin/bash working="working.txt" tc=veracrypt prefix="--text --keyfiles= --protect-hidden=no --non-interactive -p " sufix="gentle.tc /mnt" count=0 echo archive=gentle.tc while read -r p; do echo -en "\033[2K\r$p" if $tc "$prefix\"$p\" $sufix"; then echo "$p" >>$working ; exit ; fi if $tc "$prefix\"$p\n\" $sufix"; then echo "$p" …

0
งาน cron ประจำสัปดาห์ของฉันจะทำงานหรือไม่
ฉันเพิ่งกลับเข้าสู่การทุบตีสคริปต์และฉันต้องการให้ cron ของฉันทำงานทุก ๆ 15 นาทีระหว่าง 9.15 ถึง 22.00 น. ฉันตรวจสอบสคริปต์แล้ว แต่ไม่ทราบว่าเป็นคำสั่งที่ถูกต้องหรือไม่: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report …
bash  cron 

2
เส้นทาง Rsync ด้วย ()
มีคนบอกฉันได้ไหมว่าฉันจะทำให้สายนี้ทำงาน rsync -rtvz --delete --exclude-from exclude.txt --out-format="%M %o %n" -e "ssh -p 2323 -i /root/.ssh/server" Administrator@someserver.dynv6.net:'/cygdrive/C/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/ '/volume2/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/' ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ -ash: ข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด `(' มันเป็น DSM 6.x synology
linux  bash  rsync 

1
รหัสกระบวนการสองรายการสำหรับหนึ่งเทอร์มินัลใน bash linux mint
ฉันใช้เทอร์มินัล bash หนึ่งตัวใน linux mint ฉันต้องการดูรหัสกระบวนการของเทอร์มินัลการทำงาน ดังนั้นฉันจึงลองสองสิ่ง: ps -C 'bash' ls -l /proc/*/exe | grep bash ทั้งสองสิ่งนี้ให้รหัสกระบวนการสองชุด ผู้ใดสามารถอธิบายเหตุผลสำหรับรหัสกระบวนการทั้งสองนี้สำหรับเทอร์มินัลเดียวเท่านั้น วิธีการระบุ id กระบวนการจริงของ terminal ระหว่างสอง? ขอบคุณ

2
ถ่ายภาพหน้าจอใน mplayer2 และอัปโหลดไปยังเว็บไซต์แบ่งปันรูปภาพด้วยปุ่มกดเดียว
ฉันมีสคริปต์ทุบตีที่อัปโหลดภาพหน้าจอไปยัง imgur ฉันต้องการ mplayer ที่จะจับภาพหน้าจอแล้วอัปโหลดด้วยสคริปต์ทุบตีและทั้งหมดนั้นในปุ่มกดเดียว มีวิธีคิวในการจับภาพหน้าจอแล้วเรียกใช้สคริปต์หรือไม่

2
จะฆ่ากระบวนการทั้งหมดของโปรแกรมได้อย่างไร
บางครั้งฉันก็พบปัญหากับ Skype หรือ Netbeans ดังนั้นเมื่อฉันต้องการที่จะฆ่ากระบวนการทั้งหมดของพวกเขาและเริ่มต้นใหม่วิธีเดียวที่ฉันรู้คือการดำเนินการ $ ps aux | grep skype รับรหัสกระบวนการทั้งหมด abdemo 3396 1.7 2.2 323800 89788 ? Sl Jun18 45:48 skype abdemo 18871 11.8 1.8 254248 74836 ? Sl 13:14 0:04 skype abdemo 19009 0.0 0.0 9424 924 pts/0 S+ 13:15 0:00 grep --color=auto skype และฆ่าทั้งหมดด้วยมือ $ sudo …
bash  kill  ps 

1
VLC bash สคริปต์การแปลงรหัสเอาต์พุตเป็นไฟล์
ฉันใช้สคริปต์ดังกล่าวเพื่อแปลงไฟล์เสียงของฉัน: #!/bin/bash acodec="vorb" arate="256" ext="ogg" vlc="/usr/bin/vlc" fmt="mp3" for a in *$fmt; do $vlc -I dummy -vvv "$a" --sout "#transcode{acodec=$acodec,ab=$arate,channels=2}:duplicate{dst=std{access=file,mux=ogg,dst=\"$a.$ext\"}" vlc://quit done และพยายามเปลี่ยนเส้นทางเอาต์พุตสคริปต์นี้เป็นไฟล์ดังนี้: ./transcode.sh > /media/sf_Downloads/transcode.log แต่รับไฟล์ 0 ไบต์เท่านั้น ทำไม?

2
Grep: แสดงเฉพาะบรรทัดที่ 2 ด้านบน
สมมติว่าฉันมีไฟล์ข้อความพร้อมเนื้อหา: foo bar whatever something I don't know bar2 whatever และเป็นผลลัพธ์จากการทำgrep whatever myfile.txt(และ / หรือsedและ / หรือawk) ฉันต้องการ: foo something I don't know ฉันได้พยายามใช้ตัวเลือก-B 2แต่ที่ผลทั้งสองและfoo ไม่สามารถทำได้เนื่องจากมีหลายระเบียนที่แตกต่างกันbar... | grep -v bar
linux  bash  script  grep 

1
การติดตั้ง / ปรับปรุงโปรแกรมบนเซิร์ฟเวอร์
ฉันเข้าถึงเซิร์ฟเวอร์ของฉันซึ่งโฮสต์โดย JustHost ผ่าน SSH เพื่อติดตั้ง Selenium เพื่อทำการขูดเว็บ ฉันพบปัญหาขณะพยายามติดตั้งอย่างไรก็ตาม ตัดสินจากรหัสข้อผิดพลาดฉันเชื่อว่าฉันต้องเปลี่ยนการอนุญาตของไดเรกทอรีหนึ่ง ๆ ถึงแม้ว่าสิทธิ์ของฉันจะถูก จำกัด ตั้งแต่ฉันซื้อโฮสติ้งที่ใช้ร่วมกันดังนั้นฉันจึงสงสัยว่า: ไม่ว่าจะเป็นเรื่องของการอนุญาตหรือไม่ ถ้าเป็นเช่นนั้นฉันควรเปลี่ยนการอนุญาตเป็นอย่างไร และสุดท้ายมีวิธีใดบ้างที่จะได้รับสิทธิพิเศษที่ จำกัด ? พยายามติดตั้งซีลีเนียม เข้าสู่ระบบ antonfa1@pillar.fyi [~]# pip install selenium You are using pip version 7.1.0, however version 10.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting selenium Using …

1
วิธี `ส่งออก PATH` จาก C [ปิด]
สงสัยว่าจะทำสิ่งใดสิ่งหนึ่งจาก C ให้สำเร็จได้อย่างไรเพื่อให้มันคงอยู่เหมือน~/.bashrcหรือจาก~/.bash_profile: export PATH=~/bin:$PATH export PS1="$ " สงสัยว่าฉันควรใช้execlคำสั่งแบบนี้: #include <stdio.h> #include <unistd.h> #include <dirent.h> int main (void) { return execl("/bin/export", "...", NULL); } หรือถ้ามีอีกวิธีสำนวน C เพื่อให้บรรลุสิ่งนี้อย่างถูกต้อง
bash  shell  c 

2
bash: ./wls1036_solaris32.bin: อาร์กิวเมนต์ไม่ถูกต้อง
มีประสบการณ์บางอย่างในอูบุนตูผมติดตั้งsolaris 11gเมื่อเร็ว ๆ WebLogicนี้ในการทำงานกับ ฉันดาวน์โหลดwls1036_solaris32.binไฟล์แล้ว เมื่อฉันวิ่ง./wls1036_solaris32.binเข้าไปในสถานีฉันได้รับ bash: ./wls1036_solaris32.bin: Invalid argument กรุณาช่วยฉันออกไป.

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