名称不存在或不是目录_大数据从入门到深入:LINUX 04 文档目录管理
1 linux 目录结构
bin: 存放二进制可执行文件(ls,cat,mkdir等)
boot: 存放用于系统引导时使用的各种文件
dev: 用于存放设备文件
etc:存放系统配置文件 /etc/profile /etc/passwd /etc/shadow
home: 存放所有用户(除了root)文件的根目录
lib:存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt:系统管理员安装临时文件系统的安装点
opt:额外安装的可选应用程序包所放置的位置
proc:虚拟文件系统,存放当前内存的映射
root:超级用户目录
sbin:存放系统管理命令
tmp:用于存放各种临时文件 你的电脑 --> jdk --> tmp --> 安装 --> 清空 tmp目录 定时任务 每天早上上班之前清空昨天的tmp
usr:用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据;
= windows Program Files
var:用于存放运行时需要改变数据的文件
2 建立文件和目录
2.1 建立目录:mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
命令格式:
mkdir [-参数] 目录
命令功能:
通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,同一目录下所创建的文件夹(目录)不能相同(区分大小写)。
参数:
-m:--mode=模式,设定权限<模式> (类似 chmod),数字类型;
-p:--parents 可以是个路径名, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
示例:
1)创建一个空目录:dir2
mkdir dir2
2)递归创建多个目录:dir3/dir31
mkdir -p dir3/dir31
3)创建权限 为777 的目录dir4
mkdir -m 777 dir4
创建的目录other能查看目录下的内容,不能增加文件和目录
mkdir -m 775 dir5
2.2 建立一个空文件:touch
命令格式:
touch 文件
命令功能:
创建一个 空文件。
示例:
创建f3文件
touch f3
3 移动、复制和删除文档3.1 移动和重命名:mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来移动文件或者目录。
命令格式:
mv [-参数] 源目录或文件 目标文件或目录
命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
参数:
-b :若需覆盖文件,则覆盖前先行备份。
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
如果目标文件已经存在,如果当前用户是root 用户,不写 -i 也会提示,而新建的用户,则不会提示。原因在于用户家目录下的.bashrc 文件中配置了别名
而新建的用户家目录下的.bashrc 文件没有配置别名。
如果想新建的用户也提示,则在.bashrc 文件中配置,然后用下面命令使修改生效
# 重新刷新自己的环境变量
source .bashrc
文件重命名
将f2 移动到dir6目录里面
目录dir6 重命名为dirn
将dir 移动到dir7目录里面
-i -b
root 用户不需要 mv -i 一样可以提示
示例:
1)文件改名
2)移动单个文件
mv f1 dir1
3)移动多个文件
4)将文件file1.txt改名为file2.txt,如果file2已经存在,则询问是否覆盖
一种:
mv -i
第二种:
用户的家目录下,.bashrc 文件中加 别名,
然后 用 source .bashrc 使得配置生效。
mv
5)目录的移动
mv dir dir1
6)文件被覆盖前做简单备份,前面加参数-b
mv -b
3.2 复制:cp
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,并且.bashrc文件中已经配置了cp的别名,就会询问是否覆盖,不管你是否使用-i 参数。
命令格式:
cp [-参数] 源目录或文件 目标文件或目录
命令功能:
将源文件复制至目标文件,或将多个源文件复制至目标目录。
参数:
-a: –archive 递归复制文件目录,并且复制的文件的属性也一致
-i: –interactive 覆盖前询问
-R:递归处理,将指定目录下的文件及子目录一并处理
示例:
1)复制单个文件到目标目录,文件在目标文件中不存在。
2)复制单个文件到目标目录,文件在目标文件中已存在。
cp -i file1.txt dir3
3)复制单个文件到目标目录,文件属性都是一样的
cp -a
4)复制整个目录到目标目录
cp -R
3.3 删除:rm
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
命令格式:
rm [-参数] 文件或目录
命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
参数:
-f: --force 忽略不存在的文件,从不给出提示。
-i:--interactive 进行交互式删除
-r, -R: --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
示例:
4 改变文档所有权、文档权限
4.1 改变文档的所有权:chown(change own)
chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
命令格式:
chown [选项]... [所有者][:[组]] 文件或目录...
命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。
普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
参数:
-R 处理指定目录以及其子目录下的所有文件
#更改所属用户
[root@localhost ~]# chown vuser1 f1
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root root 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
[root@localhost ~]# #更改目录的所属组
[root@localhost ~]# chown :vuser1 dir8
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
[root@localhost ~]#
[root@localhost ~]# echo '123' > f3
[root@localhost ~]# ll
总用量 12
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 root root 4 11月 9 15:20 f3
[root@localhost ~]#
[root@localhost ~]# cp f3 f4
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 root root 4 11月 9 15:20 f3
-rw-r--r--. 1 root root 4 11月 9 15:21 f4
[root@localhost ~]#
#修改f3 文件的所属用户和组
[root@localhost ~]# chown vuser1: f3
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:20 f3
-rw-r--r--. 1 root root 4 11月 9 15:21 f4
#修改f4 文件的所属用户和组
[root@localhost ~]#
[root@localhost ~]# chown vuser1:vuser1 f4
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:20 f3
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:21 f4#递归修改dir8目录下所有的所属用户和组为 vuser1
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 root vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:20 f3
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:21 f4
[root@localhost ~]#
[root@localhost ~]# chown -R vuser1: dir8
[root@localhost ~]# ll dir8
总用量 0
-rw-r--r--. 1 vuser1 vuser1 0 11月 9 14:52 f1
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 953 11月 8 10:40 anaconda-ks.cfg
drwxr-xr-x. 2 vuser1 vuser1 15 11月 9 14:52 dir8
-rw-r--r--. 1 vuser1 root 12 11月 8 11:08 f1
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:20 f3
-rw-r--r--. 1 vuser1 vuser1 4 11月 9 15:21 f4
示例:
1)改变文件拥有者
2)改变文件群组
3)改变文件拥有者和群组
4)改变指定目录以及其子目录下的所有文件的拥有者和群组
4.2 改变文件的所属组:chgrp
在Linux系统里,文件或目录的权限的掌控以拥有者及所属群组来管理。可以使用chgrp 指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以。
Chgrp命令就是change group的缩写!要被改变的组名必须要在/etc/group文件内存在才行。
命令格式:
chgrp [选项] [组] 文件或目录
命令功能:
chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。
参数:
-R 处理指定目录以及其子目录下的所有文件
示例:
1)改变文件所属群组
chgrp vuser1 f1
2)改变指定目录以及其子目录下的所有文件的群组属性
chgrp -R vuser1 dir1
4.3 改变文档权限:chmod
chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
4.3.1 符号类型改变档案权限
命令格式:
参数:
权限范围
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
符号类型的适合加减权限,不适合设定。
示例:
1)设置文件拥有者(读、写、执行权),组拥有(读、执行权),其他拥有者组拥有(读权)
chmod u=rwx,g=rx,o=r f1.txt
2)给 文件所有用户组加可执行权
4.3.2 数字类型改变档案权限
命令格式:
chmod [参数]三位权限数字 文件或目录
参数:
-R 处理指定目录以及其子目录下的所有文件
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
示例:
1)设置文件拥有者(读、写、执行权),组拥有(读、执行权),其他拥有者组拥有(读权)chmod 754 f1
2)设置目录及其子目录 拥有者(读、写、执行权),组拥有(读、执行权),其他拥有者组拥有(读权)chmod -R 754 dir1
5 建立链接:ln
ln 是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的
目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放
上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
5.1 硬链接
硬链接的意思是一个档案可以有多个名称,存在同一个文件系统中。
多个名称共用一个inode号,对文件系统来说是完全平等的,如果删除了其中一个,对另外一个没有影响。
每增加一个文件名,inode节点上的链接数增加一;每删除一个对应的文件名,inode节点上的链接数减一;直到为0,系统就会回收这个inode号码,以及其所对应block区域。
不允许给目录创建硬链接。
如果文件有有多个硬链接,删除任意一个,其他硬链接都能获取到文件内容。 硬链接只有在同一个文件系统中才能创建。
命令格式:
ln 源文件 目标文件
示例:
5.2 软链接
文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向
文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。
这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会
因此发生变化。
而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,可以跨越不同的文件系统。
软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 软链接可以 跨文件系统 ,硬链接不可以 软链接可以对一个不存在的文件名进行链接 软链接可以对目录进行链接
windows 的快捷方式。
命令格式:
ln -s 源文文件或目录 目标文件或目录
示例:
[root@localhost vuser1]# ln /home/vuser1/rtest4/dir2 dir2link
ln: "/home/vuser1/rtest4/dir2": 不允许将硬链接指向目录[root@localhost vuser1]# ln -s /home/vuser1/rtest4/dir2 dir2link[root@localhost vuser1]# ll | grep dir2link
lrwxrwxrwx. 1 root root 24 7月 25 16:32 dir2link ->/home/vuser1/rtest4/dir2
/etc/profile 文件
6 输入输出重定向和管道
对于任何一条linux 命令执行,它会是这样一个过程:
一个命令执行了: 先有一个输入:输入可以从键盘,也可以从文件得到。 命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕 命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕
三种输入输出的代码分别是:
1)标准输入(stdin);代码为 0 ; 2)标准输出(stdout):代码为 1 ; 3)错误输出(stderr):代码为 2 ;
标准重定向符号
> 输出重定向到一个文件或设备 覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序 标准错误重定向符号
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出
6.1 输出重定向
将标准输出到屏幕的信息重定向输出到指定文件内。
为何要使用命令输出重导向
• 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
• 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
• 一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果,希望他可以存下来时;
• 一些执行命令,想查看错误信息时;
• 错误讯息与正确讯息需要分别输出时。
常用输出重定向
cmd > file 把 stdout 重定向到 file 文件中;
cmd >> file 把 stdout 重定向到 file 文件中(追加);
cmd 1> file 把 stdout 重定向到 file 文件中;
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;
cmd 2> file 把 stderr 重定向到 file 文件中;
cmd 2>> file 把 stderr 重定向到 file 文件中(追加);
cmd >> file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中(追加);
示例:
1)将错误输出重定向 到err.log 输出
lasdf 2>err.log
2)将标准输出重定向到 out.log
ls > 1.log
3)把 stdout 和 stderr 一起重定向到 file 文件中(覆盖或追加)
4)将多个文件的内容写到一个文件里
6.2 输入重定向:cat
将标准从键盘输入改为从文件输入。
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。下面简单说明几种使用方式和作用
1)cat << EOF,以EOF输入字符为标准输入结束:
2)cat > filename,创建新文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
3)cat > filename << EOF,以EOF作为输入结束,其中EOF可以是任何字符串,和ctrl+d的作用一样:
如何进行标准的输入
示例:
1)cat << EOF
2)cat > filename
3)cat > filename << EOF
/etc/passwd --> zwm --> 标准的输入 --> find -user?
一个文件 通过命令输出 然后作为下一个命令的输入 再完成操作
6.3 管道符号:|
利用Linux所提供的管道符 “|” 将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
command1正确输出,作为command2的输入,然后comand2的输出作为,comand3的输入,comand3输出就会直接显示在屏幕上面了。
通过管道之后:comand1,comand2的正确输出不显示在屏幕上面。
注意:
1)管道命令只处理前一个命令正确输出,不处理错误输出。
2)管道命令右边命令,必须能够接收标准输入流命令才行。
示例:
1)在文件中查找某个匹配的字符串
2)在目录中查找某个文件
3) 管道符号| 后面如果是grep , 可支持正则表达式
4)多级管道
如果管道前面的结果你报错,查询终止,直接输出错误信息
名称不存在或不是目录_大数据从入门到深入:LINUX 04 文档目录管理相关推荐
- sparkstreaming监听hdfs目录_大数据系列之Spark Streaming接入Kafka数据
Spark Streaming官方提供Receiver-based和Direct Approach两种方法接入Kafka数据,本文简单介绍两种方式的pyspark实现. 1.Spark Streami ...
- java jdbc jar包_大数据从入门到深入:JavaEE 之 数据库技术 JDBC(1)
1章 JDBC 1.1 JDBC概述 JDBC(Java DataBase Connectivity,java动态数据 库连接技术)是一种用于执行SQL语句的Java API : Applicatio ...
- 混合高斯模型_大数据小白入门高斯混合模型(GMM)聚类算法
导读 高斯混合模型(Gaussian Mixture Model)通常简称GMM,是一种业界广泛使用的聚类算法,属于生成式模型,它假设所有的数据样本都是由某一个给定参数的 多元高斯分布 所生成的.从中 ...
- 5获取按钮返回值消息_大数据从入门到深入:JavaEE 之 项目实战 项目基础编码阶段(5)...
2.5 学生信息删除 2.5.1 产品经理阶段 操作要求 : 点击页面的删除按钮,弹出删除提示框,确定后删除学生信息和学生的考试成绩; 2.5.2 项目经理阶段 业务分析 : 删除学生信息的时候还要删 ...
- jsp 动态添加一行数据_大数据从入门到深入:JavaEE 之 动态网页开发基础 JSP的数据交互(3)...
1.7 JSP实战 1.7.1 需求说明 : 采用model 1模式开发数据库表的增删改查业务 假设 数据库有一张表叫person表,完成person表的页面级别的 查询全部 添加 修改 删除 功能 ...
- wps如何在目录里面打省略号_在wps中怎么让文档目录的省略号对齐 - 卡饭网
怎么在WPS中快速统计文档字数? 怎么在WPS中快速统计文档字数? 相信很多小伙伴在日常办公中都有用到WPS,在其中如何才能统计文档字数呢?方法很简单,下面小编就来为大家介绍.具体如下:1. 首先,打 ...
- 用VBA在Word文档中每页页眉插入返回文档目录中相应位置的超链接
[说明]此文中在页眉插入跳转到目录项的超链接的代码几经改进,但改进后并未删除改进之前的代码,是为了有个对比利于学习.如果想节约时间,该步骤可直接查看该部分最后一个代码块. 对于Word长文档,标准做法 ...
- YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序
1.如果发现yuidoc命令用不了,那就重装nodejs吧 昨天不知道是清扫电脑的原因,yuidoc命令用不了(命令不存在),也没有找到好的解决方法,怒重装YUIDoc也不行.最后想了想,怒重装了no ...
- python工程师干什么的_大数据开发工程师薪资待遇及招聘要求?
目录: 大数据开发是干什么的? 大数据开发需要掌握哪些技术?学习路线如何? 大数据开发需要掌握数学知识吗? 大数据开发就业前景如何? 大数据开发工程师薪资待遇及招聘要求? 大数据开发是干什么的? 大 ...
- 云计算和python学哪个_大数据、云计算该如何学习?
大数据之Linux+大数据开发篇 阶段一.大数据.云计算 - Hadoop大数据开发技术 课程一.大数据运维之Linux基础 本部分是基础课程,帮大家进入大数据领域打好Linux基础,以便更好地学习H ...
最新文章
- HDFS Java 客户端使用(Windows开发环境)
- strtus2改成springboot_jdk1.6环境下struts2改spring boot方案-阿里云开发者社区
- salesforce开发入门1
- MYSQL 如果把数据文件保存到其他磁盘里
- php 启动管理工具下载,phpPgAdmin|PostgreSQL管理工具(phpPgAdmin)下载v5.0.4 开源版 - 欧普软件下载...
- oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...
- Linux下svn搭建配置
- jQuery学习笔记(一)——基础选择器、过滤选择器、表单选择器
- 在代码中使用协程(一)
- oracle开机自启动、监听自启动设置
- 第五讲 C#中的异常处理
- springboot导出pdf文件(简历)
- Rework 读后感
- [渝粤教育] 盐城师范学院 高等代数 参考 资料
- java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...
- 混合波束成形|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形
- 天池AI学习全面升级,所有学习资源都给你你汇总好啦!
- storyboard 苹果启动图_使用Xcode storyboard 来提供 app 的启动屏幕
- mysql从库有张表不同步_mysql主从数据库不同步的2种解决方法
- 鸡汤_下班后,该做什么