Linux 命令相关知识
1. 命名规则
如果仅仅是自己平时练习,命名其实不重要。但是我相信每一个能够学习Linux的人都是怀揣大公司梦的,所以这时就需要多注意命名规则,因为未来不仅仅只有你自己来看你的程序,所以要从一开始养成良好的习惯.
在Windows下开发软件,许多人采用匈牙利命名法,而在Linux环境下,并不建议使用这种方法。
注:
1)除了 /之外,所有字符都合法
2)有些字符最好不要用,比如:空格、制表符、@#¥()-等
3)避免使用“.”作为普通文件名的第一个字符
4)区分大小写
(5) Linux文件后缀名无意义,但是为方便识别应定义后缀(.txt、.php等),定义后缀在大多数情况亦能将文件与目录区分
(6) 文件位置最好设置在Linux专用目录下,如配置文件大多时候放置于/etc目录下
(7) 文件夹及文件的命名尽量聚有其特定的含义。
(8) 三个特殊目录,”.”:代表当前目录,”..”:代表上一级目录,”/”:代表根目录。
2. 文件处理命令
2.1 ls 命令
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件
命令原意:list
命令路径:/bin/ls
语法: ls 选项[-a/-d/-l] [目录或文件]
例:
ls -a:显示所有文件,包含隐藏文件
* 显示了FYDragon用户下的所有文件*
ls -l:详细信息显示
* 显示了文件的详细信息(由于太多,只截一部分)*
ls -d:查看目录属性
2.2 cd 命令
cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~
也表示为home directory的意思,.
则是表示目前所在的目录,..
则表示目前目录位置的上一层目录。
命令原意:change directory
命令路径:shell内置命令
语法:cd [目录]
例:
cd / 或 cd :切换到根目录
cd .. :回到上级目录
2.3 pwd 命令
Linux pwd命令用于显示工作目录。执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
命令原意:print working directory
命令路径:/bin/pwd
2.4 touch 命令
touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
命令路径:/bin/touch
语法: touch [文件名]
例:
创建一个名为“CSDN”的文件:touch CSDN
2.5 mkdir 命令
mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下 创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。
在一个子目录中应包含类型相似或用途相近的文件。例如,应建立一个子目录,它包含所有的数据库文件,另有一个子目录应包含电子表格文件,还有一个子目录应包含文字处理文档,等等。目录也是文件,它们和普通文件一样遵循相同的命名规则,并且利用全路径可以唯一地指定一个目录。
命令原意:make dirextories
命令路径:/bin/mkdir
语法: mkdir [目录名]
例:
创建一个名为dirCSDN的目录 : mkdir dirCSDN
2.6 cp 命令
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
命令原意:copy
命令路径:/bin/cp
语法:cp [文件名]
cp -r [目录名] 注:如果要复制目录,一定要有 -r
例:
将文件file1、file2复制到目录 filebox 中 : cp file1 file2 filebox
将目录 filebox 复制到 filebox1中 : cp -r filebox filebox1
2.7 mv 命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:
- 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
- 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
命令原意:move
命令路径:/bin/mv
语法: mv [文件或目录名] [目的目录] 注:如果目的目录时当前文件,则功能变为更改文件名称
例:
将当前目录下文件 file1 更名为 file_1: mv file1 file_1
2.8 rm 命令
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。有些版本的linux会有是否删除的提示,但有些没有提示。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
命令原意:remove
命令路径:/bin/rm
语法: rm [文件]
rm -r [目录] 如果想操作目录,需加 -r
例:
删除文件 file2 : rm file2
删除目录 dir1 : rm -r dir1
//因为我的dir1中有文件,所以询问了两次
2.8 su 命令
su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法: su [用户名]
例:
切换到 root 用户: su root
//从普通用户切换到root需要输入密码。密码不可见。反之不需密码。
2.8.1 su 与 su - 的区别
前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。
2.9 cat 命令
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
命令原意:concatenate and display files
命令路径:/bin/cat
语法: cat [文件名]
例:
查看 etc/issue 的内容 : cat /etc/issue
//因为etc在root用户下,需先切换到root用户
2.10 more 命令
more命令是一个基于vi编辑器文本过滤器(vi编辑器后期我们会讲到),它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:
- 按Space键:显示文本的下一屏内容。
- 按Enier键:只显示文本的下一行内容。
- 按斜线符
|
:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。 - 按H键:显示帮助屏,该屏上有相关的帮助信息。
- 按B键:显示上一屏内容。
- 按Q键:退出rnore命令。
- 语法: more [文件名]
2.10 head/tail 命令
head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
tail命令用于显示文件的结尾的内容。在默认情况下,tail命令显示文件的后10行内容。
语法: head -num [文件名]
tail -num [文件名]
2.11 ln 命令
ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。
注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。
命令原意: link
命令路径:/bin/ln
语法:ln [源文件] [目标文件]
ln -s [文件] [目标文件]
例:
创建文件/etc/issue的软连接 /issue.soft: ln -s /etc/issue /issue.soft
创建文件/etc/issue的硬连接 /issue.hard: ln /etc/issue /issue.hard
两种链接的区别:
硬链接文件有两个限制
1)、不允许给目录创建硬链接;
2)、创建链接的前提是文件必须在同一文件系统中,而且只有root用户才有建立硬链接权限。删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。
软链接的优点:它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
软链接的缺点:文件的路径是固定的,若更改源文件的位置,则连接不到响应文件。并且要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。