一、Linux文件目录结构
在讲述之前,先简短的说说Windows文件结构,打开‘计算机’,看到的一个个的驱动器(盘符,例C盘、D盘等),点开其中任意盘符,看到的是一个个文件或文件夹,继续打开...,每个盘都有自己的根目录。若是把其打开过程画下来,便可得到如下多棵倒树并列的图形:
而在Linux下,看到的是文件夹(目录),Ubuntu没有盘符一说,只有一个根目录(/表示),同样画下来:
那有读者可能会疑惑:Linux是多用户操作系统,比较安全,而这里只有一个根文件,也就是所有用户都在根目录下面,那用户A可以随意修改其中某一文件,对于用户B来说可能会受到影响,怎么还会是安全的呢?原因:Linux在创建不同的用户时,会默认生成同名的组(group),每个组以及组内的每个用户都有相应的操作权限,一般来说普通用户是没有权限修改其他组用户或系统系统信息的(如密码验证,管理员权限,文件目录权限等),所以多个用户在同一个根目录下一般是无权夸组跨权限更改系统、它组的信息。例如:以地球为根目录,每个家庭为组,家庭成员为组内用户;小王、小吴是好邻居,一天,小王想去小王家借盐,前提是要进入小吴家中,就要有小吴的许可,进入之后,还要得到借盐许可,小王方可借到盐。Linux也一样,所以Linux还是安全的。
二、常用文件和目录命令
1).终端命令格式: 命令 [-选项][参数]
命令:相应功能英文单词或者缩写
-选项:对命令进行选择控制[注意:前面有一横杠]
参数:给命令加上范围
中括号表示可省略,例如:
$ls
$ls -ll
$ls -l test.py
2).帮助命令
命令 --help 或者是 man 命令 (注意:这里是双横杠,man是manual的简写,包含了Linux绝大部分的命令即使用说明)
如:
3).增删查改操作命令
touch/mkdir/rm/ls/pwd/cat/find/grep/more/重定向等等
touch:新建文件,若文件存在,则把上一次操作的时间改成本次时间,内容不变 mkdir:新建文件夹(目录),注意不能出现重名现象
$touch 某路径下xxx1 xxxx2....
$mkdir 某路径下yyy1 yyy2....
注意:两者支持批量创建,并且可指定路径
rm:remove的缩写,用于删除文件,加上选项 -r强行删除文件夹,包括其子内容
改命令不可恢复(无法撤销)
ls:list的缩写,查看目录下的内容 (例子在上面写过)
有-a、 -l、 -h常见选项,
-a:显示指定目录下所有子目录和文件,包括隐藏的;
-l:以列表的方式显示详细信息;
-h:配合-l以列表的方式显示文件的大小
tree:显示当前目录下的层级关系,选项-d只显示目录层级关系;也可指定目录
$tree
$tree -d
$tree -d 指定路径下的某一目录
pwd : 显示当前目录的绝对路径,print working directory
echo:向屏幕显示内容,作用像镜子一样
$echo 你好
cat:查看文件内容、 创建文件、 文件合并、 追加文件内容等功能(不存在先创建,再合并追加,存在直接操作),常与管道(接下来有讲述)配合使用。选项有-n和-b等,分别输出行号和非空行的行号,例如
history:查看此次在终端中输入的历史命令。
cd:change directory的简写,用户切换目录;
cd ~ 和cd 切换到当前用户的主目录(/home/用户目录,即根目录/家目录)位置
cd .. 上一级目录
cd . 当前目录
cd - 在当前与上一次目录之间来回切换
find:强大的搜索命令,用来在特定目录下搜索符合条件的文件或目录。
find [路径] -name "正则表达式"
如在当前目录下查找以py结尾的文件:$find -name "*.py"
grep:强大的文本搜索工具,常和管道配合使用。
常有-n、-i等选项,显示符合条件[正则表达式]行的行号,-i忽略大小写,
管道:用 | 表示,将一个命令的输出通过管道作为另一个命令的输入。
例:$cat 1.txt 2.py | 4.txt :将1.txt和2.py的内容输入到4.txt
$cat 4.txt : 打印结果和3.txt一样
$cat 1.txt 2.py | grep ‘ghd‘:管道右侧没有指定文件名,则系统会将左边结果临时放到缓冲区中,再去缓冲区查找符合条件‘ghd‘字符串的行
重定向:将执行结果重定向到一个文件。有>和>>两种方式,前者表示输出,会覆盖文件原有的内容,后者表示追加,将内容追加到已有文件的末尾。如
$1.txt 2.py > 4.txt :左边的结果会覆盖右边文件已有的内容
$1.txt 2.py >> 4.py :左边的结果追加到右边内容的末尾,不会覆盖
more:功能类似于cat,但在文件内容多的情况下,more能够分屏控制显示,cat相对视觉体验不够好。选项:空格键、-b、-f、enter键、p:作用分别是显示下一屏、回滚一屏、前滚一屏、滚动下一行、退出。
$more xxx.log : 分屏显示日志内容
$more ifconfig | grep inet :将ifconfig网卡信息临时放入缓冲区,并使用grep查找inet信息(即ip地址),注意在Windows中使用ipconfig查看网卡信息。
小结:a)Linux命令若是忽略路径,则默认使用当前路径;
b)有些命令是具备多种功能,如cat,不存在则先创建文件,在再执行响应操作
c)重定向、more、grep,没有指定文件,则默认操作缓冲区
d)说一千道一万,重要的事情说三遍:动手实践、动手实践、动手实践,只有反复去实践,才能印象深刻,记住:实践出真知!
注意:本文默认是在Ubuntu虚拟机中进行编码,日后若无特殊注明,均是在Ubuntu中进行。
(若尚未安装Linux虚拟机的朋友可以参考:在VMware虚拟机中安装Ubuntu系统)
---在下一篇:将继续讲解Linux常用命令(二) -----
文章中若有不足或错误之处,真心希望您提出意见、建议,我会尽快完善的,谢谢O(∩_∩)O谢谢
本文出自 “Python新手入门” 博客,请务必保留此出处http://1710161254.blog.51cto.com/10607212/1968256
原文地址:http://1710161254.blog.51cto.com/10607212/1968256