Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

3
โปรแกรมรันจากเซสชัน ssh ขึ้นอยู่กับการเชื่อมต่อหรือไม่?
โปรแกรมที่รันจากเซสชัน ssh นั้นขึ้นอยู่กับการเชื่อมต่อกับลูกค้าหรือไม่? ตัวอย่างเช่นเมื่อการเชื่อมต่อช้าจริงๆ ดังนั้นมันจะรอจนกว่าสิ่งที่พิมพ์บนหน้าจอหรือไม่ และถ้ามันขึ้นอยู่กับการเชื่อมต่อมันจะเกิดขึ้นกับหน้าจอหรือbyobuเช่นกัน? เนื่องจากโปรแกรมเหล่านี้ยังคงทำงานอยู่แม้จะถูกตัดการเชื่อมต่อจากโฮสต์ หมายเหตุ: ฉันพบคำถามที่เกี่ยวข้องเหล่านี้เท่านั้น: การยกเลิกการเชื่อมต่อชั่วคราวของเซสชัน ssh ส่งผลกระทบต่อโปรแกรมที่ทำงานอยู่หรือไม่? เกิดอะไรขึ้นกับเซสชันของหน้าจอผ่าน ssh เมื่อการเชื่อมต่อขาดหายไป
29 ssh  tty  job-control 

1
เหตุใด Plan 9 จึงใช้“ snarf” แทน“ copy”
เมื่อคุณดูงานนำเสนอเกี่ยวกับ Plan 9 และacmeบรรณาธิการคุณอาจสังเกตเห็นว่าชื่อของสำเนาเป็นsnarf (ฉันไม่สามารถหาคำอธิบายที่มีความหมายได้อย่างน่าเสียดาย) ทำไมถึงเป็นเช่นนั้น มีเหตุผลสำหรับสิ่งนั้นหรือไม่? ทำเพื่อสร้างชื่อเฉพาะสำหรับฟังก์ชั่นนี้เนื่องจากการคัดลอกอาจไม่ใช่ชื่อที่ดีที่สุด? อ้างอิง: Wikipedia (ลิงก์) : Snarf คำที่ใช้สำหรับการดำเนินการ "คัดลอก" ในระบบการทำบานหน้าต่าง Blit และ Plan 9 cat-v.org (ลิงก์) : มีเมนูอื่นให้ใช้ในการคลิกกลาง Cut and Paste เป็นคำอธิบายที่ค่อนข้างชัดเจนและ Snarf เป็นเพียงคำศัพท์ Plan 9 สำหรับการคัดลอก 9 รายชื่อผู้รับจดหมาย (ลิงก์) : การใช้ acme ทั้ง / ทั้งสองภายใต้ Plan 9 และ / หรือ Mac OS X …

5
เหตุใดสีของ Vim จึงดูแตกต่างกันทั้งภายในและภายนอก tmux?
สิ่งแวดล้อม: Fedora 25 (4.9.12-200.fc25.x86_64) เทอร์มินัล GNOME 3.22.1 ใช้ VTE เวอร์ชัน 0.46.1 + GNUTLS VIM - Vi IMproved 8.0 (2016 Sep 12, รวบรวม 22 Feb 2017 16:26:11) tmux 2.2 ฉันเพิ่งเริ่มใช้ tmux และสังเกตว่าสีของ Vim นั้นเปลี่ยนไปตามว่าฉันกำลังวิ่งอยู่ข้างในหรือข้างนอก tmux ด้านล่างเป็นสกรีนช็อตของ Vim ข้างนอก (ซ้าย) และภายใน (ขวา) ของ tmux ขณะดู Git diff: TERMตัวแปรของฉันคือ ภายนอก tmux: xterm-256color ภายใน …
29 terminal  vim  tmux  colors 

4
ความหมายของ“ _ =” คืออะไร?
หลังจากที่ฉันเรียกใช้set -a var=99ฉันสามารถค้นหาประโยคในผลลัพธ์ของset: ... TERM=xterm UID=0 USER=root VIRTUAL_ENV_DISABLE_PROMPT=1 _=var=99 colors=/etc/DIR_COLORS ... ใครช่วยบอกฉันได้ว่า "_ =" หมายถึงอะไร ฉันทราบว่าecho $varจะไม่ให้อะไรเลย ถ้าฉันเรียกใช้set -aแล้วsetจะไม่รวมตัวแปรนี้อีก เกิดอะไรขึ้น?

2
วิธีสร้างไดรฟ์ Debian USB ที่สามารถบู๊ตได้โดยใช้ Windows
ฉันใช้ Windows 10 และเริ่มเรียนรู้วิธีการบูตจากอุปกรณ์ USB ฉันมีไดรฟ์ 16GB USB (USB 3.0) และฉันต้องการทำสิ่งต่อไปนี้: ทำให้ไดรฟ์ USB 16GB ใช้งาน Debian Linux เก็บ Windows 10 ไว้ในไดรฟ์ C: ไม่แบ่งพาร์ติชันฮาร์ดดิสก์ของฉันหรือตั้งค่าการบูตแบบคู่ เรียกใช้ระบบปฏิบัติการจากไดรฟ์ USB ของฉัน ปล่อยให้ไฟล์และโปรแกรมทั้งหมดของฉันถูกบันทึกลงใน USB (ดังนั้นฉันไม่คิดว่าระบบปฏิบัติการสดจะเหมาะสม) มันควรจะทำงานราวกับว่ามันเป็นระบบบู๊ตคู่เช่นเดียวกับวิธีการบันทึกไฟล์ ทำให้ทำงานบนคอมพิวเตอร์ทุกเครื่องที่เสียบเข้ากับ (สมมติว่า BIOS เข้ากันได้) ฉันรู้วิธีบูตจาก USB ใน BIOS ของฉันแล้ว แต่ฉันไม่แน่ใจว่าจะรับไฟล์ ISO ได้อย่างไรและติดตั้งอย่างไรกับ USB

4
จะยกเลิกการลิงก์ (ลบ) ฮาร์ดลิงก์พิเศษ“.” ที่สร้างขึ้นสำหรับโฟลเดอร์ได้อย่างไร?
บน Linux เมื่อคุณสร้างโฟลเดอร์มันจะสร้างฮาร์ดลิงก์สองลิงก์ไปยังไอโหนดที่เกี่ยวข้องโดยอัตโนมัติ หนึ่งในนั้นคือโฟลเดอร์ที่คุณขอให้สร้างอีกอันเป็น.โฟลเดอร์พิเศษที่โฟลเดอร์นี้ ตัวอย่าง: $ mkdir folder $ ls -li total 0 124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder $ ls -lai folder total 0 124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 . 124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 .. อย่างที่คุณเห็นทั้งด้านในfolderและ.ด้านในfolderมีหมายเลขไอโหนดเดียวกัน …

2
#: 3 หมายถึงอะไรในคำสั่งเชลล์
คู่มือการติดตั้งสำหรับ ack แนะนำให้ติดตั้งสคริปต์ ack โดยใช้คำสั่งนี้: curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3 ฉันคิดว่า!#:3ท้ายที่สุดก็คือการอ้างอิงย้อนกลับบางอย่าง แต่มันหมายถึงอะไร? มีเทียบเท่าใน zsh หรือไม่ Google ไม่ได้มีประโยชน์

1
ฉันจะแสดง URL ทั้งหมดในห่วงโซ่การเปลี่ยนเส้นทางได้อย่างไร
ฉันกำลังมองหาวิธีที่จะแสดง URL ทั้งหมดในห่วงโซ่การเปลี่ยนเส้นทางโดยเฉพาะอย่างยิ่งจากเปลือก ฉันพบวิธีที่จะทำเช่นนั้นด้วย curl แต่มันจะแสดงเฉพาะ URL แรกและ URL สุดท้าย ฉันต้องการเห็นพวกเขาทั้งหมด จะต้องมีวิธีในการทำสิ่งนี้อย่างง่าย ๆ แต่ฉันไม่สามารถหาชีวิตของมันได้ แก้ไข: ตั้งแต่ส่งสิ่งนี้ฉันได้ค้นพบวิธีการใช้ Chrome (CTRL + SHIFT + I-> แท็บเครือข่าย) แต่ฉันยังอยากรู้ว่ามันสามารถทำได้จากบรรทัดคำสั่ง Linux
29 wget  curl 

8
มีบางอย่างผิดปกติกับสคริปต์ของฉันหรือ Bash นั้นช้ากว่า Python มาก?
ฉันกำลังทดสอบความเร็วของ Bash และ Python โดยใช้การวนซ้ำ 1 พันล้านครั้ง $ cat python.py #!/bin/python # python v3.5 i=0; while i<=1000000000: i=i+1; รหัสทุบตี: $ cat bash2.sh #!/bin/bash # bash v4.3 i=0 while [[ $i -le 1000000000 ]] do let i++ done การใช้timeคำสั่งฉันพบว่ารหัส Python ใช้เวลาเพียง 48 วินาทีในการทำให้เสร็จในขณะที่รหัส Bash ใช้เวลานานกว่า 1 ชั่วโมงก่อนที่ฉันจะฆ่าสคริปต์ ทำไมเป็นเช่นนี้ ฉันคาดว่า Bash จะเร็วขึ้น …
29 bash  python3 

5
วิธีการติดตั้ง NodeJS ล่าสุดบน Debian Jessie
ฉันเพิ่งติดตั้ง NodeJS & NPM บน Debian Jessie โดยใช้วิธีที่แนะนำ: apt-get install curl curl -sL https://deb.nodesource.com/setup | bash - apt-get install -y nodejs อย่างไรก็ตามเป็นรุ่นเก่า (โหนด v0.10.38 & npm 1.4.28) คำแนะนำใด ๆ เกี่ยวกับวิธีที่ง่ายที่สุดในการติดตั้งเวอร์ชั่นใหม่เช่นโหนดปัจจุบันคือ v0.12.4 และ npm เป็น 2.7.4? การติดตั้งจากซอร์สโค้ดเป็นวิธีการเดียวของฉันหรือไม่?
29 debian  node.js 

1
เหตุใดการแทนที่กระบวนการ BASH จึงไม่ทำงานกับคำสั่งบางอย่าง
ในบางโอกาสการทดแทนกระบวนการจะไม่ทำงานตามที่คาดไว้ นี่คือตัวอย่าง: การป้อนข้อมูล: gcc <(echo 'int main(){return 0;}') เอาท์พุท: /dev/fd/63: file not recognized: Illegal seek collect2: error: ld returned 1 exit status การป้อนข้อมูล: แต่มันทำงานได้อย่างที่คาดไว้เมื่อใช้กับคำสั่งอื่น: grep main <(echo 'int main(){return 0;}') เอาท์พุท: int main(){return 0;} ฉันได้สังเกตเห็นความล้มเหลวที่คล้ายกันกับคำสั่งอื่น ๆ (เช่นคำสั่งคาดหวังว่าไฟล์จากการทดแทนกระบวนการไม่สามารถใช้/dev/fd/63หรือคล้ายกัน) ความล้มเหลวด้วยgccนี้เป็นเพียงล่าสุด มีกฎทั่วไปบางอย่างที่ฉันควรทราบเพื่อกำหนดว่าเมื่อใดการทดแทนกระบวนการจะล้มเหลวด้วยวิธีนี้และไม่ควรใช้? ฉันใช้ BASH รุ่นนี้บน Ubuntu 12.04 (ฉันเคยเห็นใน arch และ debian): GNU bash, …

3
เปลี่ยนเป็นพาเรนต์เชลล์โดยไม่ต้องออกจากระบบ
สมมติว่าฉันเริ่มต้นในบัญชีท้องถิ่นของฉัน: avindra@host:~> จากนั้นฉันเปลี่ยนเป็นรูท: host:~ # จากนั้นฉันสลับไปที่ oracle: [ oracle@host:~] มีวิธีให้ฉันย้อนกลับไปที่รูทเชลล์ (พาเรนต์) โดยไม่ต้องออกจาก oracle shell หรือไม่? มันจะสะดวกในกรณีนี้เพราะบัญชี oracle ไม่มีสิทธิ์ sudo ตัวอย่างเช่นฉันอยู่ใน / some / จริงๆ / deep / nested / directory ใน oracle และฉันมีการตั้งค่าตัวแปรสภาพแวดล้อมพิเศษทุกชนิด แต่ฉันต้องกลับไปที่รูทเพื่อสัมผัสไฟล์ระบบ ขณะนี้ฉันจะเลื่อนออกจาก oracle shell เพื่อกลับไปรูทรันคำสั่งรูทของฉันจากนั้นเปลี่ยนกลับเป็น Oracle ความไม่สะดวกคือฉันเข้าสู่ระบบตั้งแต่เริ่มต้นใหม่และสูญเสียไดเรกทอรีการทำงานและสภาพแวดล้อม ที่ถูกกล่าวว่ามีวิธีที่จะทำสิ่งที่ฉันถาม?
29 shell 

6
ระบบไฟล์เทียบกับพาร์ทิชันเทียบกับไดเรกทอรี
ฉันยังใหม่กับ Linux ดังนั้นโปรดให้อภัยฉันหากคุณสับสนในคำถามนี้ จากสิ่งที่ฉันเข้าใจระบบไฟล์จะระบุวิธีที่พาร์ทิชันจัดเก็บ / จัดการไฟล์ด้วยมาตรฐานเช่น ext2, ext3, reiserfs, xfs เป็นต้นบางครั้งฉันก็เห็นคนดูเหมือนจะอ้างถึงแต่ละ " directory" เป็น /boot filesystem /usr/bin filesystem /root filesystem /bin filesystem ทำไมเราถึงอ้างถึงสิ่งเหล่านี้เป็นfilesystems? ถ้าแต่ละของพวกเขาเป็นพาร์ทิชัน, สับสนว่าผมเพราะเท่าที่ผมรู้/usrและ/usr/binมีแนวโน้มที่จะอยู่ในพาร์ทิชันเดียวกัน แต่ผมเห็นคนหมายถึงทั้งและ/usr filesystem/usr/bin filesystem หากfilesystemที่นี่เทียบเท่ากับ Window directoryก็ไม่ชัดเจนสำหรับฉันเพราะเห็นได้ชัดว่าระบบไฟล์เป็นอะไรมากกว่าแค่ไดเรกทอรี นอกจากนี้เท่าที่ฉันรู้ Linux ไม่มีdirectoryแนวคิด; ทั้งหมดเป็นไฟล์

3
วิธีการอ่าน dmesg จากเซสชั่นก่อนหน้า? (dmesg.0)
dmesg /var/log/dmesgเป็นคำสั่งในการอ่านเนื้อหาจาก สิ่งที่ดีเมื่อเทียบกับless /var/log/dmesgคือฉันสามารถใช้แฟล็ก -T สำหรับเอาต์พุตเวลาที่มนุษย์อ่านได้ ตอนนี้ฉันอยากจะดู/var/log/dmesg.0เพื่อดูว่าคอมพิวเตอร์ของฉันผิดพลาด ไฟล์มีบันทึกจากเซสชันก่อนหน้า แต่ฉันต้องการใช้แฟล็ก -T จากคำสั่ง dmesg หรือสิ่งที่เทียบเท่า ความคิดใด ๆ ได้อย่างไร ฉันไม่รังเกียจเครื่องมือกราฟิก แต่สิ่งที่ดีที่สุดคือโซลูชัน cli
29 dmesg 

5
วิธีการใส่อักขระพิเศษบรรทัดใหม่ลงในไฟล์โดยใช้คำสั่ง echo และโอเปอเรเตอร์การเปลี่ยนเส้นทาง
ฉันต้องการสร้างไฟล์โดยใช้คำสั่ง echo และโอเปอเรเตอร์การเปลี่ยนเส้นทางไฟล์ควรสร้างขึ้นมาไม่กี่บรรทัด ฉันพยายามใส่ newline ด้วย "\ n" ในสตริง: echo "first line\nsecond line\nthirdline\n" > foo แต่ด้วยวิธีนี้จะไม่มีการสร้างไฟล์ที่มีสามบรรทัด แต่เป็นไฟล์ที่มีเพียงหนึ่งบรรทัดและเนื้อหาคำต่อคำของสตริง ฉันจะสร้างโดยใช้คำสั่งนี้เฉพาะไฟล์ที่มีหลายบรรทัดได้อย่างไร?

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