Score:0

นามแฝงล้มเหลวเมื่อกำหนดใน .bash_aliases บน Ubuntu 20.04.2 ผ่าน ssh ด้วยเซิร์ฟเวอร์กระโดด

ธง cn

ขยายเซิร์ฟเวอร์ AWS Ubuntu 20.04.2 เซิร์ฟเวอร์นี้ตั้งอยู่หลังเซิร์ฟเวอร์กระโดด

เมื่อเซิร์ฟเวอร์หมุน ฉันวิ่ง:

อัปเดต sudo
อัปเกรด sudo

เช่นเดียวกับการรีบูตเซิร์ฟเวอร์ หลังจากนั้นได้สร้าง ~/.bash_aliases ไฟล์และเพิ่มนามแฝงต่อไปนี้:

นามแฝง lsd = 'ls -a -g --group-ไดเรกทอรีแรก'

หลังจากบันทึก .bash_aliases แล้ว ให้โหลด .bashrc ใหม่: ที่มา ~/.bashrc

เมื่อใช้นามแฝง ข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น:

xxx@ip-1-2-3-4:~$ lsd
's: ตัวเลือกที่ไม่รู้จัก '--group-directories-first
ลอง 'ls --help' สำหรับข้อมูลเพิ่มเติม

ตรวจสอบสิ่งต่อไปนี้:

  • คำสั่งแบบเต็มจะทำงานโดยไม่มีนามแฝง
  • นามแฝงใช้งานได้เมื่อเพิ่มโดยตรงไปยังไฟล์ ~/.bashrc

ตรวจสอบแล้วด้วย .bashrc กำลังอ่านในนามแฝง:

ถ้า [ -f ~/.bash_aliases ]; แล้ว
    . ~/.bash_aliases
ไฟ

คำถาม: ฉันจะใช้ไฟล์ .bash_aliases บน ssh ได้อย่างไร

ฉันได้อ่านคำถามที่คล้ายกันแล้ว แต่วิธีแก้ปัญหาดูเหมือนจะไม่ทำงาน: ทำไมนามแฝงของฉันถึงไม่ทำงานบน ssh

ฉันมาจากพื้นหลังของ Windows และตอนนี้เพิ่งเริ่มทำงานในโลกของ Linux; อ่อนโยน

แก้ไขสำหรับบริบท

เดอะ .bash_aliases ไฟล์ได้รับการแก้ไขในเครื่องบน Windows ด้วย MobaTextEditor ในขณะที่ ssh เข้าไปในเซิร์ฟเวอร์ แม้ว่าไฟล์เปล่าจะถูกสร้างขึ้นบนเซิร์ฟเวอร์ แต่การเข้ารหัสรูปแบบ Unix ก็ไม่ได้บอกเป็นนัยในเอดิเตอร์ เนื่องจากไฟล์นั้นว่างเปล่า การเข้ารหัส Windows ถูกเพิ่มลงในไฟล์หลังจากแก้ไขและบันทึกกลับไปยังเซิร์ฟเวอร์ด้วย MobaTextEditor

hr flag
ตำแหน่งที่แปลกของเครื่องหมายคำพูดในข้อความแสดงข้อผิดพลาดบ่งชี้ว่าไฟล์ `.bash_aliases` มีการลงท้ายบรรทัดแบบ DOS - ตรวจสอบด้วย `file ~/.bash_aliases`
cn flag
@steeldriver - กลับมาเป็น `.bash_aliases: ASCII text, with CRLF line terminators` - ฉันควรอัปเดตคำถามของฉัน re: ใช้ Windows ในเครื่องด้วย WSL และแก้ไขไฟล์ด้วย MobaTextEditor ที่แปลกคือฉันแก้ไข `.bashrc` ด้วย MobaTextEditor และคำสั่งไฟล์ส่งคืน `.bashrc: ASCII text`
hr flag
.bash_aliases เป็นไฟล์ใหม่หรือไม่ เป็นไปได้ว่า MobaTextEditor จะรักษาการสิ้นสุดบรรทัดของไฟล์ที่มีอยู่ (เช่น .bashrc ของคุณ) แต่ใช้ค่าเริ่มต้นเป็น CRLF สำหรับไฟล์ใหม่
cn flag
@steeldriver - ขอบคุณ! ฉันอัปเดต MobaTextEditor เป็นการเข้ารหัสและรูปแบบที่ถูกต้อง โหลดทุกอย่างใหม่และนามแฝงก็ใช้งานได้จากไฟล์ `bash_aliases` ทันที ถ้าคุณต้องการคำตอบฉันจะยอมรับ
hr flag
ขอบคุณ - ดูด้านล่าง
Score:2
ธง hr

ตำแหน่งที่แปลกของเครื่องหมายคำพูดในข้อความแสดงข้อผิดพลาดบ่งชี้ว่าไฟล์ .bash_aliases มี CRLF สไตล์ DOS (เช่น \r\n) สิ้นสุดบรรทัดเช่น

$ printf '%s\r\n' "นามแฝง lsd='ls -a -g --group-directories-first'" >> ~/.bash_aliases

$ ไฟล์ ~/.bash_aliases
/home/steeldriver/.bash_aliases: ข้อความ ASCII พร้อมตัวสิ้นสุดบรรทัด CRLF

$ . ~/.bash_aliases
$
$lsd
's: ตัวเลือกที่ไม่รู้จัก '--group-directories-first
ลอง 'ls --help' สำหรับข้อมูลเพิ่มเติม

คุณสามารถแก้ไขได้โดยการตั้งค่าการสิ้นสุดบรรทัด UNIX ที่เหมาะสมในโปรแกรมแก้ไขข้อความของคุณ หรือโดยการส่งผ่านไฟล์ ดอส2ยูนิกซ์:

$ dos2unix ~/.bash_aliases
dos2unix: แปลงไฟล์ /home/steeldriver/.bash_aliases เป็นรูปแบบ Unix...

จากนั้นคุณจะต้องจัดหาไฟล์อีกครั้ง

cn flag
มีประโยชน์มาก ขอบคุณสำหรับเคล็ดลับ `dos2unix` เช่นกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา