基本的bash shell

一、linux文件系统

         linux文件系统结构是从Unix文件结构演进过来的。在linux文件系统中,通用的目录名用于表示一些常见的功能。如下表列出一些较为常见的Linux顶层虚拟目录名及其内容。

/

虚拟目录的根目录。

/bin

二进制目录,存放许多用户级的GNU工具

/boot

启动目录,存放很多启动文件

/dev

设备目录

/etc

系统配置文件目录

/home

主目录,Linux在这里创建用户目录

/lib

库目录,存放系统和应用程序的库文件

/media

媒体目录,可移动媒体设备的常用挂载点

/mnt

挂载目录,另一个可移动媒体设备的常用挂载点

/opt

可选目录,常用于存放第三方软件包和数据文件

/proc

进程目录,存放现有硬件及当前进程的相关信息

/root

root用户的主目录

/sbin

系统二进制目录,存放许多GNU管理员级工具

/run

运行目录,存放系统运作时的运行时数据

/srv

服务目录,存放本地服务的相关文件

/sys

系统目录,存放系统硬件信息的相关文件

/tmp

临时目录,可以在该目录中创建和删除临时工作文件

/usr

用户二进制目录,大量用户级的GNU工具和数据文件都存放到这里

/var

可变目录,用于存放经常变化的文件,比如日志文件

 

 

二、遍历目录              

         常用指令:$cd ----切换目录

                          $cd destination

                          $pwd------显示当前目录

1、 绝对路径

绝对路径定义了在虚拟目录结构中该目录的确切位置,以虚拟目录的根目录开始,相当于目录的全名。

2、 相对路径

相对文件路径允许用户指定一个基于当前位置的目标文件路径。

有两个特殊字符可用于相对文件路径当中:

l  单点符(.),表示当前目录;

l  双点符(..),表示当前目录的父目录;

三、文件和目录列表

1、基本列表功能

(1)、$ls

(2)、$ls –F, F参数的ls命令轻松区分文件和目录

  [root@localhost ~]# ls -F

  anaconda-ks.cfg  install.log  install.log.syslog  netperf-netperf-2.5.0/  netperf-netperf-2.5.0.tar.gz  公共的/  模板/  视频/  图片/  文档/  下载/  音乐/  桌面/

(3)、$ls –a,把隐藏文件和普通文件及目录一起显示出来

(4)、$ls –R,递归选项,它列出了当前目录下包含的子目录中的文件。

[root@localhost doc]# ls -F -R

.:

examples/  Makefile.am  netperf.html  netperf.man     netperf.pdf  netperf.texi          netperf.xml    omni_output_list.txt

Makefile   Makefile.in  netperf.info  netperf_old.ps  netperf.ps   netperf.txt           netserver.man  texinfo.tex 

./examples:

arr_script*  Makefile.am  netperf_interim_to_rrd.sh*  runemomniagg2.sh           sctp_stream_script  tcp_range_script*  tcp_stream_script*  udp_stream_script

 Makefile     Makefile.in  packet_byte_script*  runemomni.sh                            snapshot_script*    tcp_rr_script*     udp_rr_script*

2、显示长列表   

(1)、ls –l   

   [root@localhost doc]# ls -l

        drwxrwxr-x. 2 root root    4096 9月  11 16:54 examples

输出结果中,每一行都包含了关于文件的以下信息:

  • 文件类型,比如目录(d)、文件(-)、字符型文件(c)、或块设备(b);
  • 文件权限;
  • 文件的硬链接总数;
  • 文件属主的用户名;
  • 文件数组的组名;
  • 文件的大小(以字节为单位);
  • 文件的上次修改时间;
  • 文件名或目录名。

3、过滤输出列表

  $ls –l Makefile

  [root@localhost doc]# ls -l Makef*

  -rw-r--r--. 1 root root 30370 9月  11 16:54 Makefile

  -rw-rw-r--. 1 root root   953 7月  20 2011 Makefile.am

  -rw-rw-r--. 1 root root 30180 7月  20 2011 Makefile.in

  • 问号(?)代表一个字符;
  • 星号(*)代表零个或多个字符。

四、处理文件

     1、创建文件

                  $touch test_one

                  [root@localhost a5000]# touch test_one

                  [root@localhost a5000]# ls -l test_one

                  -rw-r--r--. 1 root root 0 9月  18 17:19 test_one

     2、复制文件

         (1)、$cp test_one test_two。

                  [root@localhost a5000]# cp test_one test_two

                  [root@localhost a5000]# ls -l test*

                  -rw-r--r--. 1 root root 0 9月  18 17:19 test_one

                  -rw-r--r--. 1 root root 0 9月  18 17:22 test_two

         (2)、$-i,强制shell询问是否需要覆盖已有文件。

                  [root@localhost a5000]# cp -i test_one test_two

                  cp:是否覆盖"test_two"?

         (3)、$-R,递归的复制整个目录的内容。

                  [root@localhost test]# ls

                  test1

                  [root@localhost a5000]# cp -R test/ test1

                  [root@localhost test1]# ls

                  test1

五、链接文件

                  链接文件是Linux文件系统的一个优势,如果需要在系统上维护同一文件的两份或多份副本,除了保存单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占符位。在Linux中有两种类型的文件链接:

  • 符号链接
  • 硬链接

(1)、符号链接

         符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件,这两个通过符号链接在一起的文件,彼此的内容并不相同,

         $ln –s

         要为一个文件创建符号链接,原始文件必须事先存在。

         [root@localhost test]# ln -s test1 test

      [root@localhost test]# ls -l

         lrwxrwxrwx. 1 root root 5 9月  19 09:02 test -> test1

         -rw-r--r--. 1 root root 0 9月    18 17:27 test1

         显示在长列表中符号文件后的->符号表明该文件是连接到test1上的一个符号链接。

(2)、硬链接

         硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件,等同于引用源文件

         $ln

         [root@localhost test]# ln test1 test2

         [root@localhost test]# ls -il

         17634 -rw-r--r--. 2 root root 31 9月  19 09:26 test1

         17634 -rw-r--r--. 2 root root 31 9月  19 09:26 test2

六、重命名文件

(1)、文件和目录移动到另一个位置或重新命名

        &mv

         [root@localhost a5000]# mv ./test/test ./Test1/yanzheng

         [root@localhost Test1]# ll -s

         0 -rw-r--r--. 1 root root 0 9月  18 17:27 test1

         lrwxrwxrwx. 1 root root 5 9月  19 09:02 yanzheng -> test1

(2)、使用mv命令移动整个目录及其内容

         root@localhost a5000]# mv test ./Test1/

         root@localhost Test1]# ls -il

         7628 drwxr-xr-x. 2 root root 4096 9月  19 09:36 test

         7631 -rw-r--r--. 1 root root    0 9月  18 17:27 test1

         7632 lrwxrwxrwx. 1 root root    5 9月  19 09:02 yanzheng -> test1

七、删除文件

         $rm

         参数:

  •   i:提示你是不是真的要删除该文件;
  •   f:强制删除;

八、创建目录

1)       $mkdir

                  root@localhost a5000]# mkdir yy

                  root@localhost a5000]# ls -il

                  17629 drwxr-xr-x. 2 root root 4096 9月  19 10:02 yy

2)       如果想同时创建多个目录和子目录,需要加入-p参数

                  [root@localhost a5000]# mkdir -p ./yy/yy1/yy2

                  [root@localhost a5000]# cd yy

                  [root@localhost yy]# ls

                  yy1

                  [root@localhost yy]# cd yy1

                  [root@localhost yy1]# ls

                  yy2

九、删除目录

                  &rmdir

                  参数:

  • r 选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本;
  • f 强制删除,不提示(-rf没有警告信息,也没有提示)。

十、查看文件

     10.1、查看文件类型

                  &file

                  [root@localhost Test1]# file test

                  test: directory

     10.2、查看整个文件

                  (1)、cat

                          cat命令是显示文本文件中所有数据的得力工具。

      • n 参数会给所有的行加上行号。
      • b 给文本加上行号。

                  (2)、more

                          more是分页工具,可以一页一页的显示文件内容。

      • 空格键:向下翻一页;
      • Enter:向下滚动一行;
      • q       :退出;
      • b       :往下翻页。

                  (3)、less

                          一页一页翻动。

  • l空格键:向下翻一页;
  • [PgUp]:向上翻动一页;
  •  [PgDn]:向下翻动一页;
  •  /字符串:向下查询“字符串”的功能;
  • ?字符串:向上查询“字符串”的功能;
  • n       :重复前一个查询;
  • N      :反复重复前一个查询;
  • q       :离开less程序。

                  (4)、tail

                          tail命令回显示文件最后几行的内容(文件的“尾部”)。

  • n 修改所显示的行数。
  • f 表示持续监测后面所接的文件名。

                  (5)、head

                          head命令,顾名思义,会显示文件开头那些行的内容。

      • n 修改所显示的行数。
原文地址:https://www.cnblogs.com/ykhyq/p/9674254.html