加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux常用命令

发布时间:2020-12-14 00:57:01 所属栏目:Linux 来源:网络整理
导读:Date: 2019-05-27 Author: Sun 一、linux文件系统结构 sudo apt-get install tree tree --help #查看帮助 tree -L 1 #显示文件目录 查看目录下的树形结构[email?protected] /# tree -L 1. #系统根目录├── bin #存放常见的命令├── boot #系统启动文件和

Date: 2019-05-27

Author: Sun

一、linux文件系统结构

sudo apt-get install tree
   tree --help  #查看帮助
   tree -L 1  #显示文件目录
查看目录下的树形结构
[email?protected] /# tree -L 1
.           #系统根目录
├── bin     #存放常见的命令
├── boot    #系统启动文件和核心文件都在这个目录
├── cdrom   #光驱
├── dev     #存放设备文件,包括硬盘、光驱、键盘、鼠标等
├── etc     #系统配置文件都在这个目录下
├── home    #普通用户的家目录
├── lib     #系统链接库
├── lib64   #64位的链接库
├── lost+found   #系统自动生成的,如果文件系统出错,会在目录下产生文件,记录错误
├── media        #系统自动挂载的光驱、usb等
├── mnt          #mount简写 挂载其他文件系统
├── opt          #可在此安装第三方软件 
├── proc         #系统进程的信息、系统状态信息
├── root         #超管的目录
├── run          #进程运行数据
├── sbin         #管理员的命令,普通用户无法使用
├── srv          #服务信息
├── sys          #系统相关
├── tmp          #临时目录,所有用户都具有读写权限
├── usr          #unix software resource  用户的软件安装到这个目录
|    ├── bin     #应用程序的可执行文件
|    ├── sbin    #用户或超管的标准命令
|    ├── local   #管理员安装的应用程序目录
|    └── share   #共享文件目录
└── var          #存放不断扩充的文件。比如数据库文件、日志文件
     ├── log     #日志目录,各种应用的日志
     └── run     # /run的软连接

二、常见命令

  1. ls

    列出目录下的文件或子目录

    ls [参数]    #中括号表示可选
    ls  -l    #以列表方式显示文件的详细信息
    ls  -a   #显示隐藏文件,隐藏文件的文件名以.开头
    ls  -al  #
    
    ls --help #查看命令参数
    drwxr-xr-x  2 python python     4096 3月  28 11:20 Templates
    drwxr-xr-x  2 python python     4096 3月  28 11:20 Videos

    第一部分:表示文件类型 d代表目录,-代表普通文件,l代表软连接
    第2部分,2-10列代表文件的权限:rwxr-xr-x.
    第3部分:数字代表文件的链接数
    第四部分:root代表文件的所有者
    第5部分:root表示文件属于哪个用户组
    第6部分:数字的表示文件大小,以字节为单位
    第7部分:时间,表示文件的修改时间
    第8部分:文件名

~~~shell
   #文件权限
   drwxr-xr-x.  2 root root 4096 Nov 20 07:36 tmp
   r:read  可读
   w:write 可写
   x:excute  可执行
   -:表示无权限

   权限:
       2-4位   ower  文件的所有者    
       5-7位   group:用户组
       8-10位  other:其他用户
  1. ll

    以列表方式显示,其实是ls -l的别名
    白色代表普通文件
    绿色代表可执行文件
    蓝色代表目录
  2. man命令

    #命令的帮助文档
    sudo apt-get  install man
    #用法:
       man  命令名
    常用的快捷键
    空格 f     下翻页
    b          上翻页
    shift + g   到文件末尾
    g         文件开头
    q         退出
    上下箭头   前翻和后翻
    回车键     后翻
    home      回到开始
  3. history命令

    查看你敲过的命令

  4. 硬链接和软连接

    文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

    为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

    • 一个 inode 号对应多个文件名,则称这些文件为硬链接
    link 源文件名 新文件名 
    ln 源文件名 新文件名 
    
    stat 文件名 #查看文件信息
    ls -i  #查看目录下文件的硬链接数
    [email?protected]:/csl$ ls -la
    total 4
    913923 lrwxrwxrwx. 1 root root    5 Mar 18 16:20 2.txt -> 1.txt
    913926 -rw-r--r--. 2 root root    0 Mar 18 19:58 31.txt
    913926 -rw-r--r--. 2 root root    0 Mar 18 19:58 32.txt
    913925 -rwxr-xr-x. 1 root root    0 Mar 18 17:29 5.txt
    913924 drwxr-xr-x. 2 root root 4096 Mar 18 17:29 test
    
    # 硬链接的特点:
       1.只能对已存在的文件进行创建;
       2.不能交叉文件系统进行硬链接的创建;
       3.不能对目录进行创建,只可对文件创建;
       4.删除一个硬链接文件并不影响其他有相同inode 号的文件。
  • 软连接

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接类似快捷方式

ln -s 源文件 目标文件。
   
软连接的特点:
   软链接有自己的文件属性及权限等;
   可对不存在的文件或目录创建软链接;
   软链接可交叉文件系统;
   软链接可对文件或目录创建;
   创建软链接时,链接计数 i_nlink 不会增加;
   删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接

?

三、目录管理

  1. 绝对路径和相对路径

    linux的目录和windows不同,不区分盘符,只有一个根目录,根目录用/表示。

    • 绝对路径:从根目录到当前文件(目录)的路径,比如:/home/python
    • 相对路径:以当前目录为基准,表示上级目录或子目录
      • 用 . 表示当前目录,一般执行shell脚本可以用 . 1.sh或者 ./1.sh
      • 用..表示上级目录
    • linux目录分隔符只能用正斜线(/)表示
    • 用 ~ 表示用户主目录,用 - 表示来源目录(你从哪个目录切换到当前目录的)
  2. 目录切换

    cd 目录名  #切换目录
     .  #当前目录
     ..  #代表上级目录
     /   #代表根目录
     ~   #用户家目录  root用户的家目录/root   普通用户的家目录/home/用户名
     cd /etc/yum.repos.d
     cd / #切换到根目录
     cd -  #切换到来源目录
     cd ~ #返回用户的家目录
    
     pwd #显示当前的目录名
  3. 提示信息

    [[email?protected] ~]# cd /
    [[email?protected] /]$
    root代表用户名
    localhost 主机名
    ~ 用户的家目录  等同于   /home/用户名
    /  根目录
    # 表示超级管理员在操作
    $ 普通用户在操作
  4. 创建目录

    sudo mkdir  目录名
    sudo mkdir -p  目录名    #递归创建目录
    sudo mkdir -p  h1801/1/2
    sudo mkdir -p  1/{2,3}/{4,5,6} #
  5. 删除目录 rmdir

    sudo rmdir [option]  目录名    #删除的时候目录必须为空
    sudo rmdir -p  目录名   #递归删除空目录
    sudo rmdir -p 1/2/3 #1,2,3目录都必须不能有文件
    sudo rm -rf 目录名

四、文件操作

  1. 文件创建

    sudo touch  文件名 [文件名2] [文件名3]....   #创建多个空文件,如果文件存在,自动忽略,不会覆盖
    echo 'hello world'  > 1.txt   #可以将显示内容输出到文件,但会覆盖原来的内容,文件不存在则创建
    echo '世界,你好'    >> 1.txt  #将显示内容追加到文件末尾,文件不存在则创建
    # >  >> 输出重定向
  2. 文件移动

    sudo mv 源文件   目标文件   #销毁原件
    sudo mv  1.txt  ./lpl/  #将1.txt移动到字目录lpl下,文件名不变
    sudo mv  1.txt  2.txt   #如果在同一个目录就是文件重命名  将1.txt重命名为2.txt
  3. 文件拷贝

    sudo cp 源文件   目标文件
    sudo cp -rf  源目录   目标目录   #递归拷贝目录
  4. 文件删除

    sudo rm  文件名  
    sudo rm -i 文件名  #删除前逐一确认
    sudo rm  -f  文件名   #删除文件不带提示
    sudo rm -rf  目录名   #递归删除目录
  5. 文件查看

    cat  文件名       #输出文件内容,从前往后输出,
    tac   文件名      #cat的反写,从后往前输出
    head -n N  文件名   #显示文件的前几行,可以指定查看的行数,默认显示10行
    tail -n N 文件名   #显示文件的最后几行,可以指定查看的行数
    tail -f  cat 文件名   #实时显示文件内容
    watch -d -n 秒杀 cat 文件名  #实时显示文件内容 有高亮
    sudo vi  文件名   
    more  文件名       #从前往后查看,可以翻屏,不能往前翻  回车一行行查看,空格翻屏  q退出
    less  文件名       #和more类似,可以前翻页,g首页 G尾页,b前翻页,空格和f后翻页,q退出
    stat  文件名       #查看文件详细信息
    
    stat 2.txt
      File: `2.txt'
      Size: 146          Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d Inode: 913936      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2017-11-21 00:44:49.108999194 -0500
    Modify: 2017-11-21 00:44:43.773000078 -0500
    Change: 2017-11-21 00:44:43.775000065 -0500
  6. 文件查找

    • find
    # find 用于在系统内搜索指定文件
    用法:
       find [路径] [参数]
         -name  按文件名查找
         -mtime +/-n  #-n表示n天以内修改的文件,+n表示修改超过n天的文件
         -user   #按文件属主查找
         -size [+/-]n[c/k/M/G] #查找文件长度为n块,+表示大于,-表示小于;c是字节 
         -perm 权限数值    #按照文件权限进行查找
    
    find /  -name  "文件名"          #从根目录查找指定文件名的文件
    find /csl/sh1702 -name "2.txt"  #查找指定目录先的文件
    find /tools -mtime -3           #查找tools目录下修改时间是3天以内的文
    find /tools  -size 12c          #查找长度为12字节的文件
    find /var ﹑erm 0642 ﹕ize +10k ﹕ize                         

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读