linux基础之bash特性知识点

1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    Linux 一切皆文件。个人理解 在linux下的命令操作都算是对文件操作

    那么文件管理命令类命令可以分为下面几类

    目录操作:

       特殊目录解释: . 代表此层目录;.. 代表上一层目录;- 代表前一个目录;~ 代表当前用户的主文件夹 也可以称为家目录;

     cd (change directory)切换目录

       例:

[root@localhost ~]# cd ~fool

表示 切换到fool这个用户的家目录下 即 /home/fool

[root@localhost fool]# cd ~

切回到自己的主文件夹,/root目录下

[root@localhost ~]# cd

不加参数,表示切到自己的主目录下 /root

[root@localhost ~]# cd ..

表示且到目前的上层目录 即 /root 目录

[root@localhost /]# cd –

/root

表示回到刚才的目录  /root

       [root@localhost ~]# cd /usr/share/zoneinfo/

        使用绝对路径

[root@localhost zoneinfo]# cd ../zsh

使用相对路径(zsh 与zoneinfo 都是/usr/share/ 目录下)

 

      

       pwd (print working directory)显示当前目录;

       [root@localhost mail]# pwd

 /var/mail

       [root@localhost mail]# pwd -P

/var/spool/mail

       /var

[root@localhost mail]# ls -ld /var/mail

lrwxrwxrwx. 1 root root 10 9月  16 10:09 /var/mail -> spool/mail

     注意 –P参数为大写的P  大写P  大写P  好的,三遍

 

      mkdir (make directory)新建一个新的目录, -p 表示递归创建目录

       

[root@localhost ~]# mkdir -p study1/study2/study3

[root@localhost ~]# ls

anaconda-ks.cfg  initial-setup-ks.cfg  study1

[root@localhost ~]# ls study1/

study2

[root@localhost ~]# ls study1/study2/

study3

    -m 表示配置文件的权限

[root@localhost ~]# mkdir -m 700 study

                    [root@localhost ~]# ls -l

总用量 8

-rw——-. 1 root root 1851 9月  16 10:24 anaconda-ks.cfg

-rw——-. 1 root root 1899 9月  16 10:35 initial-setup-ks.cfg

drwx——. 2 root root    6 9月  21 22:36 study

drwxr-xr-x. 3 root root   19 9月  21 22:33 study1

       注意:默认创建的文件属性为755

 

    rmdir 删除一个”空”的目录

    这个命令…  有个参数-p 递归删除目录 必须都是空目录;不好玩

    介绍个好玩的命令 删除目录不管有没有内容都可以删除,

    rm –rf  可以试试 温馨提示 数据无价 提前备份

 

  查看文件目录

     Ls (list)查看目录与文件   这个太常用了

    -a 列出全部文件,包括隐藏文件(开头为.的文件);

    -A列出全部文件,包括隐藏文件(不包括 . .. 这两目录)

    -d 列出目录本身

    -l 列出长数据串,包括文件的属性与权限等数据

    [root@localhost ~]# ls -d /usr/bin/

    /usr/bin/

    [root@localhost ~]# ls -ld /usr/bin/

    dr-xr-xr-x. 2 root root 45056 9月  16 10:19 /usr/bin/

      

     复制、删除、移动 操作

     cp (copy) 复制文件或目录

       -a 保留源文件属性复制;

       -i 若目标文件已存在,覆盖时先询问用户;

       -r 递归持续复制;

       [root@localhost ~]# ls -ld study1/study2/

drwxr-xr-x. 3 root root 19 9月  21 22:33 study1/study2/

[root@localhost ~]# cp -a study1/study2/ study

[root@localhost ~]# ls -ld study/study2

drwxr-xr-x. 3 root root 19 9月  21 22:33 study/study2

 

    rm 移除文件或目录

     -f:force,忽略不存在的文件,不出现警告信息;

     -i:交互模式,删除前会询问用户是否操作;

     -r:递归删除。常用在目录删除;

              [root@localhost /]# rm -i /usr/123.txt

rm:是否删除普通文件 "/usr/123.txt"?y

[root@localhost /]# ls /usr

bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

              [root@localhost /]# rm -f /usr/123.txt

[root@localhost /]# ls

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

    [root@localhost usr]# rm -r test1/test2/test3/

rm:是否删除目录 "test1/test2/test3/"?y

 

mv 一段文件与目录,或更名

-f:force 如果目标文件已经存在,不会询问而直接覆盖;

-i:若目标文件存在,就询问是否覆盖;

-u:若目标文件存在,且源文件较新才更新;

[root@localhost usr]# mv -f test1/test2/123.txt movefile

[root@localhost usr]# ls movefile/

123.txt

[root@localhost usr]# cat movefile/123.txt

hello world ~!!!

             [root@localhost usr]# mv -u test1/test2/123.txt movefile

mv:是否覆盖"movefile/123.txt"? y

[root@localhost usr]# cat movefile/123.txt

hello

halo

haha

[root@localhost usr]# mv -i test1/test2/123.txt movefile

mv:是否覆盖"movefile/123.txt"?

 

获取路径的文件名与目录名称

basename 获取最后的文件名

[root@localhost study]# basename /usr/movefile/123.txt

123.txt

dirname 获取目录名

[root@localhost study]# dirname /usr/movefile/123.txt

/usr/movefile

 

文件内容查看

cat :concatenate

-n 打印并显示行号,

[root@localhost study]# cat -n /usr/movefile/123.txt

     1   hello

     2  

     3   halo

     4   haha

tac 反向查看

[root@localhost study]# tac /usr/movefile/123.txt

haha

halo

 

hello

    more 翻页查看  空格:代表向下翻一页;enter 向下滚动一行;/字符 查找该字符; :f 离开显示处文件名以及目前显示的行数; q 离开离开more,不在显示该文件内容; b&     ctrl+b 往回翻页  只对文件有效。

     head 取出前面几行 默认前10行 head –n 文件

     tail 取出后面几行 tail [-n number] 文件

 

    touch [OPTION]… FILE…   修改文件时间或创建新文件

      -c: 指定的文件路径不存在时不予创建;

      -a: 仅修改access time;

      -m:仅修改modify time;

      -t STAMP [[CC]YY]MMDDhhmm[.ss]

    which 寻找“执行文件”

    Which –a command :将所有由path目录中找到的命令均列出,而不只是列出第一个命令名称

    Whereis 寻找特定文件

    -b 二进制格式文件

    -m 只找在说明文件路径下的文件

 

2、 bash 的执行命令状态

    [root@localhost study]# echo "hello world"

    [root@localhost study]# echo $?

    0

    [root@localhost study]# echoi  hello world

    [root@localhost study]# echo $?

    127

    bash 命令行展开 :把命令行的给定的特殊符号自动替换为相应字符串的机制;

    [root@localhost ~]# cd ~ study

    [root@localhost ~]# pwd

    /root

 

bash 其他特性:

    命令别名: alias alias name=’command’ 生命周期:当前shell进程;

    历史命令: history 默认1000条 history –c 清空命令历史

    快捷件:   ctrl+a 调至行首;ctrl+e 调至行尾;ctrl+k 删除光标所在处到尾部;

                      ctrl+u 删除行首至光标位置的内容;

    命令补全: 唯一标识:tab补全;不能唯一标识:tab tab 列出; 没有提示 表示错误

    glob :文件名通配

    *匹配任意多个字符;?匹配任意单个字符;[]匹配指定集合内的任意单个字符;

    [^]匹配指定集合外的任意单个字符;

    变量:

    I/O 重定向和管道

 

3、请使用命令行展开功能来完成以下练习:

   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

   (2)、创建/tmp/mylinux目录下的:

    [root@localhost /]# mkdir -p /tmp/{a_c, a_d, b_c, b_d}

    [root@localhost/]#mkdir-p/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-        scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

    

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    每个文件都有两类数据

        元数据:metadata

        数据: data

    时间戳:access time,modify time,change time

————————————————————————-

    文件的元数据信息:

    文件 大小 块 IO块 设备 inode 硬连接 权限 环境

    最近访问时间、最近更改时间、最近改动时间、创建时间

    以上都为文件的元数据信息

    查看元数据信息:stat file

    修改时间戳:touch [-c,a,m,t]… FILE…

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    alias ls=ls –l

 

    使用管道 | 可以引用上一个命令的执行结果

    用法  COMMAND1 | COMMAND2

    例:cat /etc/issue | tr 'a-z' 'A-Z'

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

    ls –d /var/1[0-9]*[lower]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    ls –d /etc/[[:digit:]][^[:digit:]]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

    ls –d /etc/[^[:alpha:]][a-z]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    touch file"$(date +%Y-%M-%H-%M-%S)"

    “”用法  date 参数用法 

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    cp -r /etc/p*[^[:digit:]] /tmp/mytest1

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    cp –r /etc/*.d /tmp/mytest2

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    cp /etc/[1,m,n]*.conf /tmp/mytest3

 

原创文章,作者:rumor31,如若转载,请注明出处:http://www.178linux.com/48937

(0)
rumor31rumor31
上一篇 2016-09-24
下一篇 2016-09-24

相关推荐

  • 对防火墙的初步认识

      防火墙,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。    目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7…

    Linux干货 2017-06-15
  • 0805 作业

     201608051、当天课程内容笔记2、当天练习3、预习4、取本机ip地址 5、取各分区利用率的数值 6、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示 7、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/functions/"  取目录名…

    Linux干货 2016-08-07
  • Python函数式编程指南:目录和参考

    目录: 概述 这一篇简要地描述了函数式编程和一些相关的概念。 函数 这一篇展示了关于函数可能不常用到的部分特征并尝试引导诸位使用函数式的思维解决问题,并介绍了诸多有用的内建函数。 迭代器 这一篇介绍了迭代器以及Python对迭代器的语法级的支持,还包括了内置模块itertools的介绍。 生成器 这一篇介绍了自定义的迭代器——生成器,并展示了生成器的用途和使…

    Linux干货 2015-03-11
  • 如何修改linux系统主机名称及自动登录图形化界面

    编辑器:gedit(图形化编辑器)在图形界面编辑开机自动登录图形化界面(在工作中不能使用)Centos6  第一步:ls /etc/gdm/custom.conf第二步:nano /etc/gdm/custom.conf第三步:[daemon]第四步:AutomaticLoginEnable=trueAutomaticLogin=root第五步:按…

    Linux干货 2017-07-15
  • Linux文件系统管理

    马哥教育网络班23期+第3周课程练习 Linux文件系统管理 由于第三周所学的只是比较零碎,知识量比较大,这篇博客主要讲述的是一些习题,包括怎样完成的练习的思路和截图等等。首先我们看第一个题目 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。    [root@localhost]/media/P…

    Linux干货 2016-09-23
  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15