Linux 初识
Linux介绍与安装
这里不做过多解释了,安装是,主要是要注意磁盘分区,留出 /
和 Swap
区,防止因为磁盘问题,导致整个系统资料丢失
一般root的用户的输入标识符为 #
,其他非root用户的表示符为 $
基础认知
重要热键
Tab
键 在一串指令的第一个 字符的后面,表示 命令补全 的功能
(在仅仅记得某个命令开头字符时,可以先键入正确的几个字符,然后摁两下 Tab
,系统便会列出所有以该字符开头的命令了)
Tab
键 在一串指令的第二个 字符的后面,表示 文件补齐 的功能
若安装了 bash-completion
软件,则在某些命令后面使用 Tab
按键时,可以进行 选项/参数补全,该软件在 CentOS下已经包含在系统中了
Ctrl+c
可以使正在运行的指令中断
Ctrl+d
表示键盘输入结束,也可以取代 exit
操作
Shift+PageUp
向前翻页
Shift+PageDown
向下翻页
帮助命令
对于绝大多数命令,如果不熟悉,可以通过增加 --help
来获得 帮助文档,以此来快速学习该命令的基本用法
还有一个方法就是 通过 man
命令,来查看 操作说明(manual) , 并且可以指定 一般yoghurt可以使用的指令 选项,各个选项的含义如下:
其中 1 5 8 的含义很重要,最好记住这几个选项的含义
一般 说明文档包含的内容有以下几个方面:
所以一般在参考时,会有以下原则:
- 先看 NAME :看一下资料的意思
- 在详细看 DESCRIPTION, 这里会提到很多相关的资料盒使用时机,可以学到很多小细节
- 如果每个指令都已经熟悉了,下面就可以查看 OPTIONS 部分的内容了,可以知道每个选项的含义,就能下达比较 细节的指令内容了
- 最后还会再看一下与该资料相关的,还有哪些东西可以使用,就是 上面的 SEE ALSO
- 某些说明还含有 相关的文件:FILES, 可以进一步参考
还有在 参考手册页面的其他一些基础操作:
一般该说明手册,在目录usr/share/man
中
所以一般是不需要特意记住各种操作命令的,只需要记住一些常用常见的命令,然后其他的很多选项就可以通过 man 命令来找到更加详细的说明,或者通过 --help
来获取基本用法和帮助
有的命令被放到 info
命令中,易读性更强,不过查询的指令需要有 info page
才可以使用,该文件在目录:usr/share/info
下,对于 不是用 info page
格式书写的说明文件,也可以用 info
来显示,只是结果和 man
就基本相同了,其中 info
的参考快捷键如下:
还有其他软件的 帮助文件,会放在目录usr/share/doc
目录下
关机
数据同步
由于在Linux系统中,为了加快数据的读取速度,在默认情况下,某些已经加载到内存中的数据将不会被直接写会硬盘,而是先暂存在内存中,这样如果一个数据被多次读写,则在速度上会快很多,不过这样也带来了困扰,如果系统以外终止(断电等),那么就会造成数据的更新不正常,这是就需要 sync
命令来进行数据的写入操作:将内存中尚未更新的数据,重新写入硬盘中,这个命令在系统关机或重启前很重要
sync
最好是 root 用户使用,因为这样可以保存所有数据,如果是其他用户,则仅保留当前用户的数据
关机的常用参数:
使用reboot
halt
poweroff
都可以实现重新启动和关机的任务,自己习惯就可以了
Linux的文件权限与目录配置
文件权限
rwx
的含义这里就不再详细介绍了,这三个分别代表 读 写 执行,可以使用八进制数 4 2 1 来表示,ugo
分别表示 当前用户 同组的其他用户 其他组的其他用户,a
表示所有用户,也可以使用 +
-
=
来设定不同用户的不同权限
文件权限
r
权限(read):可以读取此文件的实际内容w
权限(write):可以编辑、新增该文件的内容,但是不能删除该文件x
权限(eXecute):该文件具有可以被系统执行的权限, 因为 Linux 不是依靠 Windows系统的拓展名来判断文件是否可以执行,而是依靠x
权限判断的
目录权限:
r
权限(read):可以读取此目录结构,查询到该目录下的文件名数据(ls
)w
权限(write):具有改动该目录结构列表的权限:建立、删除、重命名、移动 文件和目录x
权限(eXecute):用户能否进入该目录并成为工作目录,就是当做home
目录使用
如果在某个目录没有x
权限,则无法切换到该目录下,也无法执行该目录下的任何指令,即使拥有rw
权限
更改群组
更改某个用户的群组需要使用 root 用户,并且需要在 目录 /etc/group
下进行,否则就会显示错误,使用命令 chgrp
命令实现(change group)
改变文件拥有者
如果是 目录下所有次目录或文件同时更改 文件所有者,就需要 -R
选项
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
一般在复制文件给其他用户的时候,就会使用到这个命令,需要将复制好的文件,修改为 目标用户,这样该用户就可以 写入或执行该文件了
文件种类与拓展名
在 Linux下,一切都是文件
文件种类
- 正规文件(regular file): 在使用
ls
命令列出的文件中,第一个字符是-
的均为正规文件,按照文件内容,可以分为以下几种:- 纯文本文件( ASCII):人可以直接读到的文件
- 二进制档( binary) : 各种可执行文件
- 数据格式文件( data) : 有些程序在运行过程中读取某些特定格式的文件
- 目录( directory):在使用
ls
命令列出的文件中,第一个字符是d
的均为目录文件 - 链接文件( link) : 类似Windows系统下的 快捷方式,在使用
ls
命令列出的文件中,第一个字符是l
的均为链接文件 - 设备与设备文件( device) : 与系统周边及储存等相关的一些文件,通常都集中在
/dev
这个目录之下! 通常又分为两种:- 区块( block) 设备文件 : 就是一些储存数据, 以提供系统随机存取的周边设备, 可以跳转不同的区块
- 字符( character) 设备文件: 亦即是一些序列埠的周边设备, 例如键盘、 鼠标等,一次性读取的
- 数据接口文件( sockets) : 在网络中进行数据承接
- 数据输送档( FIFO, pipe) : 解决多个程序同时村却同一个文件造成的错误问题
文件拓展名
和Windows系统不同,依靠拓展名来确定某个文件是否可以被执行,Linux下的文件只要有 x
权限,就是 可以被执行的,但是 这并不是说这样就可以被执行成功,只是说明 它具有执行能力
Linux下还有其他类型的文件,可以依靠拓展名区分:
Linux下文件名的限制
单一文件或目录的最大容许文件名为 255Bytes, 以一个 ASCII 英文占用一个 Bytes 来说, 则大约可达 255 个字符长度。 若是以每个中文字占用 2Bytes 来说, 最大文件名就是大约在 128 个中文字符之内
所以 Linux下可以看到很长的文件名,就是为了可以清晰的表示该文件的信息
而且在命名文件时 ,最好避免以下字符:
. ? > < ; & ! [ ] | \ ' " ` ( ) { }
以 .
开头的文件或目录,在 Linux下认为是 隐藏文件
目录配置
根据 FHS 的目录配置依据,简单的将目录定义为以下四种交互形态:
还有另外三个目录:
/
( root, 根目录) : 与开机系统有关;
/usr
( unix software resource) : 与软件安装/执行有关;
/var
( variable) : 与系统运行过程有关。
根目录
根目录是整个系统最重要的一个目录, 因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关
根目录是整个系统最重要的一个目录, 因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关
各个目录的主要文件如下:
还有几个也非常重要,但是 FHS 没有定义出来的目录:
有五个重要的目
录被要求一定要与根目录放置在一起, 那就是 /etc
, /bin
, /dev
, /lib
, /sbin
这五个重要目录。现在许多的 Linux distributions 由于已经将许多非必要的文件移出 /usr
之外了, 所以 /usr
也是越来越精简,同时因为 /usr
被建议为『即使挂载成为只读,系统还是可以正常运作』的模样,所以救援模式也能同时挂载 /usr
/usr
的意义与内容
依据 FHS 的基本定义, /usr 里面放置的数据属于可分享的与不可变动的(shareable, static),
很多读者都会误会/usr
为 user 的缩写,其实 usr 是 Unix Software Resource 的缩写, 也就是『Unix 操作系统软件资源』所放置的目录,而不是用户的数据
FHS 建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录
因为是所有系统默认的软件(distribution 发布者提供的软件)都会放置到/usr 底下,因此这个目录有点类似 Windows 系统的『C:\Windows\ (当中的一部份) + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说, /usr
的次目录建议有底下这些:
/var
的意义与内容
如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。常见的次目录有:
实际目录配置
上面仅仅是 FHS 建议的目录结构,在实际的 Linux发行版 CentOS7 的目录树结构如下:
文件与目录管理
相对路径与绝对路径
- 绝对路径:
由 根目录/写起,例如/usr/share/doc
一般来说,如果是 shell脚本等类似的程序,务必使用 绝对路径的写法 - 相对路径:
不是由/写起,.
表示当前目录,..
表示上一级目录(父目录)
关于目录的基本常识:
使用命令cd -
就可以回到上一个工作目录,实现直接跳回的操作了
在所有目录底下都会存在的两个目录,分别是『.』与『…』 分别代表此层与上层目录的意思
那么在Linux 的根目录下,是否也存在上层目录呢?
若使用『ls -al /
』去查询,可以看到根目录下确实存在 . 与 … 两个目录,再仔细的查阅, 可发现这两个目录的 属性与权限完全一致,这代表根目录的上一层(…)与根目录自己(.)是同一个目录
目录相关操作
cd 变换目录
pwd 见识当前目录,pwd -P 可以取得正确的目录名称,而不是以链接文件的路径来显示
mkdir 建立一个新目录
-m 选项,配置文件的权限,直接设定,不需要看预设权限
-p 选项,直接将所需要的多层目录,递归建立起来
rmdir 删除一个空目录
执行文件路径的变量:
为什么在Linux系统的任何地方都可以执行 基础命令,比如 ls
命令
因为,我们在写入命令后,系统会按照 PATH 的设定去设定每个 PATH定义的目录下搜寻文件名为
ls
的可执行文件,如果在 PATH 定义的目录中含有多个文件名为ls
的可执行文件,那么先搜寻到的同名指令先被执行。
因为基本都包含在 PATH 这个变量内了,所以基本在任何地方都可以使用 这些基本命令了
查看文件的基本操作:ls
更多选项如下:
复制文件或目录:cp
cp
指令在不同身份的人执行,会有不同的结果产生,而且差异很大
一般在备份文件的时候,如果使用cp
命令,默认 cp
的 来源档和目的档 的权限是不同的,目的档 的拥有者通常会是指令的操作者本身,就是说如果 root 用户 cp 了其他用户的目录,那么目的目录的拥有者就变为 root用了,不再是 其他用户了
所以在备份的时候,需要特别注意 特殊权限和文件,例如 密码文件(/etc/shadow
), 需要 -a
或 -p
选项才可以完整复制问价权限的选项
如果遇到 连接文件,cp
命令是默认 复制源文件,而不是复制 链接文件的属性,如果非要链接文件,就需要指定 -d
选项了
移除文件或目录:rm
在 rm
指令前 加上 \
,可以忽略 alias 的指定选项
移动文件目录或更名:mv
重命名文件,也可以使用 rename
命令
查阅文件相关操作
查阅一个文件的命令,不仅仅是 cat
命令(这个是连续 c o n c a t e n a t e concatenate concatenate的简写
cat
: 从第一行开始显示文件内容
tac
: 从最后一行开始显示,cat
命令的反写nl
: 显示的时候,可以输出行号
more
: 一页一页的显示文件内容
less
: 与more
类似,但是可以向前翻页
head
: 只看开头几行,如果 n 是负数,那么就不列出从尾计算的n行,打印从头开始的剩余行
tail
: 只看后面几行,如果要获取 中间的几行,可以配合管道符,使用head
和tail
实现
od
: 以二进制方式读取文件内容
修改文件时间或创建文件:touch
要注意一点,我们在复制一个文件时,复制左右的属性,唯独无法复制 ctime 属性
文件预设权限
我们可以通过 chmod
更改权限,但是在建立目录 或 文件 的时候,默认会有一个权限,这个权限的赋予,就是通过 umask
命令实现的:
# 八进制数字表示权限,第一位表示特殊权限,可以先忽略,重点关注后面三个
[root@AliComputer william]# umask
0022
# -S 选项执行使用字母表示权限
[root@AliComputer william]# umask -S
u=rwx,g=rx,o=rx
[root@AliComputer william]#
在默认权限属性上,umask
表示的是 该默认值需要减掉的权限,因为 r w x
可以分别用八进制数字 4 2 1
来表示,比如上面的 022
, 就表示 当前用户拥有全部权限,同组其他用户被去掉了 写权限,其他组用户被去掉了 写权限
如果要修改默认权限, 只需要 umask num
就可以了,其中 num 为 八进制权限表示数字
配置文件隐藏属性:chattr
这个指令在 系统的数据安全上有很重要的作用,最重要的就是 +i
和 +a
属性了
显示文件隐藏属性:lsattr
显示文件类型:file
搜索与文件
搜寻指令或文件:which
which 预设是找 PATH 内所规范的目录 , 所以有些 bash 命令是无法通过 which
命令找到的
文件的搜索
一般是不采用 find
命令搜索文件的,不仅仅是因为速度慢,也是因为 对硬盘操作很多,所以一般是使用 whereis
或 locate
命令来获取 文件,实在找不到了,才会考虑使用 find
命令
在特定目录中寻找文件或文件名:whereis
因为 whereis
只找几个特定的目录而已~ 并没有全系统去查询之故。所以说, whereis
主要是针对 /bin
/sbin
底下的执行档, 以及 /usr/share/man
底下的 man page 文件,跟几个比较特定的目录来处理而已。所以速度当然快的多!
文件的部分名称的搜索:locate
因为 locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/
』 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据, 速度就很快
但是一般该数据库是每天执行一次更新操作,所以入股还 没有更新数据库的话,就会找不到该文件,可以选择 手动更新数据库:updatedb
命令,updatedb 指令会去读取 /etc/updatedb.conf
这个配置文件的设定,然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件(这里就会读取硬盘,所以会很慢)
updatedb
:根据/etc/updatedb.conf
的设定去搜寻系统硬盘内的文件名,并更新/var/lib/mlocate
内的数据库
文件;locate
:依据/var/lib/mlocate
内的数据库记载,找出用户输入的关键词文件名
在硬盘中搜索文件:find
我们现在知道 atime(上一次访问该文件的时间[读取或执行该文件]), ctime(上一次修改该文件内容或访问权限等) 与 mtime(上一次修改文件内容[特指文件内容]) 的意义,如果你想要找出一天内被
更动过的文件名, 可以使用上述范例一的作法。但如果我想要找出『4 天内被更动过的文件档名』
呢?那可以使用『 find /var -mtime -4 』。那如果是『4 天前的那一天』就用『 find /var -mtime 4 』。有没有加上『+, -』差别很大!!
find
的其他用法:
还有更多用法:
find
的特殊功能:
find
命令可以实现 额外的动作,上面 范例八 的例子图解如下:
基本权限与指令
一、让用户能进入某目录成为『可工作目录』的基本权限为何:
- 可使用的指令:例如 cd 等变换工作目录的指令;
- 目录所需权限: 用户对这个目录至少需要具有 x 的权限
- 额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。
二、用户在某个目录内读取一个文件的基本权限为何?
- 可使用的指令:例如本章谈到的 cat, more, less 等等
- 目录所需权限:用户对这个目录至少需要具有 x 权限;
- 文件所需权限: 使用者对文件至少需要具有 r 的权限才行!
三、让使用者可以修改一个文件的基本权限为何?
- 可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
- 目录所需权限:用户在该文件所在的目录至少要有 x 权限;
- 文件所需权限: 使用者对该文件至少要有 r, w 权限
四、让一个使用者可以建立一个文件的基本权限为何?
- 目录所需权限: 用户在该目录要具有 w,x 的权限,重点在 w 啦!
五、让用户进入某目录并执行该目录下的某个指令之基本权限为何?
- 目录所需权限:用户在该目录至少要有 x 的权限;
- 文件所需权限:使用者在该文件至少需要有 x 的权限
磁盘与文件系统管理
第七章–暂时跳过
压缩打包与备份
使用压缩文件最大的好处就是压缩后的文件容量变小了,存储在硬盘中可以存储更多资源,在网络传输中没有与数据量的降低,也可以让网络带宽可以有更多的其他工作
由于 Linux下的 压缩指令很多,为了区分不同压缩指令产生的压缩文件,就使用不同的 后缀名 来区分了,有如下压缩文件后缀名:
压缩文件命令gzip bzip2 xz
gzip
命令
gzip
可以说是应用度最广的压缩文件了,可以 解压缩 compress
zip
gzip
等压缩文件,使用 gzip
压缩文件得到的是 .gz
的后缀名
基本语法如下:
在使用 gzip
进行压缩的时候,在预状态下,原本的文件会被压缩成 .gz
的文件名,源文件就不存在了,解压缩也是同理
使用 gzip
压缩的文件,是可以在 Windows系统下被 winRAR
或 7zip
等软件解压的
虽然 gzip 提供 1~9 的压缩等级,不过使用默认的 6 就非常好用了!
使用如下:
# 压缩文件
[root@AliComputer learn]# gzip test.txt
[root@AliComputer learn]# ll
total 4
-rw-r--r-- 1 root root 93 May 10 14:55 test.txt.gz
# 解压缩文件
[root@AliComputer learn]# gzip -d test.txt.gz
[root@AliComputer learn]# ll
total 4
-rw-r--r-- 1 root root 70 May 10 14:55 test.txt
如果你还想要从文字压缩文件当中找数据的话,可以透过 zgrep
来搜寻关键词喔!而不需要将压缩文件解开才以 grep 进行! 这对查询备份中的文本文件数据相当有用!
使用如下:
[root@AliComputer learn]# ll
total 8
-rw-r--r-- 1 root root 93 May 10 14:55 test.txt.gz
-rw-r--r-- 1 root root 70 May 10 15:02 t.txt
# 直接在压缩文件中搜索
[root@AliComputer learn]# zgrep -n 'hello' test.txt.gz
6:hello
bzip2
命令
若说 gzip
是为了取代 compress
并提供更好的压缩比而成立的,那么 bzip2
则是为了取代 gzip
并提供更佳的压缩比而来的
bzip2
的使用和 gzip
基本一致
虽然压缩率提高了,但是压缩的时间也会更长
xz
命令
压缩比更高,但耗时也更长了,基本参数如下:
打包指令
上面提到的压缩指令,大多只能对 单一文件 进行压缩,虽然也能对目录进行压缩,不过这里的对目录压缩是:将目录内的所有文件分别进行压缩
将多个文件或目录打包成一个大文件的指令功能,就是 打包指令,tar
命令可以将多个目录或文件打包成一个大文件,同时还可以透过 gzip/bzip2/xz
的支持,将该文件同时进行压缩
tar
命令的 选项非常多,这里只列举几个常用的:
如果使用 -P
选项,就会带上 根目录,这样在解压缩的时候,就识别出 绝对路径,进而解压缩得到的目录就会覆盖已经存在的目录,所以为了 备份数据的安全性,还是不要使用 -P
选项好一点
基本的命令就下面三个:
# 压缩文件
tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
# 查询压缩文件内部的文件
tar -jtv -f filename.tar.bz2
# 解压缩,如果不指定 -C, 就是默认在当前目录解压缩
tar -jxv -f filename.tar.bz2 -C 要解压的目录
那个
filename.tar.bz2
是我们自己取的档名,tar
并不会主动的产生建立的档名喔!我们要自定义啦!
所以扩展名就显的很重要了!如果不加[-z|-j|-J]
的话,档名最好取为*.tar
即可。如果是-j
选项,代表有bzip2
的支持,因此档名最好就取为*.tar.bz2
,因为bzip2
会产生 .bz2 的扩展名之故! 至于如果是加上了-z
的gzip
的支持,那档名最好取为*.tar.gz
基本使用:
还可以实现,仅解压缩得到 压缩文件中的一部分内容:
--exclude="file"
的动作,我们可以将几个特殊的文件或目录移除在打包之列,让打包的动作变的更简便
利用 管道符和数据流 可以实现 将待处理的文件一边打包,一边解压缩到目标目录中,这个操作就类似于 cp -r
实现的复制
XFS文件系统备份与还原
8.4 章 --暂且跳过
光盘写入工具
8.5 章 --暂且跳过
其他常见的压缩与备份工具
8.6 章 --暂且跳过
Vim
基本使用
Vim 分为三种模式:
- 一般指令模式command mode:
刚进位Vim的模式可以使用 上下左右移动光标,查看文件,删除、复制、粘贴的操作 - 编辑模式insert mode:
在按下i I o O a A r R
等任意一个字母进入的模式,按下ESC
即可 退出该模式 - 指令列命令模式command-line mode
在一般模式下,输入: / ?
后,光标进入最底下的列,可以提供 读取、存盘、取代、退出、显示行号等操作
Vim下常用按键的说明:
一般指令模式的常用按键:
一般指令模式切换到编辑模式:
一般指令模式切换到指令列模式:
在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。 举例来说,要删除 50 列,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 列呢?那就是『20j』或者是『20↓』即可
指令不在于背,只要多用,自然就熟悉了
如果在使用 vim 进行编辑工作时,不小心因为种种原因而中断退出了(没有保存修改),vim会给出一定的解决方案,因为在Vim 中编辑的时候,会默认建立一个缓存文件:*.conf
,该文件就用来存储临时信息,这样未保存的文件,在下次打开的时候,就会 自动读取 *.conf
并要求用户给出解法方案:
使用 Vim 还可以实行 区块选择功能,可以选择一部分区域,然后进行操作:
多文件编辑
使用 Vim 可以实现多文件编辑,首先在编辑的时候,选择同时编辑多个文件,然后通过下面的命令就可以在不同的文件之间切换,或者 复制粘贴了:
多窗口编辑
Vim 可以实现多窗口编辑,在编辑一个文件的同时,如果需要参考其他文件,就可以 通过命令模式,再打开一个窗口,同时 编辑另外一个文件,通过 :sp filename
命令实现
Vim 的关键字补全
Vim 已经是实现通过颜色来区分不同关键字了,重点是如果通过 关键字自动补全,Vim也提供了关键字补全功能,但是与 Windows下的其他软件完善的关键字补全使用 Tab
键实现,Vim 下是使用 组合键实现的:
Vim环境设定与记录
使用Vim时,各种操作都会被 Vim 主动记录下来,这些记录就存储在 用户的家目录下:~/.viminfo
, 该文件 自动产生,不用自行建立
还有平时使用 Vim设定的一些习惯,比如打开文件默认就显示行号等,都是通过 Vim的环境文件配置的,下面列出几个Vim 常用的环境设定参数:
这些Vim 参数就在 /etc/vimrc
这个文件中保存设置,但是一般不建议修改这个文件,因为这个文件是全局的,如果有特殊需求,就通过修改 当前用户的家目录下的配置文件,实现特殊化就可以了,该文件在:~/.vimrc
,这个文件默认是不存在的,需要手动建立,下面提供了一份可以参考的设置文件:
其他使用注意事项
中文编码问题
就是中文显示乱码的问题,一般就是 字符编码格式的问题,肯定是需要修改字符编码格式了,现在主流是使用utf-8
编码了,但是目前我没有遇到这样的问题,如果遇到了,就去 Google,肯定好解决
断行字符
在DOS下的断行字符为^M$
,称为 CR 和 LF 两个符号,在 Linux下仅有 LF($)
这一个 断行符号,这样如果使用 Linux执行 DOS下的脚本文件,由于 断行符 不同,就会导致 程序无法执行的情况,可以 安装 专门的 字符转换软件 实现 这个转换
《鸟哥的Linux私房菜》9.4.2节有详细介绍
语系编码转换
Linux可以自动实现 编码转换,通过 iconv
指令实现:
如果要将 繁体的utf-8 编码转换为简体的utf-8就稍微有一点麻烦了,需要如下操作:
最后
一起提高,慢慢变强。