Unix & Linux

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

3
วิธีการพอร์ตไปยังสไตล์ทุบตีเพื่อเถ้า?
ashบางเวลาที่ผ่านมาฉันได้เขียนสคริปต์ทุบตีซึ่งขณะนี้ควรจะสามารถที่จะทำงานในสภาพแวดล้อมที่มี ในbashมันเป็นเหมือน: services=( "service1.service" "service2.service" "service3.service" ) for service in "${services[@]}" do START $service done START() { echo "Starting "$1 systemctl start $1 } ในความเป็นจริงมีบริการอยู่ 40 รายการและฉันต้องการทำให้การเปลี่ยนแปลงนี้ไม่เจ็บปวดและสะอาดเท่าที่จะเป็นไปได้ มีการใช้bashisms เสมอ ตอนนี้ฉันกำลังเหน็บแนมกับงานเพื่อให้สคริปต์พกพาได้มากขึ้น สำหรับเหตุผลในการพกพาอาจเป็นเรื่องดีที่จะมีashโซลูชันที่บริสุทธิ์ แต่เนื่องจากฉันมีความแข็งแกร่งbusyboxในการจัดการของฉันฉันอาจเสียสละบางพกพา เฉพาะในกรณีที่ความสามารถในการอ่านดีขึ้นมากเนื่องจากสคริปต์ "clean" เป็นเมตริกเช่นกัน ในกรณีนี้โซลูชันแบบพกพาและสะอาดจะเป็นอย่างไร
13 bash  shell  array  ash 

3
การติดตั้งด้วงล้มเหลว
ฉันมีดีทำงานติดตั้ง Debian เจสซี apt-get update && apt-get upgrade && apt-get dist-upgradeแต่แล้วฉันวิ่ง และหลังจากรีบูตเครื่องก็มาที่ BIOS โดยตรง ฉันรู้ว่า Grub หายไปดังนั้นฉันจึงเรียกใช้ cd สดและเข้าใช้Rescue modeเมาท์พาร์ติชันรูทของฉัน + พาร์ติชันสำหรับบูตและเรียกใช้คำสั่งเหล่านี้: Grub ค้นหาภาพ linux: root@debian:~# update-grub Generating grub configuration file ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-4.9.0-3-amd64 Found initrd image: /boot/initrd.img-4.9.0-3-amd64 Found linux image: /boot/vmlinuz-4.9.0-0.bpo.3-amd64 Found initrd …
13 debian  boot  grub2  uefi 

2
ด้วย yum คุณจะลบแพ็คเกจออกได้อย่างไร
วันนี้ถ้าฉันทำ$ yum remove packageAฉันได้รับการต้อนรับด้วย: Removing: packageA noarch 3.5.1.b37-15 @yumFS 293 k Removing for dependencies: packageB noarch 3.5.1.b125-7 @yumFS 87 M .. Is this ok? ฉันต้องการลบ packageA โดยไม่ลบ packageB (ฯลฯ ) เป็นไปได้หรือไม่
13 yum 

2
ความแตกต่างระหว่าง chmod กับ ACL
ฉันเข้าใจchmodและchownบิตการอนุญาตทำงานอย่างไร แต่มีระบบการอนุญาตอื่นภายใน Linux ACLด้วยsetfaclและgetfaclสิ่งนี้ทำให้ฉันสงสัย อะไรคือความแตกต่างระหว่างระบบควบคุมการอนุญาตทั้งสองระบบ พวกเขารบกวนซึ่งกันและกันหรือไม่?
13 linux  permissions  chmod  acl 

2
ฉันจะดูประวัติการใช้งานหน่วยความจำได้อย่างไร
ผมคุ้นเคยกับคำสั่งต่างๆเช่นtop, htop, freeเป็นต้นอย่างไรก็ตามจะมีคำสั่งที่จะเห็นยอดเขา / ใช้หน่วยความจำระเบิดของเซิร์ฟเวอร์ทั้งหมด (ไม่ใช่กระบวนการของแต่ละบุคคล) มากกว่าการพูดสุดท้าย 30 วัน / 24 ชั่วโมง / etc.
13 memory  ram  statistics 

1
เป็นไปได้หรือไม่ที่จะหยุดงานใน htop?
ใน htop ฉันต้องการสั่งซื้อกระบวนการด้วยการใช้งาน CPU แต่กระบวนการด้านบนเด้งกลับไปกลับมาดังนั้นจึงเป็นการยากที่จะดูรายละเอียดของแต่ละกระบวนการ ฉันต้องการที่จะสามารถเรียงลำดับสิ่งที่ต้องการแล้วล็อคคำสั่งนั้นในขณะที่แต่ละฟิลด์ยังคงปรับปรุง
13 top  htop 

4
อักขระแปลกซ้อนทับกันในเทอร์มินัล
ฉันใช้ bash รุ่น 4.3.42 (1) - ปล่อยในสภาพแวดล้อม ArchLinux / Gnome เมื่อฉันพิมพ์คำสั่งของฉันตัวละครที่เขียนบางตัวจะถูกแปลงเป็นตัวละครแปลก ๆ โดยรวมแล้วข้อความที่แสดงทั้งหมดดูแปลก การเข้ารหัสอักขระของฉันถูกตั้งค่าเป็น Unicode (UTF-8) ฉันตรวจสอบภาษาที่ป้อนซึ่งถูกต้องด้วย เนื่องจากใช้งานได้ก่อนฉันคิดว่ามีบางอย่างเกี่ยวกับการอัปเดต แต่ฉันไม่แน่ใจ ภาพต่อไปนี้แสดงเอาท์พุทของbash -versionและที่ด้านล่างทั้งสองคำminusและmoreoverตำแหน่งที่คุณสามารถเห็นพฤติกรรมแปลก ๆ ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ผลลัพธ์ของฉัน locale $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= ติดตามแบบอักษรชุดของฉันใน /etc/vconsole.conf KEYMAP=de FONT=lat9w-16

2
วิธีทำให้ OpenVPN ฟังทั้งพอร์ต TCP และ UDP
ฉันค้นหาไปรอบ ๆ และสิ่งเดียวที่ฉันพบคือ"ใช่ OpenVPN รองรับการเชื่อมต่อผ่าน TCP"แต่ฉันไม่พบวิธีที่จะบีบบังคับเซิร์ฟเวอร์ openvpn เพื่อฟังพอร์ตเดียวกันสำหรับโปรโตคอลทั้งสองในเวลาเดียวกัน . ฉันได้พบคำแนะนำเก่า ๆ เกี่ยวกับการสร้างอินเทอร์เฟซแบบแตะหรือแนะนำให้มีอินสแตนซ์อื่นของเซิร์ฟเวอร์ที่มีการกำหนดค่าแบบเดียวกันทำงานในเวลาเดียวกัน อดีตดูเหมือนซับซ้อนเกินไปสำหรับบางสิ่งที่ง่ายและในภายหลังดูเหมือนล้าสมัย
13 openvpn 

4
คำสั่ง `เปิด 'เพื่อเปิดไฟล์ในแอปพลิเคชัน
ทำไมฉันไม่สามารถเรียกใช้คำสั่งนี้ใน terminal ของฉัน: open index.html มันควรจะเปิดไฟล์นี้ในเบราว์เซอร์ของฉันหรือไม่? open index.html -a "Sublime Text"นอกจากนี้ผมไม่สามารถเรียกใช้คำสั่งนี้: ผลลัพธ์ของคำสั่งเหล่านี้คือ: $ open index.html Couldn't get a file descriptor referring to the console $ open index.html -a "Sublime Text" - open: invalid option -- 'a' Usage: open [OPTIONS] -- command

2
ฉันจะสร้างนามแฝงสำหรับอุปกรณ์เครือข่ายได้อย่างไร
ฉันกำลังพยายามเรียกใช้ซอฟต์แวร์บางตัวเพื่อใช้งานโดยใช้ตัวจัดการสิทธิ์การใช้งานที่ไม่ได้สังเกตว่าการแจกแจง Linux รุ่นใหม่ไม่ได้ตั้งชื่ออุปกรณ์เครือข่ายของตนeth0อีกต่อไป กำลังพยายามตรวจสอบที่อยู่ MAC แต่เนื่องจาก NIC ของฉันถูกเรียกใช้ens1บน Centos 7 สิ่งนี้ไม่ทำงาน ผู้จำหน่ายซอฟต์แวร์นี้ได้แก้ไขปัญหานี้ในคอมพิวเตอร์เครื่องอื่นแล้วและฉันต้องการที่จะเข้าใจว่าพวกเขาทำสิ่งนี้อย่างไร พวกเขาสร้างนามแฝงบางประเภทเพื่อens1ให้ผู้จัดการใบอนุญาตสามารถค้นหาได้eth0อีกครั้ง นามแฝงจะไม่แสดงเลยถ้าฉันทำแต่มันจะมองเห็นได้อย่างชัดเจนเมื่อโทรifconfig -a ifconfig eth0การใช้ip linkคำสั่งสามารถมองเห็นได้ดังต่อไปนี้: eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT link/ether [mac address] brd ff:ff:ff:ff:ff:ff พวกเขาทำอะไรที่นี่และฉันจะสร้างนามแฝงประเภทนี้ในคอมพิวเตอร์เครื่องอื่นได้อย่างไร

2
คำสั่ง tar - ข้าม symlink
ฉันใช้คำสั่ง tar เป็น tar -cvf protTests.tar protTests/* ไปยังtarไฟล์ทั้งหมดภายในโฟลเดอร์, protTests. แต่นี่รวมถึงลิงก์สัญลักษณ์ภายในโฟลเดอร์ซึ่งไม่ได้เป็นที่ต้องการ มีตัวเลือกบรรทัดคำสั่งที่จะออก symlink ทั้งหมดหรือไม่
13 files  symlink  tar  wildcards 

4
แสดงสปินเนอร์ขณะที่รอให้กระบวนการเสร็จสิ้น
ฉันจะแสดงสปินเนอร์จนจบบรรทัดคำสั่งได้หรือไม่ กล่าวอีกนัยหนึ่งถ้าฉันใช้งานสคริปต์และฉันต้องการที่จะแสดงสปินเนอร์ในขณะที่สคริปต์นี้ทำงานและสปินเนอร์หายไปเมื่อสคริปต์เสร็จมันเป็นงาน ร้องเป็นรหัสปั่นด้ายที่พบบ่อย: i=1 sp="/-\|" echo -n ' ' while true do printf "\b${sp:i++%${#sp}:1}" done ฉันจะเชื่อมโยงรหัสสปินเนอร์ก่อนหน้าเข้ากับคำสั่งเพื่อให้มันแสดงสปินเนอร์ได้ในขณะที่คำสั่งนั้นทำงานอยู่และสปินเนอร์จะหายไปเมื่อคำสั่งทำงานเสร็จ ถ้าฉันรวมคำสั่งในลูปมันจะวนซ้ำกับสปินเนอร์ดังนั้นวิธีแก้ปัญหาในกรณีนี้คืออะไร?
13 bash 

3
OpenConnect: การตั้งค่าเส้นทางเริ่มต้น
ฉันพยายามใช้ OpenConnect เพื่อเชื่อมต่อกับ Cisco VPN ของ บริษัท ของฉัน (AnyConnect) การเชื่อมต่อนั้นใช้งานได้ดีสิ่งที่ฉันไม่เข้าใจคือวิธีตั้งค่าการกำหนดเส้นทาง ฉันทำสิ่งนี้จากบรรทัดคำสั่ง ฉันใช้สคริปต์ VPN เริ่มต้นเพื่อเชื่อมต่อเช่นนี้: openconnect -u MyUserName --script path_to_vpnc_script myvpngateway.example.com ฉันพิมพ์รหัสผ่านของฉันและฉันเชื่อมต่อได้ดี แต่เส้นทางเริ่มต้นของฉันเปลี่ยนไปบังคับให้ทราฟฟิกทั้งหมดลดลงไปที่ลิงก์ VPN ในขณะที่ฉันแค่ต้องการทราฟฟิกของ บริษัท ลงไปที่ลิงค์ VPN มีตัวแปรบางอย่างที่ฉันจำเป็นต้องใส่ลงในสคริปต์ vpnc หรือไม่? ยังไม่ชัดเจนว่าจะทำอย่างไร

1
systemd ล้มเหลวในขั้นตอนที่ EXEC วางไข่สคริปต์: ปฏิเสธสิทธิ์การใช้งาน
ฉันกำลังพยายามสร้างบริการ "Hello World" เพื่อที่จะพูด มันถูกเรียกว่าและเป็นร้านที่autologger.service/usr/lib/systemd/system/autologger.service ฉันพยายามsudo service autologger startแต่systemctlส่งคืนมาตรฐาน: Job for autologger.service failed. See 'systemctl status autologger.service' and 'journalctl -xn' for details. เมื่อฉันตรวจสอบ/var/log/messagesฉันเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้: Failed at step EXEC spawning /opt/autologger/placeholder.sh: Permission denied คำถามของฉันคือฉันจะให้สิทธิ์การบริการกับสิ่งใดได้บ้าง นี่คือไฟล์หน่วยบริการ: [Unit] Description=Hello World DefaultDependencies=no Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/opt/autologger/placeholder.sh placeholder.sh ประกอบด้วย #!/bin/bash echo "Hello World"

4
ทำความเข้าใจกับชื่อโฮสต์และ / etc / hosts
ใน / etc / mynameชื่อโฮสต์ที่ฉันมี ใน / etc / hosts ฉันมี: 127.0.0.1 localhost.localdomain localhost myname ::1 localhost.localdomain localhost myname ฉันมีความเข้าใจที่คลุมเครือว่าชื่อโฮสต์คืออะไรและใช้ทำอะไร คำถามที่แม่นยำยิ่งขึ้นเหล่านี้สามารถช่วยให้ฉันเข้าใจได้ดีขึ้น: ชื่อโฮสต์ของฉันในตัวอย่างด้านบนคืออะไร? mynameหรืออย่างอื่น? ถ้าฉันมีแทนmyname.domain.comใน/etc/hostnameสิ่งที่จะเป็นชื่อโฮสต์จริงของฉันแล้ว? ในตัวอย่างคำสั่งhostnameผลตอบแทนmynameในขณะที่คำสั่งผลตอบแทนhostname -f localhost.localdomainฉันจำได้ว่า/etc/hostsเป็นเพียงการจับคู่ระหว่างชื่อและที่อยู่ IP ดูเหมือนว่าจะให้บริการฟังก์ชั่นอื่นที่นี่ fqdn คืออะไรและใช้ทำอะไร มันดึงมาได้อย่างไร? ทำไมถึงเป็นเช่นนั้นlocalhost.localdomain? ถ้าฉันมีแทนmyname.domain.comใน/etc/hostname, จะกลับมาhostname -f myname.domain.comทำไม? ทำไม fqdn ถึงไม่ลงท้ายด้วยจุดในไฟล์เหล่านี้ มีhostname -dและdnsmydomainเทียบเท่า? ฉันสามารถใช้ชื่อโฮสต์ ( myname) ในบริบทใดและฉันต้องใช้ fqdn ( localhost.localdomain) ของฉันเมื่อใด
13 hostname  hosts 

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