應用場景:
在辦公中,有可能存在,某些命令指令碼使用windows下的文字編輯器進行編寫當放到測試環境的linux中時,執行報錯
需要使用的軟體:xxd hexdump dos2unix
1、執行windows上編寫好的sh指令碼
[root@hlrgm ~]# bash test.shtest.sh: line 2: $'\r': command not found
'f: invalid option -- '
try 'df --help' for more information.
test.sh: line 4: $'\r': command not found
's: invalid option -- '
try 'ls --help' for more information.
test.sh: line 6: $'\r': command not found
2、檢視sh指令碼
[root@hlrgm ~]# cat test.sh#!/bin/bash
df -h
ls -l
3、檢視文字的二進位制
[root@hlrgm ~]# xxd test.sh0000000: 2321 2f62 696e 2f62 6173 680d 0a0d 0a64 #!/bin/bash....d
0000010: 6620 2d68 0d0a 0d0a 6c73 202d 6c0d 0a0d f -h....ls -l...
0000020: 0a .
4、檢視文字的十六進製制
[root@hlrgm ~]# hexdump test.sh0000000 2123 622f 6e69 622f 7361 0d68 0d0a 640a
0000010 2066 682d 0a0d 0a0d 736c 2d20 0d6c 0d0a
0000020 000a
0000021
5、使用dos2unix修改文字
注意:dos2unix需要安裝後使用,預設系統未安裝
[root@hlrgm ~]# dos2unix test.shdos2unix: converting file test.sh to unix format ...
6、檢視修改後檔案的二進位制和十六進製制
# 二進位制[root@hlrgm ~]# xxd test.sh
0000000: 2321 2f62 696e 2f62 6173 680a 0a64 6620 #!/bin/bash..df
0000010: 2d68 0a0a 6c73 202d 6c0a 0a -h..ls -l..
# 十六進製制
0000000 2123 622f 6e69 622f 7361 0a68 640a 2066
0000010 682d 0a0a 736c 2d20 0a6c 000a
000001b
7、對比
windows:二進位制下換行符號:0d0alinxu:二進位制下換行符號:0a
Linux換行符和Windows換行符的區別與轉換
windows為乙個回車 r cr或 m 和乙個換行 n nl或lf 括號內是其它顯示方法 linux為乙個換行 n mac為乙個回車 r 檢視檔案是否含有windows換行符 windows notepad 檢視 顯示所有符號 linux file test.txt test.txt ascii ...
檔案換行符
檔案換行符 dos和windows採用回車 換行 cr lf 而unix linux採用換行符lf,蘋果機 mac os系統 則採用回車符cr.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d lf使用 n 符號表示,ascii 是10,十六制為0x0a.所以windows平...
Linux下轉換Windows換行符
linux和windows和換行符不一樣。windows下是crlf r n或0d0a linux下是lf n或0a 在linux下有時會遇到從windows過來的文字檔案,這些檔案帶了windows換行符,linux下進行指令碼處理時有可能會出一些莫名其妙的錯誤。因此需要將這些檔案轉換為linux...