Linux基础3(通配符,系统命令,用户命令,文件系统)

一、文件操作之通配符续

同时创建多个文件
  • 同时创建多个文件 (创建用{})

    [root@localhost ~]# ls
    anaconda-ks.cfg  ping.sh  test  test1  test2
    [root@localhost ~]# touch test{3..5}
    [root@localhost ~]# ls
    anaconda-ks.cfg  ping.sh  test  test1  test2  test3  test4  test5
    
同时查找多个文件
  • 同时匹配多个文件 (匹配用**[]**)

    [root@localhost ~]# ll test[0-9]
    -rw-r--r--. 1 root root 210 Jul 23 16:17 test1
    -rw-r--r--. 1 root root   0 Jul 25 09:32 test2
    -rw-r--r--. 1 root root   0 Jul 25 09:34 test3
    -rw-r--r--. 1 root root   0 Jul 25 09:34 test4
    -rw-r--r--. 1 root root   0 Jul 25 09:34 test5
    
    • 匹配数字结尾文件

      [root@localhost ~]# ll test.[[:digit:]]
      -rw-r--r--. 1 root root 0 Jul 25 09:49 test.1
      [root@localhost ~]# ll test[[:digit:]]
      -rw-r--r--. 1 root root 210 Jul 23 16:17 test1
      -rw-r--r--. 1 root root   0 Jul 25 09:32 test2
      -rw-r--r--. 1 root root   0 Jul 25 09:34 test3
      -rw-r--r--. 1 root root   0 Jul 25 09:34 test4
      -rw-r--r--. 1 root root   0 Jul 25 09:34 test5
      [root@localhost ~]# ll test.[^[:alpha:]]
      -rw-r--r--. 1 root root 0 Jul 25 09:49 test.1
      
      
    • 匹配英文结尾文件

      [root@localhost ~]# ls test.[a-z]
      test.a  test.b
      [root@localhost ~]# ls test.[[:alpha:]]
      test.a  test.b
      [root@localhost ~]# ls test.[^[:digit:]]
      test.a  test.b
      
  • 匹配两位数文件

[root@localhost ~]# ls
anaconda-ks.cfg  ping.sh  test  test1  test10  test2  test3  test4  test5
[root@localhost ~]# ls test[0-9][0-9]
test10
同时删除多个文件
  • 同时删除多个文件
[root@localhost ~]# rm {4..5}
rm: remove regular empty file ‘4’? y
rm: remove regular empty file ‘5’? y
  • 产生一个日志文件并让一个日志文件只保存三天的shell脚本:

    • 脚本:

      #!/bin/bash
      file1=`date -d "+3 day" +%Y%m%d`.log
      touch $file1
      [ -f `date +%Y%m%d`.log ] && rm `date +%Y%m%d`.log
      ~
      

系统命令:

  • 查看系统使用情况:
[root@localhost ~]# uptime
 10:36:35 up  1:34,  2 users,  load average: 0.00, 0.01, 0.05

​ 系统时间 系统状态 运行时间 使用用户 1分钟 5分钟 15分钟平均负载

  • 实时监控命令:
[root@localhost ~]# top
  • 查看进程命令:

    • [root@localhost ~]# ps -ef
      
    • -u 用户进程

    • -a 当前终端进程

    • -ax 显示详细信息

  • 查看特定(ssh)进程:

[root@localhost ~]# ps -aux |grep ssh

用户命令:

创建用户:
[root@localhost ~]# useradd lxw
添加用户密码:
[root@localhost ~]# passwd lxw
切换用户:
[root@localhost ~]# su lxw
  • 用户目录没有变化
[root@localhost ~]# su - lxw
  • 到达用户的家目录
退出登录:(退到上一个用户)
[lxw@localhost ~]$ exit
创建目录:
[root@localhost ~]# mkdir data--只能创建一个目录
[root@localhost ~]# mkdir -p /data/data1/data2--创建多级目录
创建文件:
[root@localhost ~]# touch file
[root@localhost ~]# >file
写入文件:
[root@localhost ~]# touch /data/data1/file
[root@localhost ~]# echo "123456" >/data/data1/file
[root@localhost ~]# cat /data/data1/file
123456
查看文件:
[root@localhost ~]# cat test test1--两个文件内容连在一块显示
[root@localhost ~]# head -20 passwd--查看文件开头20行,默认10行
[root@localhost ~]# tail -20 passwd--查看文件结尾20行,默认10行
[root@localhost ~]# cat -n passwd--显示文件行数
[root@localhost ~]# cat -s passwd--取消多个空行
[root@localhost ~]#	cat -E passwd--每行最后加$(防止脚本后边出现空格而报错)
[root@localhost log]# more dmesg.old--分屏显示()/var/log
[root@localhost log]# more -10 dmesg.old--一屏显示10行
  • ctrl+f向下翻屏滚动
  • ctrl+b向上翻屏滚动
对比文件:
[root@localhost ~]# diff test test1--对比不同并分开显示
筛选命令:
[root@localhost ~]# grep root passwd--grep	关键字	文件名(不显示大写)
[root@localhost ~]# grep ^root passwd--筛选以root开头的文件
[root@localhost ~]# grep -i root passwd--不区分大小写
[root@localhost ~]# grep -n root passwd--显示行数
[root@localhost log]# ip a |grep inet |grep -v inet6--(-v)取反
删除命令:
  • 删除文件:
[root@localhost ~]# rm test
  • 删除目录:
[root@localhost ~]# rm -r test2--递归删除目录
[root@localhost ~]# rm -f--强制删除
[root@localhost ~]# rm -rf--强制删除目录
[root@localhost ~]# rm -d test2--删除空目录
更名命令:
[root@localhost ~]# mv test test1
复制命令:
[root@localhost ~]# cp test1 data/
[root@localhost ~]# cp -p test1 data/--带权限复制
[root@localhost ~]# ll data/
total 4
-rw-r--r--. 1 lxw lxw 330 Jul 25 15:05 test1
[root@localhost ~]# cp -a data data/--保留原文件属性的前提下复制文件(把整个文件夹复制过去)
软硬链接:
  • 给文件file1做了个硬链接
[root@localhost data1]# ln file1 file2
  • 给文件file1做个软链接
[root@localhost data1]# ln -s file1 file3
[root@localhost data1]# ll
total 0
-rw-r--r--. 2 root root 0 Jul 25 15:26 file1
-rw-r--r--. 2 root root 0 Jul 25 15:26 file2
lrwxrwxrwx. 1 root root 5 Jul 25 15:29 file3 -> file1

在这里插入图片描述

  • 硬链接:原文件删除的情况下,内容依然存在

  • 软连接:在原文件删除的情况下,自己也失效

查找文件命令:
[root@localhost ~]# find -name file2
./data1/file2
[root@localhost ~]# find /etc -name passwd--在指定目录下寻找
[root@localhost ~]# find -name test1 -exec rm -rf {} \;--寻找出test1并删除
[root@localhost ~]# find -name "test*" -exec rm -rf {} \;--寻找出所有test开头文件并删除
cut命令:
[root@localhost log]# ip a |grep inet |grep -v inet6 |cut -b -20--按照字节个数截取文件
排序命令:
[root@localhost ~]# cat test |sort--默认正序
2
3
4
[root@localhost ~]# cat test |sort -r--倒叙
4
3
2
[root@localhost ~]# cat test |sort |uniq-- 先排序,在去重
2
3
4
[root@localhost ~]# cat test |wc -l--统计行数
查询命令所在位置:
[root@localhost ~]# which ls--ls命令所在位置
[root@localhost ~]# whereis pwd--命令所在位置以及压缩包所在位置

二、Linux系统文件目录:

/bin,/sbin:系统命令的二进制位文件
/boot:存放系统启动有关的文件
/dev:设备文件
/etc:配置文件
/home:用户家目录
/lib:库,模块的文件
/opt:与第三方的安装模块
/use:系统用户
/var:与应用有关的文件
/tmp:临时文件,通常在重启后清空
/mnt:临时挂载的文件系统

三、引号的不同

‘ ‘:单引号

[root@localhost ~]# echo '$PATH'

强引用,可见即可得(括号里便是啥,输出是啥)

  • 单引号将其中的内容都作为了字符串来,忽略所有的命令和特殊字符,类似于一个字符串的用法

” “:双引号

[root@localhost ~]# echo "$PATH"

弱引用,变量正常使用

  • 双引号与单引号的区别在于其可以包含特殊字符,包括', ", $, \,如果要忽略特殊字符,就可以利用\来转义,忽略特殊字符,作为普通字符输出。
发布了33 篇原创文章 · 获赞 6 · 访问量 670

猜你喜欢

转载自blog.csdn.net/qq_42508901/article/details/97383224