misty's technology stack
有效行动是第一驱动力
小雾的技术栈
Linux命令基本格式以及文件处理命令

命令提示符的含义

[root@localhost ~]

  • 其中root代表当前用户
  • localhost 主机名
  • ~ 当前所在的目录(家目录)
    • 家目录就是用户登陆的初始目录 ,超级管理员家目录为 /root 其他用户目录是 /home/user1(在创建用户的时候自动生成)
  • # 超级用户提示符,普通用户提示符是 $

命令格式

  • 命令 [选项] [格式]

注意:个别命令使用不遵循此格式,当有多个选项时可以写在一起;简化选项与完整选项 -a == --all

查看目录中的内容 :ls

  • 选项 :
    • -a 显示所有文件,包括隐藏文件
    • -l 显示详细信息;
    • -d 查看目录属性
    • -h 人性化显示文件大小
    • -i 显示 inode
      >ls -l 相当于 ll
  • 文件属性 -rw-r--r--. 1 root root 20 Dec 5 14:03 ntuser.ini
    • - 文件类型(-文件 d目录 l软连接文件)
    • rw-u 所有者 r-- 所属组 r-- 其他用户
    • rwx分别对应文件的读写可执行权限
    • . 代表ACL权限
    • 1 代表引用计数
    • 时间是文件的最后修改时间

Linux 的文件类型只有7种

  • 文件
  • 文件夹
  • 软连接(快捷方式)
  • 块设备文件
  • 字符设备文件
  • 套接字文件
  • 管道文件

linux文件处理命令

  • 查看当前所在的目录路径 pwd 英文原意 print working directory;
  • 建立目录 mkdir -p [目录名] -p 递归创建(英文原意 make directories)
  • 切换所在目录 cd [目录名] ,英文原意切换所在目录 change directory
  • 简化操作
    • 进入当前用户的家目录 cd ~
    • 进入上次所在的目录 cd -
    • 进入上一级目录 cd ..
    • 进入当前目录 cd .
  • 删除空目录 rmdir [目录名]
  • 删除文件或者目录 rm -rf [文件或者目录] 英文原意 remove
    • 选项
      • 不带参数的就是删除文件会有交互提示
      • -r 删除目录(也可以删除文件,递归删除的意思),会有交互提示
      • -f 强制删除
        > 注意:字符界面没有回收站选项,且linux识别 rm -rf / 命令
  • 创建空文件 touch [文件名]

  • 复制命令 cp [选项] [原文件] [目标目录] 英文原意 copy

    • 选项
      • -r 复制目录
      • -p 连带文件属性复制 ,(让目标文件和源文件的属性保持一致,时间权限等)
      • -d 若源文件是链接文件,则复制链接的属性
      • -a 相当于 -prd
  • 剪切或者改名命令 mv [源文件] [目标目录] 英文原意move
    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

绝对路径和相对路径

  • 相对路径 :参考当前所在的目录进行查找 cd ../home/misty :进入当前目录的上一级目录下的home/misty文件夹下
  • 绝对路径 :从根目录开始指定,一级一级递归查找,在任何目录下,都能进入指定的位置 cd /root/java 进入根目录下的root目录

常用目录的作用

img

* /根目录
* /bin命令保存目录(普通用户就可以读取的命令);sbin存放超级管理员可以读取的命令;
* /boot启动目录,启动相关文件
* /dev设备文件保存目录
* /etc配置文件保存目录
* /home 普通用户的家目录,root超级管理员的家目录
* /lib系统库保存目录

  • /mnt系统挂载目录
  • /media挂载目录
  • /misc
    > media, misc ,mnt空目录用于挂载外接设备(因为linux的外接设备需要挂载才能使用)
  • tmp 临时文件目录
  • proc直接写入内存的
  • sys
    > proc 和sys 目录不能直接操作,这两个目录是保存内存的挂载点,该目录的内容直接写入内存
  • /usr系统软件资源目录
    /usr/bin/系统命令(普通用户)
    /usr/sbin/系统命令(超级用户)
  • /var 系统相关文档目录

链接命令

  • ln -s [原文件] [目标文件] 英文原意link
  • 功能描述: 生成链接文件,选项-s创建软链接

  • 硬链接特征:
    1.拥有相同的i节点和储存block块,可以看做是同一个文件,删除其中一个另一个可以照常使用,除非全部删除
    2.可以通过i节点识别 , ls -i(ll -i) 查看文件的i节点
    3.不能跨分区
    4.不能针对目录使用

  • 软连接特征
    1.类似windows的快捷方式
    2.软链接拥有自己的I节点和block块,但是数据块中只保存源文件的文件名和I节点号,并没有实际的文件数据
    3.lrwxrwxrwx l软链接 ,软链接的文件权限都是lrwxrwxrwx,实际权限和源文件权限一致
    4.修改任意文件另一个都会改变
    5.删除源文件,软链接不能使用
    >注意:软链接源文件一定要写绝对路径
软链接和硬链接的区别,终端实操
  • 软链接的i节点和源文件不一致,软链接权限777lrwxrwxrwx但是实际的权限就是源文件权限,且标识为 l软链接
img
查看硬链接的i节点 ,确定是硬链接,相同的文件相同的存储block块
  • 硬链接比较隐蔽,除了i节点,不容易区分硬链接
  • 硬链接的限制比较多,并且不能跨分区,不能针对目录使用
img

终端操作小技巧

  • Ctrl +L 清屏
  • Tab 自动补全

其他的有用的命令

  • echo 666 >> niuniu.log 将666 写入到文件末尾

文件搜索命令

文件搜索命令locate

  • 语法 locate 文件名,搜索文件名;
  • 在后台数据库中按文件名搜索,搜索速度更快,占用系统资源少,但是功能单一只能搜索文件名
  • /var/lib/mlocate locate所搜索的后台数据库
  • updatedb 更新数据库

    注意:这个数据库不是实时更新的,更新频率大概每天一次 ; 可以手动强制更新数据库 ;在不同的版本数据库名字可能有点区别

    “`sh
    locate three
    locate: can not stat () ‘/var/lib/mlocate/mlocate.db’: No such file or directory
    //执行一下 updatedb 即可加载相关库,就可以使用该命令了


##### `/etc/updatedb.conf` 配置搜索的筛选规则 ,配置文件含义 * 该配置不仅仅对locate命令生效而且对whereis与which也生效 ```sh PRUNE_BIND_MOUNTS="yes" //配置文件生效(开启搜索限制) PRUNENAMES=".git .bzr .hg .svn" //不搜索的文件类型 PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot" //不搜索的路径 PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs" //不搜索的文件系统

命令搜索命令whereis与which

  • whereis [命令名] 搜索命令所在的路径以及帮助文档所在的位置
    • -b 只查找可执行文件
    • -m 只查找帮助文件
  • which [命令] 查看命令所在位置,如果命令有别名显示别名

其他相关命令 :whoami 查看当前用户 whatis [命令关键字]查看命令的作用

Path环境变量:定义的是系统搜索命令的路径;

  • 命令搜索的命令依赖path所定义的环境变量
//打印Path环境变量
root@DESKTOP-2IM4LQA:/mnt/f/test/one/three# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@DESKTOP-2IM4LQA:/mnt/f/test/one/three#

文件搜索命令find

  • find [搜索范围] [搜索条件] 搜索文件

  • find / -name install.log 在根目录下根据名字搜索 install.log文件(名字需要完全一样才行)

    • 避免大范围搜索,会非常耗费系统资源;
    • find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配 通配符是完全匹配
  • find /root -iname install.log 查找文件不区分大小写

  • find /root -user root 按照所有者搜索 ,在root目录下搜索用户root的文件

  • find /root -nouser 查找指定目录中没有所有者的文件

  • find /var/log -mtime +10 查找 十天前 修改的文件

    • -10 十天内
    • 10 十天当天
    • +10 十天前

    • atime 文件访问时间 英文原意 access

    • ctime 改变文件属性 英文原意 change
    • mtime 修改文件内容 英文原意 modify

可以用于日志文件查询;可以支持按照分钟查找

  • find . -size 25k 在当前文件夹下查找文件大小是25kb的文件
    • -25k 小于25kb的文件
    • 25k 等于25kb的文件
    • +25k 大于25kb的文件
      >注意:这里的大小需要是整数;这里的表示kb单位用 k 如:25k,表示MB单位用 大写 M;不带单位的话默认参数是block扇区单位(block *512 才是实际字节数)
      img
  • find . -inum 242422 查找i节点是242422的文件

    配套命令 ls -i查看文件的i节点

  • 复杂的命令
    img

    • find /etc -size +20k -a -size -50k 查找/etc目录下 大于20kb并且小于50kb的文件
    • find /etc -size +5k -a -size -50k -exec ls -lh {} \; 查找/etc目录下 大于20kb并且小于50kb的文件,并显示详细信息;
      • -exec/-ok 命令 {} \ ; 对搜索结果执行操作 {} \ 表示搜索结果
        >注意 : {}\的符号之间需要空格 ;并且一定要以分号结尾而且分号需要紧紧挨着 \
        img
Linux 中的通配符
  • * 匹配任意内容
    • find /mnt/f/MyRepository/ -name "*" 查找当前目录下的所有内容
    • find /mnt/f/MyRepository/ -name "read*"或者 find /mnt/f/MyRepository/ -name readme* 查找文件名匹配的项,这里感觉打不打"" 没有影响
  • ? 匹配任意一个字符
    • find /mnt/f/test/one/find -name xix?.log
  • [] 匹配任意一个中括号内的内容
    • find /mnt/f/test/one/find -name *[s][h] 查找以sh结尾的文件

注意:在实际操作过程中,可以不用带引号(环境是win10的linux子系统),另外通配符合一结合使用

grep 搜索字符转的命令

  • grep [选项] 字符串 文件名 在当前文件中匹配符合条件的字符串
    • -i 忽略大小写
    • -v 排除指定的字符串

find命令与grep命令的区别

  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配则使用通配符进行匹配,通配符是完全匹配

  • grep命令 : 在文件当中搜索符合条件的字符串,如果需要匹配,则使用正则表达式进行匹配,正则表达式是包含匹配

查找文件使用完全匹配,查找文件内容使用包含匹配

没有标签
首页      Linux      Linux命令基本格式以及文件处理命令

发表评论

textsms
account_circle
email

小雾的技术栈

Linux命令基本格式以及文件处理命令
命令提示符的含义 [root@localhost ~] 其中root代表当前用户 localhost 主机名 ~ 当前所在的目录(家目录) 家目录就是用户登陆的初始目录 ,超级管理员家目录为 /root 其他用户目录是 …
扫描二维码继续阅读
2019-06-24