linux常用命令学习(一)

来源:互联网 发布:殷嘉恩 let it go 编辑:程序博客网 时间:2024/06/05 02:11

一. 常用命令

1. ls 查看当前路径下的文件和文件夹的名字,相对于ls  ./

    ls -a 查看所有的文件,包括隐藏文件(以.开头的文件)

    ls -l  以列表显示文件,显示文件的权限,大小等详细信息



2.  cd  /home 切换到/home目录

    cd ../返回上一级目录;cd  ./当前目录

    cd:什么都不带,也是切换到自己的home目录。
    cd -:切换到之前的目录


3. pwd显示当前所在的目录。

4. mkdir在当前路径下创建目录,用法mkdir  test ,命令后接目录的名称,目录可以为任意后缀,没有后缀也可以。

   若一次新建多个目录,用空格隔开

   mkdir的-p选项允许你一次性创建多层次的目录,如mkdir -p aaa/bbb/ccc

   mkdir的 -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;



5. rmdir命令可以从一个目录中删除一个或多个空的子目录。

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;rmdir -p bin/os_1删除子目录os_1和其父目录bin

6. rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
   一旦删除了一个文件,就无法再恢复它。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。删除已有文件或目录之前先询问用户;

 rm –rf  test.txt (-r表示递归将指定目录下的所有文件与子目录一并处理,-f表示强制)
 rm -r * 删除当前目录下除隐含文件外的所有文件和子目录


7. cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。用法,cp  old.txt  /tmp/new.txt ,常用来备份;

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
(如有同名文件怎么处理)
-i:覆盖既有文件之前先询问用户;

8. mv 重命名或者移动文件或者目录,用法, mv old.txt new.txt

mv aa/111 aa/1234把aa下的111改名为1234


9. 打包压缩

打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

打包: tar -cvf xxx.tar * 把当前目录下的所有文件打包成xxx.tar,当前目录下的文件不变,只是多了一个xxx.tar

压缩:gzip xxx.tar 把xxx.tar 压缩成xxx.tar.gz

tar -cvf log.tar log2012.log 仅打包,不压缩!tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩 

文件备份下来,并且保存其权限:tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log,这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。

备份文件夹内容是排除部分文件: tar --exclude scf/service -zcvf scf.tar.gz scf/*


10 .解压缩

tar -zxvf /opt/soft/test/log.tar.gz由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上z这个选项了。
只将tar内的部分文件解压出来:tar -zxvf /opt/soft/test/log30.tar.gz log2013.log


11. touch命令

touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件

如touch ex2  在当前目录下建立一个空文件ex2


12. find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find.  列出当前目录及子目录下所有文件和文件夹
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;

在/home目录下查找以.txt结尾的文件名find /home -name "*.txt"
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
当前目录及子目录下查找所有以.txt和.pdf结尾的文件

find . \( -name "*.txt" -o -name "*.pdf" \) 或find . -name "*.txt" -o -name "*.pdf" 

找出/home下不是以.txt结尾的文件 find /home ! -name "*.txt" 

13. vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器有三种工作方式:命令方式、输入方式和ex转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。
默认vi打开一个文件,首先是命令行模式,然后按i进入文本输入模式,可以在文件里写入字符等等信息。
写完后,按esc进入命令模式,然后输入:进入末行模式,例如输入:wq表示保存退出。
如果想直接退出,不保存,可以执行:q!, q!叹号表示强制退出。

14. cat 查看文件内容

“cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容。

用法 cat test.txt 可以看到test.txt内容,从文件第一行开始显示内容。

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

cat m1 m2 > file (将文件ml和m2合并后放入文件file中),相当于新建了一个文件file,它的内容是前两个内容的和。

注意:“>>”和“>”调用了追加符号。它们用来追加到文件里,而不是显示在标准输出上。“>”符号会删除已存在的文件,然后创建一个新的文件。所以因为安全的原因,建议使用“>>”,它会写入到文件中,而不是覆盖或者删除。



二. 快捷键

 1. Ctrl + L: 清屏,使光标移动到第一行。

      输入clear也可以达到同样的效果。

2. Tab: 这个键最有用了,因为当你打一个命令打一半时,它会帮你补全的。不光是命令,当你打一个目录时,同样可以补全。

(一次补不全怎么办)

3. Ctrl + D: 退出当前终端,同样你也可以输入exit。
4. Ctrl + Z: 暂停当前进程,比如你正运行一个命令,突然觉得有点问题想暂停一下,就可以使用这个快捷键。暂停后,可以使用fg 恢复它。

5. Ctrl + C:这个是用来终止当前命令的快捷键,当然你也可以输入一大串字符,不想让它运行直接Ctrl + C,光标就会跳入下一行。

6.  输入man + 命令,你就会看到这个命令的帮助文档了。如man mkdir。

7.使用向上箭头键,可以直接出现之前使用过的所有命令行。


三. 文件和目录的区别

我使用mkdir新建了一个目录123.txt,本来想使用vi添加内容的,结果提示123.txt是一个目录,没有办法编辑。然后我就搜索了一下。

1.mkdir新建目录,touch新建文件

2. 如何判断一个文件时文件还是目录


使用ls -l列出当前目录下文件的详细信息
第一个区域(-rw-r--r--)代表的是文件的属性,第一个字符(这里是 -)代表的是文件的类型。- 代表普通文件,d 代表目录,l 是符号链接文件(和 Windows 下的快捷方式差不多),n 代表网络特殊文件,c 代表字符设备文件,b 代表块设备文件,p 代表命名管道。


3. 目录就是文件夹的意思,在图形化界面下 喜欢叫作文件夹,文本界面下喜欢叫目录,叫法不同而已 没有区别的

4. 体现在本质上: 
普通文件:存储普通数据,一般就是字符串。 
目录文件:存储了一张表,该表就是该目录文件下,所有文件名和inode的映射关系。

体现在命令上:
对于普通文件来说,rwx的意义是: 
r:可以获得这个普通文件的名字和内容。 
w:可以修改这个文件的内容和文件名。可以删除该文件,但是用户会得到是否删除写保护文件的prompt。 
x:该文件是否具有被执行的权限。 

对于目录文件来说,rwx的意义是: 
r-x:可以进入cd该目录,可以获得该目录下存储情况,但是不能修改这个目录内部存储的文件(目录)的名字,也不能在该目录下新建文件和目录 
-wx:可以进入cd该目录,但是看不到该目录下的存储情况(ls不可用),可以往该目录下添加、修改、删除文件。可以通过cat来读取该目录下的文件or目录的内容,由于得不到该目录下存储了那些文件,在不知情的情况下只能通过猜,cat + 文件名获得文件内容,所以这样依然不保密。 
--x:可以进入cd该目录,看不到存储情况,也不能往该目录下添加、修改、删除文件。但是依然可以通过cat + xx(猜)来获得该目录下的文件的内容。 
rw-:不能进入cd该目录,用ls仅仅可以获得文件名和目录名,因为获取不到这些文件的inode号,当然也不能获得该目录下的文件的内容。不能往该目录下添加、修改、删除文件。 


5. 最后总结一下吧: 
1.目录文件虽然是文件(唉,谁叫Linux的核心理念就是Everything is file),但是存储内容的只是一张表而已,关于文件名和inode号的映射关系。 
2.文件的扩展名和文件类型之间,没一毛钱关系。 
3.文件的文件名和文件实际存储内容之间,没一毛钱关系。 
4.要知道如何查找到一个文件内容的过程。 
5.为什么同一个文件系统移动文件要比跨文件系统快? 
答:因为只需要修改某个目录中路径和inode对应关系即可,不需要重新写一遍数据域。


四. 推荐网站

1. linux命令大全

2. 在线linux模拟器