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

เชลล์คือซอฟต์แวร์ที่ช่วยให้ผู้ใช้โต้ตอบกับระบบปฏิบัติการโดยปกติแล้วพิมพ์ที่บรรทัดคำสั่ง

5
ฉันจะเปลี่ยนชื่อไฟล์ด้วยช่องว่างโดยใช้เปลือก Linux ได้อย่างไร
_ผมตั้งชื่อจำนวนไฟล์ที่มีช่องว่างในพวกเขาและฉันต้องการที่จะเปลี่ยนพื้นที่ที่มี อย่างไรก็ตามทุกครั้งที่ฉันเขียนคำสั่งในเชลล์ด้วยชื่อไฟล์ (เช่นSpring 2011) เชลล์จะไม่รู้จักไฟล์หรือไดเรกทอรี ฉันจะทำอะไรเกี่ยวกับเรื่องนี้? มีวิธีการใช้อักขระยูนิโค้ดสำหรับช่องว่างหรือไม่?
28 linux  bash  shell 


5
อะไรคือสิ่งที่เทียบเท่ากับทุบตี! $ และ !! ในเปลือกปลาหรือไม่
ฉันใช้ทุบตีมานานกว่าทศวรรษแล้วและเคยชินกับการพิมพ์! $ เพื่อทำซ้ำการโต้แย้งครั้งสุดท้ายเช่น: $ mkdir foo $ cd !$ cd foo (บรรทัดสุดท้ายนั้นพิมพ์โดยเชลล์เพื่อบอกให้คุณทราบว่าคำสั่งของคุณประเมินเป็นอย่างไร) ในทำนองเดียวกันฉันมักจะต่อไปนี้: $ make_sandwich -bash: make_sandwich: Permission denied $ sudo !! sudo make_sandwich ฉันชอบเปลือกปลาจริง ๆ แต่ความทรงจำของกล้ามเนื้อของฉันนั้นค่อนข้างดี ในปลามีค่าเท่ากันหรือไม่? ฉันสามารถกำหนดค่าปลาให้ใช้คำสั่งเดียวกันได้หรือไม่?

2
วิธีนำงานพื้นหลังมาสู่เบื้องหน้า
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Super User อพยพ 9 ปีที่ผ่านมา ใน Linux / shell ฉันจะนำงานแบ็กกราวด์มาทำงานเบื้องหน้าและในทางกลับกันได้อย่างไร
27 linux  shell 

4
Windows & Git Bash: Bash PATH เพื่ออ่านตัวแปรระบบ Windows% PATH%
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Super User อพยพ 6 ปีที่แล้ว ฉันเพิ่งเพิ่มไดเรกทอรีไปยัง Windows PATH ด้วยตนเองโดยไปที่แผงควบคุม -> ระบบ -> การตั้งค่าระบบขั้นสูง -> ตัวแปรสภาพแวดล้อม -> ตัวแปรผู้ใช้ -> เส้นทาง (Windows 7, 64- บิต) หลังจากรีบูตเครื่องและเริ่มต้น cmd.exe echo %PATH%แสดงว่าทำงานได้: ฉันเห็นไดเรกทอรีที่ฉันเพิ่งเพิ่มในผลลัพธ์ อย่างไรก็ตามหลังจากเริ่มต้น Git Bash ผลลัพธ์ของการecho $PATHไม่รวมไดเรกทอรีนี้ ฉันสามารถเพิ่มexport PATH=$PATH:/c/my/pathใน bashrc ของฉัน แต่ฉันอยาก Git Bash เพิ่งได้รับ PATH จาก Windows ดังนั้นฉันไม่ต้องจำที่จะเพิ่มเส้นทางไปยังสองแห่ง สิ่งนี้จะสำเร็จได้อย่างไร …

3
ความแตกต่างระหว่าง $ {} และ $ () ในเชลล์สคริปต์
$ echo $(date) Thu Jul 2 16:33:11 SGT 2015 $ echo ${date} $ name=foo $ echo $(name) ksh: name: not found $ echo ${name} foo ดูเหมือนว่า $ {variable} จะเหมือนกับ $ variable ในขณะที่ $ () คือการดำเนินการคำสั่ง เหตุใดจึงใช้ $ {} จากนั้น
26 linux  ubuntu  shell  centos  script 

2
เชลล์สคริปต์สะท้อนบรรทัดใหม่ไปยังไฟล์
ฉันต้องการ echo บรรทัดใหม่ไปยังไฟล์ระหว่างตัวแปรในเชลล์สคริปต์ นี่คือรหัสของฉัน: var1 = "ฮัลโหล" var2 = "โลก!" logwrite = "$ var1 [ที่นี่ฉันต้องการแทรกบรรทัดใหม่] $ var2 echo "$ logwrite" >> /Users/username/Desktop/user.txt ตอนนี้เมื่อฉันเรียกใช้สคริปต์ของฉันไฟล์ user.txt แสดงสิ่งนี้: สวัสดีชาวโลก! ฉันต้องการให้มันแสดง: สวัสดี โลก! ฉันจะทำสิ่งนี้ได้อย่างไร ?? แก้ไข: นี่คือเปลือกสคริปต์ของฉัน: echo -n "ชื่อแรกของคุณคืออะไร" อ่านก่อน echo -n "นามสกุลของคุณคืออะไร" อ่านล่าสุด echo -n "ชื่อกลางของคุณคืออะไร" อ่านตรงกลาง echo -n "วันเกิดของคุณคืออะไร" อ่านวันเกิด echo …

1
ZSH สีที่สมบูรณ์และ OS X
พิจารณา. zshrc ขั้นต่ำนี้: export CLICOLOR=1; export LSCOLORS=exfxcxdxbxegedabagacad; # It is the default value on OSX, so this line can be omitted autoload -Uz compinit compinit zstyle ':completion:*' list-colors 'exfxcxdxbxegedabagacad' บน OS X, lsใช้สีถ้าCLICOLORถูกกำหนดเป็น TRUE และสีที่ใช้อยู่ในซึ่งเป็นค่าเริ่มต้นLSCOLORS exfxcxdxbxegedabagacad การทำlsพินัยกรรมจะพิมพ์ไดเรกทอรีเป็นสีน้ำเงิน แต่เมื่อทำเช่นcd + TABนั้น ZSH จะเสนอความสำเร็จกับไดเรกทอรีเป็นสีแดงและตัวหนา ปัญหาคืออะไรและฉันจะมีสีเดียวกันสำหรับการสำเร็จของ ZSH และlsอย่างไร
26 macos  shell  colors  zsh 

4
ทำไมขนาดของไดเรคทอรีถึง 4096 ไบต์เป็นยูนิกซ์เสมอ?
ฉันแน่ใจว่าไฟล์ไดเรกทอรีมีข้อมูลน้อยกว่า 4096 ไบต์ ฉันรู้ว่าขนาดเซกเตอร์คือ 4096 ไบต์ แต่ไฟล์ปกติมีขนาดเล็กกว่านั้น ทำไม Unix สำรอง 4096 bytes สำหรับแต่ละโฟลเดอร์?
26 linux  unix  shell 

1
ทำไม 'tmux' สร้างหน้าต่างใหม่เป็นเปลือกเข้าสู่ระบบโดยค่าเริ่มต้น?
เมื่อคุณเริ่มเซสชันใหม่ในtmuxหรือสร้างหน้าต่างใหม่ภายในเซสชันที่กำลังทำงานลักษณะการทำงานเริ่มต้นของมันคือการใช้เชลล์ (เช่น:) bashเป็นเชลล์ล็อกอิน ผมเข้าใจว่าเปลือกเข้าสู่ระบบมีจุดมุ่งหมายที่จะดำเนินการตามปกติของการกำหนดค่าและวิธีการที่มีความน่าสนใจเพียงเมื่อคุณมีการบันทึกในระบบ แต่ในกรณีส่วนใหญ่ (ยกเว้นว่าคุณสามารถใช้tmux เป็นเชลล์การเข้าสู่ระบบได้) ไม่ใช่ความตั้งใจที่แท้จริงของผู้ใช้ที่จะทำสิ่งนี้เมื่อเขาต้องการเปิดหน้าต่างใหม่ เหตุผลในการทำให้พฤติกรรมนี้เป็นค่าเริ่มต้นtmuxคืออะไร สิ่งเดียวที่เอกสารกล่าวเกี่ยวกับเรื่องนี้: default-command shell-command Set the command used for new windows (if not specified when the window is created) to shell-command, which may be any sh(1) command. The default is an empty string, which instructs tmux to create a login shell using …
26 shell  tmux 

3
วิธีอัปเดต bash บน Mac OS X Yosemite
เพียงแค่พยายามเรียนรู้การทุบตีสคริปต์เล็กน้อย รุ่นทุบตีเก่าของฉัน: Bash version 3.2.53(1)-release... ฉันได้อัปเดตทุบตีบน mac os x yosemite ด้วย homebrew: brew update brew install bash จากนั้นในคุณสมบัติขั้วฉันได้เปลี่ยนเส้นทางมาตรฐานเปลือกจาก/bin/bashไป/usr/local/bin/bash(ตามที่ผมเข้าใจนี่คือที่ homebrew ติดตั้งทุบตีปรับปรุง) จากนั้นฉันตรวจสอบผลลัพธ์อีกครั้ง (และดูเหมือนว่าจะดีทั้งหมด): $ echo $BASH_VERSION Bash version 4.0.33(0)-release... แต่เมื่อฉันพยายามเขียนสคริปต์ทุบตีง่าย: #!/bin/bash echo "Bash version ${BASH_VERSION}..." for i in {0..10..2} do echo "Welcome $i times" done ผลลัพธ์คือ: Bash version 3.2.53(1)-release... Welcome {0..10..2} …

4
ตรวจสอบจำนวนอัปเดตความปลอดภัยที่รอดำเนินการใน Ubuntu
ให้ฉันเริ่มต้นด้วยการบอกว่าฉันถูกห้ามไม่ให้เปิดใช้งานการอัปเดตอัตโนมัติบนเซิร์ฟเวอร์ Ubuntu ของเราสำหรับทั้งความปลอดภัยและแพ็คเกจปกติ เมื่อฉันเข้าสู่เซิร์ฟเวอร์ Ubuntu ใด ๆ ของฉันสี่ข้อความต้อนรับประกอบด้วย: 39 packages can be updated. 26 updates are security updates. อย่างไรก็ตามเมื่อฉันเรียกใช้ปลั๊กอิน Nagios ที่ตรวจสอบ APT ฉันจะได้รับ: % /usr/lib/nagios/plugins/check_apt APT WARNING: 33 packages available for upgrade (0 critical updates). ฉันจำเป็นต้องรู้วิธีการตรวจสอบอย่างถูกต้องว่ามีการปรับปรุงความปลอดภัยและการปรับปรุงปกติ เมื่อฉันทำได้ฉันวางแผนที่จะเขียนสคริปต์ Nagios ที่จะส่งคืนคำเตือนสำหรับการอัปเดตปกติที่รอดำเนินการและที่สำคัญยิ่งสำหรับการอัปเดตความปลอดภัยที่ค้างอยู่ ใครรู้วิธีตรวจจับสองเงื่อนไขนี้
25 linux  ubuntu  bash  shell  nagios 

4
วิธีการตั้งค่าขนาดขั้วในเปลือก adb Android?
เมื่อฉันเชื่อมต่อกับ Android โดยใช้ "adb shell" และเรียกใช้คำสั่งบางอย่างเช่น "vim" หรือ "mc" พวกเขาจะถูก จำกัด ให้ "หน้าต่าง" ของ 25x80 ตัวอักษร เนื่องจากฉันเชื่อมต่อจากคอมพิวเตอร์เดสก์ท็อปที่ xterm มีความละเอียดสูงกว่าฉันจึงต้องการใช้งาน ฉันจะปรับขนาดหน้าต่างคอนโซลนี้เป็น 60x156 ตัวอักษรได้อย่างไร
25 shell  android  console 

2
อะไรคือความแตกต่างระหว่าง / etc / environment และ / etc / profile?
ฉันเข้าใจว่าอดีตถูกโหลดก่อนหน้าหลัง แต่ความแตกต่างทางแนวคิดคืออะไร มีเหตุผลที่ดีที่ฉันควรตั้งค่าตัวแปรบางอย่างในหนึ่งและไม่ได้อยู่ในอื่น ๆ ? ยกเว้นข้อเท็จจริงที่/etc/environmentดูเหมือนว่ามีอยู่ในการตั้งค่าสภาพแวดล้อมสำหรับกระบวนการทั้งหมดที่ดำเนินการโดยระบบในขณะที่/etc/profileการตั้งค่าสภาพแวดล้อมที่ใช้และเผยแพร่จากเปลือกเข้าสู่ระบบถูกต้องหรือไม่ นอกจากนี้ในบันทึกด้านข้างซึ่งโปรแกรมแบบดั้งเดิมอ่าน/etc/environment? มันเกี่ยวข้องกับ POSIX หรือเพียงแค่การประชุมหรือไม่?

4
ฉันจะรับขนาด gzip ที่ไม่มีการบีบอัดได้อย่างไรโดยไม่ต้องแตกไฟล์จริง?
โปรดหารายละเอียดระบบปฏิบัติการของฉัน: $ uname -a AIX xxyy 1 6 000145364C00 ฉันได้ลองคำสั่งต่อไปนี้เพื่อให้ได้ขนาดของไฟล์ในไฟล์เก็บถาวร gzip: $ gzip -l mycontent.DAT.Gz compressed uncompr. ratio uncompressed_name -1223644243 1751372002 -75.3% mycontent.DAT.Gz ไม่แน่ใจว่าจะแปลขนาดที่บีบอัดไฟล์ได้อย่างไร ขนาดไฟล์บีบอัดใกล้ถึง 4 GB ดังนั้นฉันลองตัวเลือกนี้เพื่อจับข้อมูลที่ถูกต้อง: $ zcat mycontent.DAT.Gz | wc -c มันทำให้ฉันมีข้อผิดพลาดนี้: mycontent.DAT.Gz.Z:A file or directory in the path name does not exist. 0 คุณช่วยบอกวิธีการจับภาพค่านี้จากเชลล์สคริปต์ได้โดยไม่ต้องคลายการบีบอัดไฟล์ซอร์ส?
25 unix  shell  gzip  gz 

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