命令提示符

[root@localhost ~]#

root:当前登录用户
localhost:主机名
~:当前所在的目录,此处为“家”目录
#:root超级用户的提示符,如果是普通用户,则为 $

命令格式

命令 [选项] [参数]

中括号 [] 表示可选

查询目录中的内容:ls

ls [选项] [文件或目录]

选项:
-a : 显示所有文件,包括隐藏文件
-l : 显示详细信息
-d : 查看目录属性
-h : 人性化显示文件大小
-i : 显示inode

根据以上选项,敲入命令,显示结果分别如下:

[root@localhost ~]# ls
anaconda-ks.cfg test
[root@localhost ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .tcshrc test
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 12 19:26 test
[root@localhost ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
[root@localhost ~]# ls -ld test/
drwxr-xr-x. 2 root root 6 Nov 12 19:26 test/
[root@localhost ~]# ls -lh
总用量 4.0K
-rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 12 19:26 test
[root@localhost ~]# ls -i
71259104 anaconda-ks.cfg 36099565 test

请注意观察 ls -l 与 ls -lh 命令的结果的区别

这里需要解释一下:

-rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 12 19:26 test

首先第一个符号 “-”(引号内的-),表示文件类型(常用的有三种,即-表示文件,d表示目录,l表示软链接文件),此外还有不常用的,为块设备文件,字符设备文件、套接字文件、管理文件。

在上述中,我们可以看到 anaconda-ks.cfg 是一个文件,而 test 是一个目录(可理解为windows的文件夹的概念)。

其次,除去第一个符号,我们来看rw-------,一共有九个字符,需分为三组,分别为rw-,---,---,每个组按照顺序分别表示u所有者,g所属组,o其他人的权限。在上述中,分别对应为 root,root。即第一个root表示所有者权限为root权限,第二个root表示所属组的权限也是root权限,对于其他人,则无所谓的权限可言。

其中,r表示可读,w表示可写,x表示执行的权限。

为了更加明白,对于 anaconda-ks.cfg 这个文件,这里列一个表格:

前三个字符 中间三个字符 后三个字符
rw- --- ---
所有者u的权限 所属组g的权限 o其他人的权限
可读可写 无权限 无权限

那么,对于 test 这个文件 rwxr-xr-x,请读者自行判断它的权限。

在九个字符之后的点 “.”,表示ACL权限,之后的数字 1 表示引用计数,比如一个文件有一个软链接(类似windows快捷方式),那么它的引用计数就是2。

root 后面的2.7k表示文件的大小,再后面表示日期,最后是文件的名称。

目录处理命令

创建目录:mkdir

mkdir -p [目录名]

-p : 递归创建

[root@localhost ~]# ls
anaconda-ks.cfg test [root@localhost ~]# mkdir otherFolder
[root@localhost ~]# ls
anaconda-ks.cfg otherFolder test [root@localhost ~]# mkdir folder_2/test_2
mkdir: 无法创建目录"folder_2/test_2": 没有那个文件或目录 [root@localhost ~]# mkdir -p folder_2/test_2
[root@localhost ~]# ls
anaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# ls folder_2/
test_2

如上所示,mkdir 不加选项 -p 时,可以创建一个空目录,但是无法递归创建一个包含子目录的目录。加上 -p 即可递归创建。

切换所在目录:cd

cd [目录]

操作:

  • cd ~ : 进入当前用户的家目录
  • cd-: 进入上次目录
  • cd.. : 进入上一级目录
  • cd : 回到家目录
[root@localhost ~]# ls
anaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# cd /folder_2/test_2
[root@localhost test_2]# cd
[root@localhost ~]# cd -
/root/folder_2/test_2 [root@localhost test_2]# cd ../../otherFolder
[root@localhost otherFolder]# cd ..
[root@localhost ~]#

注意理清概念:相对路径和绝对路径

绝对路径:从根目录一级级找下去,需要写全路径

[root@localhost ~]# cd folder_2/test_2
[root@localhost test_2]#

相对路径:参照当前所在目录进行查找

[root@localhost test_2]# cd ../../otherFolder
[root@localhost otherFolder]#

查询所在目录位置:pwd

pwd

可以说是最简单的命令了,查询所在目录的位置

[root@localhost ~]# pwd
/root [root@localhost ~]# ls
anaconda-ks.cfg folder_2 otherFolder test
[root@localhost ~]# cd folder_2/
[root@localhost folder_2]# ls
test_2
[root@localhost folder_2]# cd test_2/ [root@localhost test_2]# pwd
/root/folder_2/test_2

删除空目录:rmdir

rmdir [目录名]

只能删除空目录,这个命令用得比较少。

[root@localhost ~]# ls
anaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# rmdir otherFolder
[root@localhost ~]# ls
anaconda-ks.cfg folder_2 test [root@localhost ~]# rmdir folder_2
rmdir: 删除 "folder_2" 失败: 目录非空
[root@localhost ~]#

删除文件或目录:rm

rm -rf [文件或目录]

r 表示可以同时删除文件和目录,f表示强制删除

  • 如果不添加任何选项,那么只可以删除文件,删除时提示是否确认删除
  • 如果只添加选项 -r,那么可以删除文件也可以删除目录,删除时提示是否确认删除
  • 如果添加了选项 -rf,那么将不做任何提示删除文件或目录
[root@localhost ~]# ls
abc.txt anaconda-ks.cfg folder_2 test [root@localhost ~]# rm abc.txt
rm:是否删除普通空文件 "abc.txt"?y [root@localhost ~]# rm test
rm: 无法删除"test": 是一个目录
[root@localhost ~]# rm -r test
rm:是否删除目录 "test"?y [root@localhost ~]# ls
anaconda-ks.cfg folder_2 [root@localhost ~]# rm -rf folder_2
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]#

复制命令:cp

cp [选项] [原文件或目录] [目标目录]

选项:
-r : 复制目录
-p : 同时复制文件属性
-d : 若源文件是链接文件,则复制链接属性
-a : 包含以上所有选项,相当于 -rpd

在[目标目录]后面加上文件名,就是改名复制。

[root@localhost ~]# ls
anaconda-ks.cfg bbc.txt folder_a folder_b [root@localhost ~]# cp bbc.txt folder_a [root@localhost ~]# ls folder_a/
bbc.txt [root@localhost ~]# cp folder_a folder_b
cp: 略过目录"folder_a"
[root@localhost ~]# cp -r folder_a folder_b
[root@localhost ~]# ls folder_b
folder_a test_1 [root@localhost ~]# ll
总用量 4
-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Nov 13 17:21 bbc.txt
drwxr-xr-x. 2 root root 20 Nov 13 17:38 folder_a
drwxr-xr-x. 4 root root 34 Nov 13 17:39 folder_b [root@localhost ~]# ll folder_a
总用量 0
-rw-r--r--. 1 root root 0 Nov 13 17:38 bbc.txt [root@localhost ~]# cp -a bbc.txt folder_b [root@localhost ~]# ll folder_b
总用量 0
-rw-r--r--. 1 root root 0 Nov 13 17:21 bbc.txt
drwxr-xr-x. 2 root root 20 Nov 13 17:39 folder_a
drwxr-xr-x. 2 root root 6 Nov 13 17:38 test_1
[root@localhost ~]#

这里需要解释一下的是,在原文件 bbc.txt 中,其修改时间为 17:21,在普通复制下,它的时间这个属性是不会被复制,我们可以看到复制后的bbc.txt的时间为17:38,如果需要连同属性一起复制,那么就加上 -pd 或者 直接 -a,如上所示,我们把bbc.txt复制到folder_b,这时我们查看属性的时候,时间属性和原属性是一致的。

在上述命令中,ll 是 ls -l 的简写。

剪切或改名命令:mv

mv [原文件或目录] [目标目录]

  • 如果原文件或者目录 与 目标目录在同一个目录下,那么就是重命名
  • 如果不在同一个目录下,那么就是剪切

通过以下实践理解:

[root@localhost ~]# ls
anaconda-ks.cfg bbc.txt [root@localhost ~]# mv bbc.txt abc.txt
[root@localhost ~]# ls
abc.txt anaconda-ks.cfg [root@localhost ~]# mkdir test
[root@localhost ~]# ls
abc.txt anaconda-ks.cfg test [root@localhost ~]# mv abc.txt test/
[root@localhost ~]# ls
anaconda-ks.cfg test [root@localhost ~]# ls test/
abc.txt
[root@localhost ~]#

链接命令:ln

ln -s [原文件] [目标文件]

生成链接文件
-s : 创建软连接

硬链接的特征:

  • 拥有相同 i 节点和存储block块,可以看做是同一个文件
  • 可通过i节点识别,i节点是相同的
  • 不能跨分区
  • 不能针对目录使用

通过上述命令,可以理解为为某个内容添加一个标签,通过打开这个标签就可以进入这个内容,硬连接,即再生成一个标签,同样可以通过这个标签进入这个内容。

如果内容被修改,那么不管从硬链接的哪个文件进入,都是被修改的。

软链接的特征:

  • 类似windows的快捷方式
  • 软链接拥有自己的i节点和block块,但是数据块只保存原文件的文件名和I节点号,并没有实际的文件数据
  • lrwxrwxrwx l为软链接(软链接的权限都为rwxrwxrwx,这只是软链接本身的权限)
  • 修改任意文件,另一个都改变
  • 删除原文件,软链接不能用(和windows的快捷方式一样)

硬链接:

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# mkdir folder
[root@localhost ~]# ls
anaconda-ks.cfg folder
[root@localhost ~]# touch bbb.txt
[root@localhost ~]# ls
anaconda-ks.cfg bbb.txt folder
[root@localhost ~]# ln bbb.txt folder/ccc.txt
[root@localhost ~]# ll folder/
总用量 0
-rw-r--r--. 2 root root 0 Nov 13 18:08 ccc.txt
[root@localhost ~]# ll bbb.txt
-rw-r--r--. 2 root root 0 Nov 13 18:08 bbb.txt

软链接:

[root@localhost ~]# mkdir folder_b
[root@localhost ~]# ln -s bbb.txt folder_b/eee.txt
[root@localhost ~]# ll
总用量 4
-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
-rw-r--r--. 2 root root 0 Nov 13 18:10 bbb.txt
drwxr-xr-x. 2 root root 20 Nov 13 18:09 folder
drwxr-xr-x. 2 root root 20 Nov 13 18:11 folder_b
[root@localhost ~]# ll folder_b
总用量 0
lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt
[root@localhost ~]# rm -rf bbb.txt
[root@localhost ~]# ll folder_b
总用量 0
lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt

删除了原文件,软链接的箭头目标为红色一闪一闪,表示找不到目标文件。

常用目录作用

[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys temp tmp usr var

说明:

  • / 根目录
  • /bin 命令保存目录(普通用户权限)
  • /sbin 命令保存目录(root权限)
  • /boot 启动目录,包含启动相关文件,和开机有关
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录
  • /home 普通用户家目录
  • /lib 系统库保存目录
  • /mnt 系统挂载目录
  • /media 挂载目录(常用于光盘挂载)
  • /root 超级用户家目录
  • /tmp 临时目录
  • /proc 直接写入内存的
  • /sys 直接写入内存的
  • /usr 系统软件资源目录
  • /var 系统相关文档内容
 

目录

作者:Tab Weng
Email:hlwyfeng(Geek)gmail.com 请将(Geek)换成@ 
出处:博客园 Tab Weng的博客:http://www.cnblogs.com/hlwyfeng

[moka同学笔记]Linux命令基本格式及目录处理命令的更多相关文章

  1. [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效

    症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>

  2. Linux命令基本格式及目录处理命令

    命令提示符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在的目录,此处为"家"目录 #:root超级用户的提示符,如果是普 ...

  3. [moka同学笔记]linux服务器防火墙的设置

    网站突然打不开:服务器停止了,重启后,防火墙自动启动,导致网站打不开. 1.查看防火墙 systemctl status firewalld 2.关闭防火墙 systemctl stop firewa ...

  4. [moka同学笔记]yii2.0查询数据库

      一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all()   二. [id=1]  选 ...

  5. [Linux] 006 命令格式与目录处理命令

    1. 命令格式 命令 [-选项] [参数] 如,ls -la /etc 说明 个别命令使用不遵循此格式 当有多个选项时,可以写在一起 简化选项与完整选项 如,-a 为简化选项,--all 为完整选项 ...

  6. (三)Linux命令基本格式以及文件处理命令

    命令基本格式 (1)命令提示符 如下是命令行的命令提示符,以此为例,讲解含义. 其中: root 当前登录用户名 localhost 主机名 ~ 当前所在的目录(即家目录,用户登录的初始位置) # 超 ...

  7. [moka同学笔记]Yii2.0 modal的使用

    第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...

  8. [moka同学笔记]Yii2.0验证码

    1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...

  9. [moka同学笔记]yii2.0表单的使用

    1.创建model   /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...

随机推荐

  1. 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7  在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...

  2. RequireJS学习笔记

    前言 进入移动前端是很不错的选择,这块也是我希望的道路,但是不熟悉啊... 现在项目用的是require+backbone,整个框架被封装了一次,今天看了代码搞不清楚,觉得应该先从源头抓起,所以再看看 ...

  3. WebDriver--操控浏览器

    前一篇讲述了元素的定位方法,现在开始练习如何写自动化测试脚本 我使用的编辑工具是PyCharm,今后该博客中所写的有关Python脚本,都是在该工具中编写的. WebDriver提供了控制浏览器大小. ...

  4. SQLServer比较两条数据是否相同

    SQLServer比较两条数据是否相同 直接比较可能会一个一个字段的比较,也可以将多个字段拼成一个串然后比较,这里有个hash值比较的方法,很好用 用法 将需要的比较的column放进去,逗号隔开,只 ...

  5. 搜狗输入法wp风格皮肤

    换了个nexus 发现输入法真的没有wp的好用 没办法,刚好搜狗输入法有定制皮肤的选项,所以自己做了个wp风格的输入法皮肤. 一点微小的工作 http://pan.baidu.com/s/1kVsHd ...

  6. 前端学php之常量

    × 目录 [1]定义常量 [2]常量检测 [3]系统常量[4]魔术常量 前面的话 常量在javascript中并不存在,在php中却是与变量并列的重要内容.常量类似变量,但常量一旦被定义就无法更改或撤 ...

  7. 深入学习jQuery选择器系列第八篇——过滤选择器之伪子元素选择器

    × 目录 [1]通用形式 [2]反向形式 [3]首尾元素 [4]唯一元素 前面的话 本文是子元素选择器的续篇,主要介绍关于nth-of-type()选择器的内容.该部分内容并非没有出现在<锋利的 ...

  8. IOS开发之TabBarItem&NavigationBarItem

    想必大家都用过微信,微信间的页面切换是如何做成的呢?接下来我们用storyboard结合着代码来模拟一下微信的视图控制模式. "工欲善其事,必先利其器",下面主要是对storybo ...

  9. [c++] constexpr and literal class

    稀奇古怪的新特性,菜鸟在此啄上一啄. 1. When should literal classes be used in C++?   2. int i; // not constant const ...

  10. Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布

    来自官方日志的喜悦 被誉为全新开始的消息分析器时代,由MMA为您开启,博客原文写的很激动,大家可以点击这里浏览:http://blogs.technet.com/b/messageanalyzer/a ...