Unix & Linux

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

2
ทำไม #! / usr / bin / env ทุบตีไม่ทำงานในระบบของฉัน
bad interpreterฉันวิ่งเข้าไปในบางประเด็นที่เมื่อทำงานสคริปต์การติดตั้งบางอย่างที่พวกเขาบ่น ดังนั้นฉันจึงทำตัวอย่างเล็กน้อย แต่ไม่สามารถเข้าใจได้ว่าปัญหาคืออะไรดูด้านล่าง #!/usr/bin/env bash echo "hello" การเรียกใช้สคริปต์ข้างต้นส่งผลให้เกิดข้อผิดพลาดดังต่อไปนี้ [root@ech-10-24-130-154 dc-user]# ./junk.sh bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory /usr/bin/envไฟล์ที่มีอยู่ดูด้านล่าง: [root@ech-10-24-130-154 dc-user]# ls -l /usr/bin/env lrwxrwxrwx 1 root root 13 Jan 27 04:14 /usr/bin/env -> ../../bin/env [root@ech-10-24-130-154 dc-user]# ls -l /bin/env -rwxr-xr-x 1 root root 23832 Jul …

3
ซิงค์สองทิศทางด้วย rsync
ฉันพยายามตั้งค่าสองทิศทางหรือซิงค์สองทางด้วย rsync ในกรณีของฉันฉันจะต้องลบไฟล์เมื่อทำการซิงค์จาก B ถึง A เท่านั้นดังนั้นฉันจึงคิดที่จะใช้ rsync สองครั้งดังนี้: rsync -rtuv ./A/ ./B/ rsync -rtuv --delete ./B/ ./A/ ปัญหานี้ด้วยวิธีแก้ไขปัญหานี้คือเมื่อฉันรัน rsync (B-> A) ซึ่งจะเกิดขึ้นทันทีหลังจากเรียกใช้ rsync (AB) ไฟล์ใหม่ใด ๆ ที่สร้างขึ้นระหว่างการซิงค์จะถูกลบด้วย มีวิธีที่ฉันสามารถระบุการประทับเวลาเป็นเงื่อนไขว่าจะลบไฟล์เฉพาะถ้ามันสร้างขึ้นก่อนวันที่ / เวลานี้ Updated: ฉันเข้าใจว่ามีวิธีแก้ปัญหาพร้อมเพรียง แต่ปัญหาที่เกิดขึ้นพร้อมเพรียงจะต้องติดตั้งที่ปลายทั้งสอง ฉันกำลังซิงค์กับเซิร์ฟเวอร์ระยะไกลและฉันไม่สามารถติดตั้งพร้อมเพรียงในปลายทางระยะไกล

3
หน้าจอล้มเหลวด้วย“ WriteMessage: ตัวอธิบายไฟล์ไม่ดี”
ฉันได้เซสชั่นหน้าจอ "หลัก" เริ่มต้นใน/dev/ttySAC0และดวลจุดโทษเริ่มต้นใน/dev/ttySAC0(เซสชั่นหน้าจอภายนอก) กับนำเข้าส่งออกและความผิดพลาดในลำธารเปลี่ยนเส้นทางไปยัง /dev/pts/1pseudoterminal เมื่อฉันแนบกับเทอร์มินัล / dev / pts / 1 และพยายามเรียกใช้screen -r mainมันล้มเหลวด้วย: WriteMessage: Bad file descriptor แต่การสร้างเซสชันหน้าจอใหม่ด้วยการscreenทำงานที่ดี นอกจากนี้ถ้าฉันทำงานscreen -r mainในเซสชั่นหน้าจอนี้ฉันได้รับหน้าจอที่มีเซสชั่นที่บันทึกไว้ในเซสชั่นหน้าจออื่น มันไม่ได้มีประโยชน์เลย แต่ใช้ได้ดี แม้ว่าฉันจะเริ่มเซสชั่นใหม่/dev/pts/1, แยกออกจากมันและพยายามที่จะรื้อฟื้นมัน, ฉันได้รับข้อผิดพลาดเดียวกัน
11 gnu-screen 

1
ติดตั้งแพคเกจแนะนำของแพคเกจติดตั้งแล้วกับฉลาด
ก่อนหน้านี้ฉันติดตั้งแพคเกจด้วย--no-install-recommendsและตอนนี้ฉันขาดฟังก์ชั่นบางอย่างเนื่องจากแพ็คเกจเหล่านี้หายไป มีวิธีติดตั้งแพ็กเกจเหล่านี้ด้วยapt-getคำสั่งโดยไม่ถอนการติดตั้งอย่างสมบูรณ์ (เช่นนี้จะลบแพ็กเกจที่ขึ้นต่อกันมากมายเช่นกัน) ฉันรู้ว่าฉันสามารถใช้apt-cache depends *packagename* | grep Recommendsเพื่อรับรายการแพ็คเกจเหล่านี้ซึ่งฉันสามารถติดตั้งด้วยตนเองและตั้งค่าเป็น autoinstalled ด้วยตนเองได้ อย่างไรก็ตามฉันต้องการทราบว่าคุณสามารถทำได้โดยอัตโนมัติด้วย apt-get

1
ควรจะติดตั้งไฟล์ปฏิบัติการที่ติดตั้งภายใต้ / opt ลงในพา ธ ได้อย่างไร
สามารถติดตั้งโปรแกรมภายใต้การ/optเชื่อมโยงอย่างปลอดภัย/usr/local/binซึ่งมีอยู่ใน PATH แล้วโดยค่าเริ่มต้นใน Ubuntu และ Linux distros อื่น ๆ อีกวิธีหนึ่งมีเหตุผลบางอย่างในการสร้างแยก/opt/binและเพิ่มไปยังเส้นทางดังเช่นในคำตอบนี้: ความแตกต่างระหว่างไดเรกทอรี / opt / bin และ / opt / X / bin ?

2
จะทราบได้อย่างไรว่ามีการกำหนดยูนิโคด codepoints ไว้ในไฟล์ TTF อย่างไร
ฉันต้องทำให้กระบวนการตรวจสอบว่าอักขระ Unicode มีร่ายมนตร์ที่กำหนดไว้โดยอัตโนมัติสำหรับพวกเขาในไฟล์ True Type Font ฉันจะทำเช่นนั้นได้อย่างไร ฉันไม่สามารถหาข้อมูลเกี่ยวกับวิธีทำให้ตัวเลขที่ฉันดูเหมือนจะได้รับเมื่อฉันเปิดไฟล์. ttf ในโปรแกรมแก้ไขข้อความ
11 fonts  unicode  ttf 

2
เรียกใช้คำสั่งในเชลล์แบบโต้ตอบด้วย ssh หลังจาก sourcing .bashrc
ฉันต้องการที่จะ SSH เข้าไปในคอมพิวเตอร์ Ubuntu ระยะไกลแหล่งที่มาของฉันและเรียกใช้คำสั่งที่ขึ้นอยู่กับพารามิเตอร์ที่กำหนดโดยที่.bashrc .bashrcทั้งหมดที่อยู่ในเชลล์แบบโต้ตอบที่ไม่ปิดหลังจากทำคำสั่งเสร็จแล้ว สิ่งที่ฉันพยายามจนถึงตอนนี้คือ ssh user@remote_computer -t 'bash -l -c "my_alias;bash"' หรือเพียงแค่ ssh user@remote_computer -t "my_alias;bash" ใช้งานได้กับคำสั่งทั่วไป (เช่นlsตัวอย่าง) แต่เมื่อฉันพยายามเรียกใช้นามแฝงที่กำหนดไว้ใน.bashrcฉันได้รับข้อผิดพลาด: bash: my_alias: command not found แต่เมื่อฉันเขียนมันเองอีกครั้งและรันมันก็ใช้งานได้! ดังนั้นฉันจะแน่ใจได้อย่างไรว่า.bashrcมีแหล่งที่มาก่อนที่คำสั่งจะถูกเรียก?
11 bash  shell  ssh  alias 

1
ใช้ 'จดหมาย' เพื่ออ่านอีเมลจากบรรทัดคำสั่ง
ฉันรู้ว่าเราสามารถใช้mailคำสั่งในเทอร์มินัลเพื่อเริ่มใช้mailโปรแกรมในโหมดโต้ตอบ อย่างไรก็ตามฉันต้องการอ่านอีเมลโดยใช้mailคำสั่งแบบไม่โต้ตอบ มีคำสั่งเช่นไร $ mail -optionToReadMail -mailNumber 1; ซึ่งจะแสดงเนื้อหาของอีเมลใน stdout?
11 bash  scripting  mailx 

1
มันปลอดภัยแค่ไหนที่จะเพิ่ม tmpfs ให้มากกว่าหน่วยความจำกายภาพ?
เซิร์ฟเวอร์ของฉันมี 2GB RAM และ 120GB SSD รวมทั้งอาร์เรย์ RAID บางส่วนสำหรับจัดเก็บข้อมูล ระบบปฏิบัติการคือ Debian 8 (Linux 3.16) ฉันมีแอพพลิเคชั่นที่ใช้ MySQL ที่มีtmpdir= /run/mysqldซึ่งtmpfsกำหนดค่าโดย Debian ผ่าน/etc/default/tmpfs: # Size limits. Please see tmpfs(5) for details on how to configure # tmpfs size limits. TMPFS_SIZE=40%VM สิ่งนี้เคย20%VMเป็นประมาณ 384M ฉันวิ่งแข่งหลายครั้งno space left on deviceดังนั้นฉันจึงเพิ่มมันเป็นถึง40%VMแม้จะมีขนาดประมาณ 763M ก็ยังเล็กเกินไป ตอนนี้ฉันตอนนี้ฉันควรเพิ่ม RAM เพิ่มเติม แต่จากความอยากรู้อยากเห็นฉันต้องการทราบขีด …
11 linux  swap  tmpfs 

1
ฉันจะปรับระดับการซูมของ Zathura ไปยังจอภาพของฉันได้อย่างไร
ฉันใช้Zathura (ใช้ปลั๊กอิน MuPDF ) เพื่อตรวจสอบเค้าโครงต่าง ๆ สำหรับการพิมพ์ เป็นสิ่งสำคัญสำหรับฉันที่ฉันกำลังมองหาสิ่งต่าง ๆ ที่มีขนาดใกล้เคียงกับที่พวกเขาจะออกมาบนกระดาษ ฉันตระหนักถึงความแตกต่างระหว่างพิกเซลของหน้าจอและสิ่งที่มีลักษณะในการพิมพ์จะยังคงส่งผลกระทบต่อการรับรู้ แต่เพื่อบันทึกการทดสอบการพิมพ์ในขณะที่ฉันหยาบขอบและขนาดการตัดแต่งฉันต้องการที่จะสามารถเก็บกระดาษ ในโปรแกรมดู PDF ของฉัน ระดับการซูมเริ่มต้นของ Zathura (100%) เป็นอะไรก็ได้ยกเว้นขนาดที่แท้จริง ในความเป็นจริงมันปิดเกือบ⅓ ถ้าฉันตั้งค่าการซูมเป็น 133% ฉันจะได้บางสิ่งที่ใกล้เคียงกับขนาดจริงมาก ฉันจะทำให้ระดับการซูมเริ่มต้นเป็นอย่างไร ฉันต้องการให้ทุกอย่างอื่นปรับเทียบเพื่อที่จริงแล้ว 50% จะมีขนาดครึ่งหนึ่ง ฯลฯ มีวิธีปรับเทียบการตั้งค่ากับจอภาพของฉันหรือไม่บางทีการตั้งค่าตัวประกอบสเกลบางประเภท? ที่น่าสนใจ Evince ดูเหมือนจะรู้อะไรบางอย่างเกี่ยวกับขนาดจอภาพของฉันเพราะมันชั่งสิ่งต่าง ๆ ออกมาจากกล่อง 100% ปรากฎบนหน้าจอของฉันเป็นขนาดกระดาษที่ถูกต้อง (อันที่จริงมันถูกปิดโดย smidgen, 100.5% เป็นเหมือนมันมากขึ้น แต่มันจะอยู่ใกล้พอ) ในอีกทางหนึ่ง Acroread นั้นอยู่ห่างออกไปหนึ่งไมล์ แต่ในทิศทางตรงกันข้ามกับ Zathura ที่นั่นค่า 87% ทำงานได้ถูกต้อง - …
11 pdf  monitors  zathura 

4
ที่อยู่ IP ของอุปกรณ์เทียบกับเครือข่าย
ฉันพยายามเข้าใจความสัมพันธ์ระหว่าง: อุปกรณ์ Linux "เครือข่าย"; และ การ์ด NIC แบบกายภาพตั้งอยู่บนอุปกรณ์นั้น (ให้ความสามารถในการเป็น "เครือข่าย"); และ การเชื่อมต่อต่างๆ Ethernet / Wi-Fi เครือข่าย ( eth0, eth1, wlan0ฯลฯ ); และ ที่อยู่ IP และพอร์ต จากสิ่งที่ผมได้รวบรวมก็ปรากฏว่าแต่ละอินเตอร์เฟซ (อีกครั้งeth0, eth1, wlan0ฯลฯ ) ที่ได้รับมอบหมาย IP เป็นเอกลักษณ์ของตนเอง ความหมายในเครื่องของฉันeth0จะมี IP wlan1ที่แตกต่างกว่าการพูด แต่สิ่งนี้ขัดแย้งกับความคิดเห็นของฉันว่าอุปกรณ์เครือข่ายทั้งหมดได้รับ IP เดียวสำหรับอุปกรณ์ทั้งหมด แล้วมันคืออะไร? อุปกรณ์ได้รับ 1 IP ที่ใช้โดยอินเตอร์เฟสทั้งหมดหรือแต่ละอินเตอร์เฟสได้รับ IP ของตัวเองจริงหรือ ถ้าแต่ละอันมีของตัวเองแล้วอะไรจะเป็นตัวกำหนดจำนวนพอร์ตที่มีอยู่บนอินเตอร์เฟสนั้น

2
ส่งรหัสผ่านผ่าน stdin ใน `ssh-copy-id`
ssh-copy-idฉันต้องการที่จะทำงานโดยอัตโนมัติการใช้งานตัวตนบางนึกคิดใช้ ฉันพยายามให้รหัสผ่าน stdin ซึ่งเป็นไปได้sshโดยใช้การ-Sตั้งค่าสถานะ ฉันทราบว่าฉันสามารถส่งตัวเลือกเพิ่มเติมเพื่อsshใช้การ-oตั้งค่าสถานะในssh-copy-idคำสั่ง แต่ไม่มีตัวอย่างการใช้งานของการตั้งค่าสถานะนี้ในหน้า man ดังนั้นฉันพยายามส่งรหัสผ่าน SSH สำหรับssh-copy-idผ่าน stdin โดยใช้: $# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S" แต่สิ่งที่ฉันได้รับคือ: /bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s แก้ไข: ฉันพยายามให้รหัสผ่าน stdin ซึ่งเป็นไปได้ sshโดยใช้การ-Sตั้งค่าสถานะ คำสั่งนี้ผิด ฉันอ่านธงนี้จากsudoมนุษย์จริงๆ

2
การย้าย / บูตพาร์ติชั่นโดยไม่ทำให้ระบบเสียหาย
ฉันได้ลบพาร์ติชั่น Linux Mint เก่าที่ฉันติดตั้งไว้ข้างหนึ่ง Rafaela ปัจจุบันของฉันแล้ว ดังนั้นฉันมีพื้นที่ว่างฉันต้องการเพิ่มไปยังพาร์ติชันของฉัน ด้านบนคุณสามารถดูรูปแบบพาร์ติชัน: sda4 เป็นพาร์ติชันระบบพร้อม / boot sda5 เป็นพาร์ติชันหลัก ฉันต้องการที่จะขยายบ้านด้วยพื้นที่ที่ไม่ได้จัดสรร แต่น่าเสียดายที่พาร์ทิชันระบบอยู่ระหว่างและฉันจะต้องย้ายมันไปที่จุดเริ่มต้นของพื้นที่ที่ไม่ได้ถูกจัดสรร เนื่องจากฉันได้รับข้อความเตือนว่าระบบอาจไม่สามารถบู๊ตได้อีกต่อไปหากฉันย้าย / บู๊ตฉันอยากรู้ว่าฉันสามารถทำได้โดยไม่ทำลายระบบ มันสมเหตุสมผลแล้วที่ระบบไม่สามารถบู๊ตได้หาก bootloader ไม่สามารถค้นหาเคอร์เนลได้อีกต่อไปดังนั้นฉันเดาว่าหลังจากเปลี่ยนเลย์เอาต์พาร์ติชั่นฉันต้อง chroot บน / และสร้างด้วงใหม่ ไม่มีใครรู้ว่าฉันสามารถเพิ่มพื้นที่ที่ไม่ได้จัดสรรให้กับบ้านได้อย่างปลอดภัยหรือไม่?
11 boot  partition  grub2 

2
วิธีการใช้ ln -s เพื่อสร้างทางลัดบรรทัดคำสั่ง?
ฉันมีไฟล์ sh ที่ฉันต้องการที่จะสามารถเปิดได้จาก terminal ได้ตลอดเวลา ฉันต้องการพิมพ์ "studio" ใน terminal และเปิด android studio ฉันจำได้ว่าเคยใช้ln -sในการทำสิ่งนี้ แต่ฉันลืมและเสียเวลาไปกับการค้นหาเว็บแล้ว นอกจากนี้ลิงก์สัญลักษณ์ที่สร้างขึ้นเก็บไว้ในไดเรกทอรีใด? นี่คือไวยากรณ์จากความพยายามของฉันไม่พบคำสั่ง ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio ricardo@debian:~$ studio bash: studio: command not found


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