操作系统

当前位置:金沙棋牌 > 操作系统 > Linux目录结构及文件基本操作,文件管理

Linux目录结构及文件基本操作,文件管理

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-05 13:55

目录操作

'cd /home/hadoop' 把/home/hadoop设置为当前目录
'cd ..'
返回上一级目录
'cd ~' 进入到当前Linux系统登录用户的主目录(或主文件夹)。在 Linux 系统中,~代表的是用户的主文件夹,即“/home/用户名”这个目录,如果当前登录用户名为 hadoop,则~就代表“/home/hadoop/”这个目录
'mkdir input'
在当前目录下创建input子目录
'mkdir -p src/main/scala' 在当前目录下,创建多级子目录src/main/scala
'mv spark-2.1.0 spark'
把spark-2.1.0目录重新命名为spark

1.FHS标准

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件,/usr/share 放置共享数据等等。

金沙棋牌 1

logoblackfont.png

Linux常用命令总结——文件管理

首先解压scala,本次选用版本scala-2.11.1

查看

ls #查看当前目录中的文件
'ls -l ' 查看文件和目录的权限信息
'cat /proc/version'
查看Linux系统内核版本信息
'cat /home/hadoop/word.txt ' 把/home/hadoop/word.txt这个文件全部内容显示到屏幕上
'cat file1 file2 > file3'
把当前目录下的file1和file2两个文件进行合并生成文件file3
'head -5 word.txt' *把当前目录下的word.txt文件中的前5行内容显示到屏幕上

2.目录路径

 

[Hadoop@CentOS software]$ tar -xzvf scala-2.11.1.tgz

复制、删除

'cp /home/hadoop/word.txt /usr/local/ ' 把/home/hadoop/word.txt文件复制到“/usr/local”目录下
'rm ./word.txt'
删除当前目录下的word.txt文件
'rm –r ./test ' 删除当前目录下的test目录及其下面的所有文件
'rm –r test
' *删除当面目录下所有以test开头的目录和文件

2.1切换目录命令

cd ..     //进入上一级
cd ~     //进入home目录
pwd     //获取当前路径

Linux中的目录

[hadoop@centos software]$ su -

解压

'tar -zxf ~/下载/spark-2.1.0.tgz -C /usr/local/' *把spark-2.1.0.tgz这个压缩文件解压到/usr/local目录下

2.2绝对路径

以根" / "目录为起点的完整路径,以你所要到的目录为终点。如:/usr/local/bin,表示根目录下的 usr 目录中的local 目录中的 bin目录。

路径:也就是linux中的目录(文件夹)有绝对路径和相对路径

[root@centos ~]# vi /etc/profile

授权

'chown -R hadoop:hadoop ./spark ' hadoop是当前登录Linux系统的用户名,把当前目录下的spark子目录的所有权限,赋予给用户hadoop
'ifconfig'
查看本机IP地址信息
'exit ' *退出并关闭Linux终端

2.3相对路径

相对于你当前的目录的路径,相对路径是以当前目录。如:usr/local/bin(这里假设你当前目录为根目录)。

下面我们以你的 home目录为起点,分别以绝对路径和相对路径的方式进入 /usr/local/bin 目录:

绝对路径
$ cd /usr/local/bin
相对路径
$ cd ../../usr/local/bin

根目录:/

添加如下内容

3.Linux 文件的基本操作

用户主目录(home directory):位于/home目录下,用户登录时

SCALA_HOME=/home/hadoop/software/scala-2.11.1

3.1新建空白文件

$ cd ~
$ touch test

工作目录(working directory):当前目录

PATH=$SCALA_HOME/bin

3.2新建目录

$ mkdir mydir

创建多级目录 -p

$ mkdir -p father/son/grandson

当前目录查看命令:pwd (print working directory)

EXPORT SCALA_HOME

3.3复制文件

$ cp test father/son/grandson   //将之前创建的“ test ”文件复制到“/home/shiyanlou/father/son/grandson ”目录中

当前目录:./

[root@centos ~]# source /etc/profile

3.4复制目录

复制目录需要加上 -r 或者 -R 参数,表示递归复制

$ cp -r father family

当前目录的上一级目录:../或..

[root@centos ~]# scala -version

3.5删除文件

$ rm test  //删除文件
$ rm -f test  //强制删除文件

返回到上一级目录:cd ..

Scala code runner version 2.11.1 -- Copyright 2002-2013, LAMP/EPFL

3.6删除目录

$ rm -r family

进入当前目录下的dirfile目录:cd dirfile

然后解压spark,本次选用版本spark-1.0.0-bin-hadoop1.tgz,这次用的是hadoop 1.0.4

3.7移动文件(剪切)与重命名

将文件“ file1 ”移动到 Documents 目录:

mv file1 Documents

cd ~ :进入用户主目录(账号所在目录)  或者直接cd回车

[hadoop@centos software]$ tar -xzvf spark-1.0.0-bin-hadoop1.tgz

3.8重命名文件

金沙棋牌,将文件“ file1 ”重命名为“ myfile ”

$ mv file1 myfile

cd - :(回到先前的目录)

--------------------------------------分割线

CentOS 6.2(64位)下安装Spark0.8.0详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark简介及其在Ubuntu下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装Spark集群(在CentOS上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

3.9批量操作文件

#使用通配符批量创建 5 个文件:

$ touch file{1..5}.txt

#批量将这五个后缀为.txt的文本文件重命名为以。c为后缀的文件:

$ rename 's/.txt/.c/'  *.txt

#批量将这5个文件的文件名改为大写:

$ rename 'y/a-z/A-Z/' *.c

创建、删除查看和显示目录

--------------------------------------分割线

进入到spark的conf目录下

[hadoop@centos conf]$ cp spark-env.sh.template spark-env.sh

[hadoop@centos conf]$ vi spark-env.sh

添加如下内容

export SCALA_HOME=/home/hadoop/software/scala-2.11.1

export SPARK_MASTER_IP=centos.host1

export SPARK_WORKER_MEMORY=5G

export JAVA_HOME=/usr/software/jdk

启动

[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-master.sh

可以通过 看到对应界面

[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-slaves.sh park://centos.host1:7077

可以通过 看到对应界面

下面在spark上运行第一个例子:与Hadoop交互的WordCount

首先将word.txt文件上传到HDFS上,这里路径是 hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt

进入交互模式

[hadoop@centos spark-1.0.0-bin-hadoop1]$ master=spark://centos.host1:7077 ./bin/spark-shell

scala>val file=sc.textFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt")

scala>val count=file.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey(_+_)

scala>count.collect()

可以看到控制台有如下结果:

res0: Array[(String, Int)] = Array((hive,2), (zookeeper,1), (pig,1), (spark,1), (hadoop,4), (hbase,2))

同时也可以将结果保存到HDFS上

scala>count.saveAsTextFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/result.txt")

接下来再来看下如何运行Java版本的WordCount

这里需要用到一个jar文件:spark-assembly-1.0.0-hadoop1.0.4.jar

WordCount代码如下

public class WordCount {
 
 private static final Pattern SPACE = Pattern.compile(" ");

 @SuppressWarnings("serial")
 public static void main(String[] args) throws Exception {
  if (args.length < 1) {
   System.err.println("Usage: JavaWordCount <file>");
   System.exit(1);
  }

  SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
  JavaSparkContext ctx = new JavaSparkContext(sparkConf);
  JavaRDD<String> lines = ctx.textFile(args[0], 1);

  JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
     @Override
     public Iterable<String> call(String s) {
      return Arrays.asList(SPACE.split(s));
     }
    });

  JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
     @Override
     public Tuple2<String, Integer> call(String s) {
      return new Tuple2<String, Integer>(s, 1);
     }
    });

  JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
     @Override
     public Integer call(Integer i1, Integer i2) {
      return i1 + i2;
     }
    });

  List<Tuple2<String, Integer>> output = counts.collect();
  for (Tuple2<?, ?> tuple : output) {
   System.out.println(tuple._1() + " : " + tuple._2());
  }
 
  ctx.stop();
 }
}

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/103210p2.htm

金沙棋牌 2

3.10 查看文件

1.创建目录

3.10.1 使用 cat,tac 命令查看文件

$ cat file    //查看文件
$cat -n file    //查看文件(显示行号)

格式:mkdir [选项]  目录

3.10.2 使用moreless命令查看分页文件

$ more file    //Enter:向下滚动一行 Space:向下滚动一屏

功能:创建目录

3.10.3 使用headtail查看文件

$ head  /etc/passwd    //显示passwd文件前十行
$ tail  /etc/passwd    //显示passwd文件后十行
$ head -n 1 /etc/passwd    //显示passwd文件前一行

常用选项说明:

3.10 查看文件类型

$ file /bin/ls

 -m  创建目录的同时设置访问权限

-p  一次性创建多级目录

【例】:在rootfile文件夹下创建test文件夹,并在test文件夹下创建file文件夹。

[cpp] 

[[email protected] rootfile]# mkdir -p test/file  

[[email protected] rootfile]# ls  

test  

[[email protected] rootfile]# cd test  

[[email protected] test]# ls  

file  

[[email protected] test]#  

 

【例】:在rootfile文件夹下创建test2文件夹,并设置test2的权限为766

[cpp] 

[[email protected] rootfile]# mkdir -m 766 test2  

[[email protected] rootfile]# ls  

test  test2  

[[email protected] rootfile]# ls -l  

total 16  

drwxr-xr-x 3 root root 4096 Jul 21 21:27 test  

drwxrw-rw- 2 root root 4096 Jul 21 21:30 test2  

 

注释:rwxrw-rw-分别对应三种不同用户的权限,分别有三们二进制表示,766对应111 110 110

2.删除目录

格式:rmdir  [选项]  目录

功能:删除目录

常用选项说明:

-p  递归删除目录,当子目录删除后其父目录为空时,也一同删除

【例】:删除test下的file目录(文件夹),同时test也一并删除

[cpp] 

[[email protected] rootfile]# ls  

test  test2  

[[email protected] rootfile]# rmdir -p test/file  

[[email protected] rootfile]# ls  

test2  

 

3.查看当前目录

格式:pwd

功能:pwd (print working directory),查看当前目录.

常用选项说明:

【例】:查看当前目录

[cpp] 

[[email protected] rootfile]# pwd  

/home/rootfile  

 

5.显示目录内容

格式:ls  [选项]  [文件目录]

功能:显示指定目录中的文件和了目录信息,当不指定目录时,显示当前目录下的文件和子目录信息

常用选项说明:

-a  显示所有文件和子目录,包括隐藏文件和主目录

-l  显示文件和子目录的详细信息,包括文件类型、权限、所有者和所属群组、文件大小、最后修改时间、文件名

-d  如果参数是目录,则只显示目录信息,而不显示其中所包含的文件信息

-t  按时间顺序显示

-R  不仅显示指定目录下的文件和子目录信息,而且还递归地显示子目录下的文件和子目录信息

创建和查看文件

创建文件

格式:touch filename

功能:创建文件

常用选项说明:

【例】:在rootfile下创建文件file.txt和test2/file2.txt

[cpp] 

[[email protected] rootfile]# touch file.txt  

[[email protected] rootfile]# touch test2/file2.txt  

[[email protected] rootfile]# ls  

file.txt  test2  

[[email protected] rootfile]# cd tes*  

[[email protected] test2]# ls  

file2.txt  

 

cat命令

格式:cat  [选项]  filename

功能:依次读取filename中的内容

常用选项说明:

【例】:读取rootfile下Test.java和file中的文件内容

[cpp] 

[[email protected] rootfile]# ls  

file.txt  test2  Test.class  Test.java  

[[email protected] rootfile]# vi test2  

[[email protected] rootfile]# vi file*  

[[email protected] rootfile]# cat Test.java  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

        }  

}  

[[email protected] rootfile]# cat Test.java file.txt  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

        }  

}  

this is a file test.  

 

【例】:把Test.java和file.txt文件合并到combine.txt文件中

[cpp] 

[[email protected] rootfile]# cat Test.java file.txt > combine.txt  

[[email protected] rootfile]# cat comb*  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

        }  

}  

this is a file test.  

 

more命令

格式:more  [选项]  filename

功能:依次读取filename中的内容,该命令与cat的不同是可以逐屏往下翻页显示,按q退出。

常用选项说明:

-p  显示下一屏之前先清屏

-s  文件中连续的空白行压缩成一个空白行显示

【例】:显示file.txt的内容

[cpp] 

[[email protected] rootfile]# more file.txt  

this is a file test.  

 

 

【例】:显示Test.java和file.txt的内容

[cpp] 

[[email protected] rootfile]# more Test.java file.txt  

::::::::::::::  

Test.java  

::::::::::::::  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

        }  

}  

::::::::::::::  

file.txt  

::::::::::::::  

this is a file test.  

 

 

less命令

格式:less  [选项]  filename

功能:依次读取filename中的内容,该命令与more的不同是不仅可以向下翻页,还可以向上翻页,使用上下键、Enter、空格、pageDown、pageUp可以实现前后翻页,按q退出。

常用选项说明:

【例】:显示Test.java的内容

[cpp] 

[[email protected] rootfile]# less Test.java  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

        }  

}  

 

head命令

格式:head  [选项]  filename

功能:显示文件的头几行

常用选项说明:

-n  显示文件的前n行,如果没有n值,默认为10行

【例】:显示Test.java的前3行

[cpp] 

[[email protected] rootfile]# head -3 Test.java  

public class Test {  

        public static void main(String args[]) {  

                System.out.println("Hello Linux!");  

 

tail命令

格式:tail  [选项]  filename

功能:显示文件的末尾几行

常用选项说明:

+n  从第n行开始显示

-n  显示文件的最后n行,如果没有n值,默认为最后10行

【例】:显示Test.java的最后3行

[cpp] 

[[email protected] rootfile]# tail -3 Test.java  

                System.out.println("Hello Linux!");  

        }  

}  

 

文件查找

格式:find  [选项]  filename

功能:从指定的目录开始,递归地搜索其子目录,查找满足条件的文件并对之采取相关的操作

常用选项说明:

-name ‘字串’  要查找的文件名,可以用通配符*、?、[]

-group ‘字串’  文件所属的用户组名

-user  文件所属的用户名

find命令提供的查询条件可以是一个用逻辑符and、or、not组成的复合条件

-a  逻辑与

-o  逻辑或

-!  逻辑非

【例】:查找当前目录下文件名含有Test的文件

[[email protected] rootfile]# find -name 'Test*'

./Test.class

./Test.java

【例】:在根目录下查找文件名为’temp’或是匹配’install*’的所有文件

[java] 

[[email protected] rootfile]# find / -name 'temp' -o -name 'instal*'  

/etc/rhgb/temp  

/etc/yum/pluginconf.d/installonlyn.conf  

/etc/vmware-tools/installer.sh  

/software/tomcat5/webapps/docs/appdev/installation.html  

/software/tomcat5/temp  

/sbin/install-info  

/sbin/installkernel  

/usr/share/aclocal-1.9/install-sh.m4  

/usr/share/icons/Bluecurve/96x96/mimetypes/install.png  

/usr/share/icons/Bluecurve/24x24/mimetypes/install.png  

/usr/share/icons/Bluecurve/16x16/mimetypes/install.png  

/usr/share/icons/Bluecurve/48x48/mimetypes/install.png  

/usr/share/aclocal-1.7/install-sh.m4  

/usr/share/doc/cyrus-sasl-lib-2.1.22/install.html  

/usr/share/doc/sgml-common-0.6.3/html/install-catalog.html  

/usr/share/doc/m2crypto-0.16/demo/Zope27/install_dir  

/usr/share/doc/m2crypto-0.16/demo/ZopeX3/install_dir  

/usr/share/doc/libstdc++-devel-4.1.1/html/install.html  

……  

 

【例】:在rootfile下查找不含Test*的文件

[java] 

[[email protected] rootfile]# find ! -name 'Test*'  

.  

./.Test2.swp  

./1q  

./.Test.java.swp  

./test2  

./test2/file2.txt  

./combine.txt  

./file.txt  

 

文字统计命令

格式:wc  [选项]  filename

功能:统计文件的字节数、字数、行数

常用选项说明:

-c  统计字节数

-l  统计行数

-w  统计字数

【例】:统计Test.java的字节数、行数、字数

[java] 

[[email protected] rootfile]# wc Test.java  

  5  14 105 Test.java  

[[email protected] rootfile]# wc -wcl Test.java  

  5  14 105 Test.java  

 

复制、移动和删除文件或文件夹

cp 命令

格式:cp  [选项]  源目录或文件  目标目录或文件

功能:将给出的文件或目录复制到另一个文件或目录中

常用选项说明:

-b  若存在同名文件,则覆盖前备份原来的文件

-f  强制覆盖同名文件

-r或R  按递归方式,保留原目录结构复制文件

【例】:复制file.txt文件到file2,若file2已经存在,则备份file2.

[java] 

[[email protected] rootfile]# ls  

1q  combine.txt  file.txt  test2  Test.class  Test.java  

[[email protected] rootfile]# cp -b file.txt file2  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file.txt  test2  Test.class  Test.java  

[[email protected] rootfile]# cp -b file.txt file2  

cp: overwrite `file2'? n  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file.txt  test2  Test.class  Test.java  

[[email protected] rootfile]# cp -b file.txt file2  

cp: overwrite `file2'? y  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  Test.class  Test.java  

 

【例】:把test2文件复制到test3文件夹

[java] 

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  Test.class  Test.java  

[[email protected] rootfile]#  

[[email protected] rootfile]# cp -r test2 test3  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  test3  Test.class  Test.java  

 

mv命令

格式:mv  [选项]  源目录或文件  目标目录或文件

功能:移动或重命名文件或目录

常用选项说明:

-b  若存在同名文件,则覆盖前备份原来的文件

-f  强制覆盖同名文件

【例】:将/home/rootfile下的Test.java移动到/home/rootfile /test2下

[java] 

[[email protected] rootfile]# mv Test.java test2/Test  

[[email protected] rootfile]# ls -R  

.:  

1q  combine.txt  file2  file2~  file.txt  test2  test3  Test.class  

./test2:  

file2.txt  Test  

./test3:  

file2.txt  

 

rm 命令

格式:rm  [选项]  文件夹或目录

功能:删除文件夹或目录

常用选项说明:

-f  强制删除文件,不出现确认提示

-r或R  按递归方式删除目录,默认只删除文件

【例】:删除当前目录下的test3文件夹

[java] 

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  test3  Test.class  

[[email protected] rootfile]# ls test3  

file2.txt  

[[email protected] rootfile]# rm -r test3  

rm: descend into directory `test3'? y  

rm: remove regular empty file `test3/file2.txt'? y  

rm: remove directory `test3'? y  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  Test.class  

 

【例】: 强制删除当前目录下的test2文件夹

[java] 

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  test2  Test.class  

[[email protected] rootfile]# rm -rf test2  

[[email protected] rootfile]# ls  

1q  combine.txt  file2  file2~  file.txt  Test.class  

 

Linux中的目录 路径:也就是linux中的目录(文件夹)有绝对路径和相对路径 根目录:/ 用户主目录(home directory):位...

本文由金沙棋牌发布于操作系统,转载请注明出处:Linux目录结构及文件基本操作,文件管理

关键词:

上一篇:LINUX的几种方法金沙棋牌:

下一篇:没有了