Unix & Linux

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

1
ฉันควรพึ่งพาลีนุกซ์รุ่นใดที่มี / etc / os-release อยู่?
ฉันกำลังพยายามหาวิธีในการกำหนดชื่อและรุ่นการแจกจ่าย Linux ที่สามารถทำงานได้กับการกระจายแบบทันสมัยส่วนใหญ่ ฉันสังเกตเห็นว่า/etc/os-releaseมีข้อมูลที่ฉันต้องการในดิสทริบิวชันที่ฉันลองใช้ (CentOS, Debian) แต่มันปลอดภัยแค่ไหนที่จะพึ่งพาการปรากฏตัวของมัน คำสั่งเช่นuname -aไม่มีข้อมูลเดียวกันจริง ๆ และlsb_releaseดูเหมือนจะไม่ปรากฏบนเช่น CentOS ขั้นต่ำ มีวิธีที่รวดเร็วในการค้นหาสิ่งที่ distros มาพร้อมกับ/etc/os-release? นอกจากนี้ยังมีการ/etc/os-releaseรับประกันว่าจะมีNAME, VERSIONและPRETTY_NAMEเขต?

2
หยุดการติดตามการดำเนินการ bash (set -x) จากด้านนอกของสคริปต์
ฉันพยายามหาคำตอบสำหรับคำถามนี้ แต่ก็ยังไม่มีโชค: ฉันมีสคริปต์ที่รันสคริปต์อื่น ๆ และสคริปต์อื่น ๆ เหล่านั้นมี "set -x" ในตัวพวกเขาซึ่งทำให้พวกเขาพิมพ์ทุกคำสั่งที่เรียกใช้ ฉันต้องการกำจัดสิ่งนั้น แต่เก็บข้อมูลไว้หากสคริปต์ใดส่งข้อความข้อผิดพลาดไปยัง stderr ดังนั้นฉันจึงไม่สามารถเขียน ./script 2>/dev/null นอกจากนี้ฉันไม่มีสิทธิ์ในการแก้ไขสคริปต์อื่น ๆ เหล่านั้นดังนั้นฉันจึงไม่สามารถเปลี่ยนตัวเลือกชุดได้ด้วยตนเอง ฉันกำลังคิดเกี่ยวกับการบันทึกทุกอย่างตั้งแต่ stderr ไปยังไฟล์แยกต่างหากและกรองคำสั่งการติดตาม แต่อาจจะมีวิธีที่ง่ายกว่านี้?
17 bash  shell  set 

1
ls -l vs ls -lL
ฉันรู้ว่าสิ่งนี้ดูเหมือนซ้ำซ้อน แต่คำถามที่ถามไปก่อนหน้านี้ไม่ตอบคำถามของฉัน ดังนั้นในเชลล์ฉันไปที่/homeไดเรกทอรีและสร้างไดเรกทอรีมีเรียกมันplay จากนั้นฉันไปที่ไดเรกทอรีนี้/home/playและสร้างไฟล์สองไฟล์อันแรกคือไฟล์ข้อความที่สองคือลิงก์สัญลักษณ์ไปยังเทอร์มินัลที่เรียกว่าtty ตอนนี้ถ้าฉันใช้ls -lฉันจะได้รับผลลัพธ์ต่อไปนี้ ฉันจะเอาls -lLมันไปที่ไหน ความแตกต่างนี้ควรจะหมายถึงอะไร? เครื่องหมายคำถามหมายถึงอะไร

1
วิธีสร้างที่เก็บคีย์และ truststore โดยใช้ใบรับรองที่ลงนามเอง?
เรามีเซิร์ฟเวอร์ JAVA และไคลเอ็นต์สื่อสารผ่านเครือข่ายโดยใช้ SSL เซิร์ฟเวอร์และไคลเอนต์รับรองความถูกต้องซึ่งกันและกันโดยใช้ใบรับรอง ชนิดที่เก็บคีย์ที่ใช้โดยเซิร์ฟเวอร์และไคลเอ็นต์คือ JKS เซิร์ฟเวอร์และไคลเอ็นต์โหลดไฟล์ที่เก็บคีย์และ truststore ของพวกเขา ชื่อไฟล์ keystore และ truststore คือ: server.keystore, server.truststore, client.keystore และ client.truststore ฉันใช้ใบรับรองแบบลงนามด้วยตนเองเพื่อการทดสอบเท่านั้น คำถาม: ไตรมาสที่ 1 ฉันต้องการทราบว่าทำไมฉันต้องเพิ่มใบรับรองของเซิร์ฟเวอร์และลูกค้าของตัวเองลงในร้านค้าที่เชื่อถือได้ในขั้นตอนที่ 6 ไตรมาสที่ 2 ฉันสามารถลดจำนวนขั้นตอนเพื่อให้ได้สิ่งเดียวกันได้หรือไม่? ถ้าใช่แล้วได้อย่างไร ขั้นตอนในการสร้างคีย์ RSA ใบรับรองที่ลงนามเองที่เก็บคีย์และ truststore สำหรับเซิร์ฟเวอร์ สร้างคีย์ RSA ส่วนตัว openssl genrsa -out diagserverCA.key 2048 สร้างใบรับรอง x509 openssl req -x509 -new -nodes …
17 openssl  ssl 

2
เหตุใดการส่งออกตัวแปรใน ssh shell จึงพิมพ์รายการตัวแปรที่ส่งออก
พิจารณาสิ่งนี้: $ ssh localhost bash -c 'export foo=bar' terdon@localhost's password: declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" declare -x HOME="/home/terdon" declare -x LOGNAME="terdon" declare -x MAIL="/var/spool/mail/terdon" declare -x OLDPWD declare -x PATH="/usr/bin:/bin:/usr/sbin:/sbin" declare -x PWD="/home/terdon" declare -x SHELL="/bin/bash" declare -x SHLVL="2" declare -x SSH_CLIENT="::1 55858 22" declare -x SSH_CONNECTION="::1 55858 ::1 22" declare -x …
17 bash  ssh 


1
ทำให้ Linux เขียนไปยังระบบไฟล์เครือข่ายพร้อมกันกับการอ่านดิสก์ในเครื่อง
สรุป คุณจะกำหนดค่า Linux ให้อ่านจากดิสก์ / ระบบโลคัลและเขียนไปยังเครือข่ายร่วมกันในเวลาเดียวกันได้อย่างไรเมื่อเทียบกับการอ่านในขณะที่ไม่มีข้อมูลผ่านเครือข่ายจากนั้นส่งข้อมูลผ่านเครือข่ายในขณะที่โลคัลดิสก์ ว่าง? มันเร็วกว่ามากในการอ่านและเขียนในเวลาเดียวกันแทนที่จะทำการแสดงเพียงครั้งเดียวจากนั้นทำการอีกครั้งในลักษณะสลับกัน รายละเอียด ฉันกำลังย้ายข้อมูลจำนวนมากจากดิสก์ภายในเครื่องบน Linux ไปยังอุปกรณ์ NAS ฉันใช้rsyncพื้นคัดลอก/srv/dataลงใน/mnt/nasซึ่งเป็น CIFS ติด มันเริ่มต้นได้ดีอ่านได้ที่ 100MB / วินาทีและเขียนถึง NAS ที่ 100MB / วินาที (จำกัด เครือข่ายกิกะบิต) ด้วยการอ่านและเขียนที่เกิดขึ้นพร้อมกัน อย่างไรก็ตามตอนนี้ไม่กี่ชั่วโมงต่อมาฉันพบว่ามันกำลังอ่านจากดิสก์ภายในเครื่องแล้วหยุดอ่านในขณะที่เขียนไปยัง NAS จากนั้นเมื่อไม่มีข้อมูลเพิ่มเติมที่จะเขียนไปยัง NAS มันจะอ่านต่อจากดิสก์ อีกครั้ง เครือข่ายไม่ได้ใช้งานในขณะที่กำลังอ่านดิสก์และดิสก์ไม่ได้ใช้งานในขณะที่เครือข่ายใช้งานอยู่ จำเป็นต้องพูดการอ่าน 200MB จากนั้นการเขียน 200MB จะใช้เวลานานกว่าการอ่านและการเขียน 200MB ในเวลาเดียวกัน ฉันจะกำหนดค่าเคอร์เนลเพื่อให้พฤติกรรมการอ่านและการเขียนก่อนหน้านี้ในเวลาเดียวกันได้มากกว่าที่จะสลับระหว่างการอ่านแล้วการเขียนการดำเนินการเพียงครั้งเดียว? ข้อสังเกตบางอย่าง: เมื่อดิสก์ภายในเครื่องอ่านที่ 100 + MB / วินาทีทุกอย่างดูเหมือนว่าจะเกิดขึ้นในแนวขนานได้ …
17 linux  io  cache  cifs 

1
ความสมบูรณ์ของแท็บ Zsh ไม่ทำงานตามที่ต้องการสำหรับเส้นทางบางส่วน
zshฉันต้องการกรณีตายเสร็จสิ้นเลือนสำหรับไฟล์และไดเรกทอรีใน หลังจากอ่านคู่มือสองสามชั่วโมงนี่คือสิ่งที่ฉันคิด: zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' นอกจากนี้ฉันต้องการกดTABหนึ่งครั้งเพื่อแสดงความสำเร็จที่เป็นไปได้เพียงปรับเปลี่ยนสิ่งที่ฉันได้พิมพ์หากมีความสมบูรณ์เพียงอย่างเดียว จากนั้นการกดTABครั้งที่สองควรทำให้ฉันเข้าสู่โหมด "เสร็จสิ้นเมนู" จากคู่มือฉันพบสิ่งนี้: zstyle ':completion:*' menu select ตอนนี้ทุกอย่างทำงานได้ตามที่ควรยกเว้นในกรณีเดียว ฉันมีสองโฟลเดอร์Desktopและ.rstudio-desktopในโฮมไดเร็กตอรี่ของฉัน ตั้งแต่ฉันมีsetopt globdotsฉันคาดว่าจะพิมพ์ต่อไปนี้: $ cd ~/dktop<TAB> ที่จะออกคำสั่งของฉันเป็นเข้ามาและแสดงเป็นผู้สมัครเสร็จสิ้นและDesktop .rstudio-desktopแต่มันจะลบ dktopทิ้งฉันด้วยสิ่งต่อไปนี้: $ cd ~/ ฉันดูคู่มือที่เกี่ยวข้องทั้งหมดคำแนะนำคำถามการแลกเปลี่ยนกองและแหล่งข้อมูลอื่น ๆ แต่สิ่งที่ฉันทำฉันไม่สามารถทำงานนี้ได้ ที่น่าสนใจคือถ้าฉันอยู่ในโฮมไดเร็กตอรี่แล้วพิมพ์ต่อไปนี้ทุกอย่างจะทำงานได้ตามที่คาดไว้: $ cd dktop<TAB> นั่นคือเป็นเพียงปัญหาของเซกเมนต์ของเส้นทางที่ไม่นำหน้า (และคุณสามารถเห็นได้C-x hว่าสิ่งนี้สอดคล้องกับdirectoriesแท็กมากกว่าที่local-directoriesจะใช้แท็ก) เพื่อให้สามารถทำซ้ำได้ง่ายนี่คือสิ่ง~/.zshrcที่จะสร้างสถานการณ์และพฤติกรรมที่อธิบายไว้ข้างต้น (ทดสอบบนเครื่องเสมือน …
17 zsh  autocomplete 

4
เป็นไปได้ไหมที่จะแบ่งปันไฟล์ระหว่าง 2 ระบบปฏิบัติการที่แตกต่างกันบนคอมพิวเตอร์เครื่องเดียวกัน?
พีซีของฉันคือบูทคู่ ฉันมี Red Hat Enterprise Linux 5 พร้อมติดตั้ง Windows 7 Ultimate มีไฟล์ทั่วไปบางอย่างที่ฉันต้องการทั้งระบบปฏิบัติการ ตอนนี้ฉันเข้าถึงและจัดการไฟล์เหล่านี้ผ่านอุปกรณ์จัดเก็บข้อมูลรอง (USB หรือ DVD RW) ที่เชื่อมต่อกับระบบของฉัน เป็นไปได้หรือไม่ที่จะสร้างโฟลเดอร์ / ไดเรกทอรีทั่วไปที่สามารถเข้าถึงได้ทั้ง Linux และ Windows OS สามารถจัดการไฟล์ภายใต้โฟลเดอร์ / ไดเรกทอรีเช่นนี้ผ่านทั้งระบบปฏิบัติการ อย่างไร?

1
ควรใช้ grep, less, awk, sed เมื่อไหร่
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันเข้าสู่โลกของ Linux และที่ทำงานฉันใช้grepมากขึ้นเรื่อย ๆ ด้วยการทำเช่นนั้นฉันก็พบว่าบางครั้งมันก็ไม่เพียงพอสำหรับสิ่งที่ฉันต้องการ ฉันกำลังต่อสู้กับไม่กี่วันที่ผ่านมาและเพื่อนร่วมงานของฉันที่เป็นลินุกซ์ผู้ดูแลระบบอาวุโสบอกให้ผมใช้grep awkฉันตกตะลึงด้วยความเร็วที่ฉันได้รับ ดังนั้นคำถามของฉันคือเมื่อไหร่ที่คุณเลือกที่จะใช้อีกอันหนึ่ง? คำถามอะไรที่ฉันสามารถถามตัวเองก่อนที่จะทำงานด้วยgrepและใช้เวลามากเมื่อฉันสามารถทำได้ด้วยawkและประหยัดเวลา?
17 awk  sed  grep  less 

1
วิธียกเลิกการเชื่อมต่อ TCP ที่สร้างโดย bash เอง?
ฉันเคยexec 3<>/dev/tcp/192.168.0.101/6435สร้างการเชื่อมต่อ TCP กับ 192.168.0.101:6435 และฉันได้รับรวมทั้งส่งข้อความสองสามข้อความด้วยpipeคำคำสั่ง ตอนนี้ฉันต้องการยกเลิกการเชื่อมต่อ TCP แต่ด้วยss -anpetฉันสามารถเห็นว่าทุบตีตัวเองถือการเชื่อมต่อนี้โดยไม่ต้องแยกกระบวนการเด็ก ฉันพยายามส่งสัญญาณ 9 และ 15 ไปยังกระบวนการทุบตี แต่อย่างที่ทราบกันว่าทุบตีไม่สามารถฆ่าตัวตายได้ ดังนั้นฉันสามารถยุติการเชื่อมต่อ TCP ที่ฉันสร้างขึ้นได้โดยไม่ยกเลิก pts ที่ฉันกำลังใช้ (ไม่ฆ่าด้วย root หรือส่ง Ctrl + D)?

2
วิธีการหลีกเลี่ยงพื้นที่หลังจากตัวแปร bash ในสตริง?
ฉันมีตัวแปรสำหรับสี ฉันใช้มันเพื่อตั้งค่าสีเป็นสตริงโดยการประเมินมันภายในสตริง อย่างไรก็ตามฉันต้องรวมช่องว่างหลังชื่อ (เพื่อให้ชื่อไม่มีส่วนของข้อความ) บางครั้งมันก็ดูไม่ดี ฉันจะหลีกเลี่ยงการใช้ (การพิมพ์) พื้นที่นี้ได้อย่างไร ตัวอย่าง (สมมติว่าอย่างนั้นRed=1และNC=2): echo -e "$Red Note: blabla$NC". เอาท์พุท: 1 Note: blabla2. ผลลัพธ์ที่คาดหวัง: 1Note: blabla2.

1
วิธีการย้ายไฟล์จากระบบไฟล์ zfs หนึ่งระบบไปยังระบบไฟล์ zfs อื่นในพูลเดียวกัน
ฉันมีสองระบบไฟล์ในสระว่ายน้ำ ZFS เดียวกันและ/mnt/fs_a /mnt/fs_bฉันต้องการที่จะย้ายเกี่ยวกับ 1TB ข้อมูลจากการfs_a fs_bแต่เมื่อฉัน: mv /mnt/fs_a/mythtv_recordings /mnt/fs_b/ ฉันประหลาดใจที่มันเริ่มคัดลอกไฟล์ block-by-block เมื่อเวลาที่ใช้ในการย้ายไฟล์ 2GB ดูเหมือนว่าการดำเนินการนี้จะใช้เวลาหลายวันกว่าจะทำให้เสร็จ จะต้องมีวิธีที่ชาญฉลาดและเร็วกว่านี้มากใช่ไหม?
17 zfs 

7
จะประมวลผลไฟล์ข้อความแบบหลายคอลัมน์เพื่อรับไฟล์ข้อความแบบหลายคอลัมน์ได้อย่างไร
ฉันมีไฟล์ข้อความ: a aa aaa b bb bbb c cc ccc d dd ddd e ee eee f ff fff g gg ggg h hh hhh i ii iii j jj jjj ฉันจะประมวลผลและรับไฟล์คอลัมน์ 2 แบบนี้ได้อย่างไร: a aa aaa b bb bbb c cc ccc d dd ddd e ee eee f …

3
โปรแกรมจะตัดสินใจได้อย่างไรว่าจะให้สีออกมาหรือไม่?
เมื่อฉันรันคำสั่งจากเทอร์มินัลที่พิมพ์เอาต์พุตสี (เช่นlsหรือgcc) เอาต์พุตสีจะถูกพิมพ์ จากความเข้าใจของฉันกระบวนการกำลังส่งออกรหัสหลบหนี ANSIและเทอร์มินัลจะจัดรูปแบบสี อย่างไรก็ตามถ้าฉันรันคำสั่งเดียวกันโดยกระบวนการอื่น (พูดแอปพลิเคชัน C แบบกำหนดเอง) และเปลี่ยนเส้นทางเอาต์พุตไปยังเอาต์พุตของแอปพลิเคชันสีเหล่านี้จะไม่คงอยู่ โปรแกรมตัดสินใจอย่างไรว่าจะแสดงข้อความที่มีรูปแบบสีหรือไม่ มีตัวแปรสภาพแวดล้อมบ้างไหม?

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