• Linux基础命令


    Linux基础命令

    一、Linux系统目录结构

    / -- 根目录

    /bin -- 系统可执行程序存放目录

    /boot -- 内核和启动程序的相关文件都在此目录下

    /lib -- 库目录,主要存放系统最基本的动态共享库

    /media -- 挂载设备媒体,U盘,光驱等

    /mnt -- 该目录是为了让用户挂载别的文件系统

    /usr(unix system resources) -- 庞大和复杂的目录,很多应用会安装到此目录

    /usr/local -- 用户自己安装软件的目录

    /sbin -- 超级管理员root的可执行文件目录

    /proc -- 这个目录是系统内存的映射,会保留进程运行的一些信息

    /etc -- 系统软件的启动和配置目录

    /etc/passwd -- 用户存放文件 man 5 passwd 查看文件格式

    /dev -- 设备文件所在目录

    /home/user -- 用户家目录

     

    Linux一切皆文件

    二、相对路径和绝对路径

    1. 以“/”开始的为绝对路径

    2. 以" . "或者“ .. ”开始的路径,“ . ”代表当前路径 ,“ .. ”代表上一级路径 

    三、常用命令

    3.1 基本操作

    1. history -- 查看历史命令 可以方向键上下查看之前的命令

    2. man -- 查看命令帮助

    3. ls(list) -- 查看文件信息

      • -a:查看全部文件,文件前带" . "是隐藏文件

      • -l:查看文件的详细信息

      • -h:适合人看的大小,如 1k,2M,3G
      • -R:递归查看子目录的文件信息

      • -lrt:文件按照修改时间排序

      • 通配符

        • 任意多字符:*

        • 任意一个字符:?

       

    3.2 目录相关操作

    1. cd:更改目录

      • cd /home

      • cd ..:返回上一层

      • cd ~:回到home/user目录

      • cd

      • cd $HOME

      • cd -:回到上一次所在的目录

    2. ren@linux:~/code$:目录介绍

      • ren:代表用户

      • linux:代表机器名

      • ~:代表家目录

      • code:家目录下面的当前目录

      • $:代表普通用户

      • #:代表管理员

    3. pwd:打印当前工作路径

    4. which

      • which ls :查看 ls 命令所在路径

      • cd 命令是bash自身带的命令

    5. mkdir:新建文件夹

      • mkdir dir1 dir2:创建多个目录

      • mkdir dir1/dir2:在dir1下面创建dir2,前提是dir1必须存在

      • mkdir dir1/dir2 -p :递归创建目录

    6. rmdir:删除文件夹

      • rmdir dir

      • 空目录定义:只包含" . " 和 “ .. ”的目录

      • rmdir dir1/dir2 -p:如果dir2删除后,dir1为空,那么会递归删除

     

    3.3 文件相关操作

    1. touch:创建文件

      • touch [option] filename1 filename2:创建文件,如果 文件存在,则修改文件的最后修改时间

    2. rm:删除文件或文件夹

      • rm filename

      • rm -rf*:强制删除目录下全部内容

        • -r:递归删除子目录

        • -f (force):强制

    3. cp(copy):拷贝文件或目录

      • cp [option] srcpath despath

        • despath 是一个目录,将 srcpath 拷贝到 despath 目录下

        • despath 不是一个目录,在despath上级目录(../xxx),在../下创建一个xxx文件,并将srcpath的内容拷贝进来

      • cp -r aa/ee /bb:递归拷贝目录,将aa下的ee拷贝到bb目录下

    4. mv(move):移动

      • mv src des:重命名文件或者目录

      • mv src des:移动文件或目录到其他目录,注意,des代表一个路径

      • mv src des:移动并改,des是其他路径下的文件名

     

    3.4 文件内容相关操作

    1. cat:将文件内容显示到终端,如果无文件,则读标准输入

      • cat filename:直接显示文件信息到屏幕

    2. more:分屏查看文件

      • more file:空格,一页一页显示,回车逐行显示

    3. less:分屏显示

      • less file:回车或上下键可以反复查看文件内容

    4. head:从头部查看文件

      • head -n file:显示文件头n行,如果不加默认显示10行

    5. tail:从尾部查看文件

      • tail -n file:显示文件末尾n行,如果不加默认显示10行

      • tail -f file:查看文件尾部内容,不退出,用于追踪日志

     

    3.5 统计信息

    1. tree:树状显示目录结构(sudo apt install tree

    2. wc(word count):统计文件内容,默认显示:行,单词数,字节数

      • wc * :统计整个目录

        • -l:显示行数

        • -w:显示单词数

        • -c:显示字节数

    3. du:查看当前路径使用情况

      • du -h:更适合人类观察

      • du -h --max-depth=1:递归一级子目录

    4. df:查看硬盘剩余情况

      • df -h:显示磁盘使用情况

      • df -h --block-size=GB:按照GB统计显示

    四、文件属性和用户用户组

    文件属性

    文件夹权限标志位 用户 用户组 大小(目录一般都是4096) 时间 目录

           

    1. - rw- r-- r--:文件权限标志位 - rwx rwx r-x:a.out d rwx r-x r-x:目录权限标志位

      • 文件类型

        • -:普通文件
        • d:目录文件
        • l:符号连接文件
        • c:字符设备,char
        • b:块设备,block
        • p:管道设备,pipe
        • s:本地套接字,socket
      • 归属用户的权限

        • r:可读

        • w:可写

        • x:可执行

        • 如果对应位置无权限写 -

      • 归属组的权限

      • 其他用户的权限 

      • 权限位数字表示法(8进制数)

        • rw-:110 --> 6 用户位

        • r--:100 --> 4 组权限位

        • r--:100 --> 4 其他权限位

        • 三个数连接起来前面 +0 (0644)

    2. 1: 硬连接计数

    3. ren:用户

    4. ren:用户组

    5. 8980:大小

    6. 4月 11 14:49:时间

    7. examples.desktop:文件名

     

    用户用户组

    1. whoami:显示当前用户

    2. ln:建立软硬连接

      • ln -s 源文件 目标软连接名:建立软连接,目录也可以创建软连接。软连接不会增加硬连接计数,相当于创建一个快捷方式。

      • ln 源文件 目标文件:建立硬连接

        硬连接,hello,hello.hard,hello.hard1引用的同一块磁盘块,值是一样的。

      • unlink filename:删除引用计数和文件,当引用计数为0时,文件被删除。

      • stat file:可以查看文件的 inode 信息

    3. chmod:改变文件的权限

      • chmod [u|g|o|a] [+|-] [r|w|x] file:可以用 + 或者 - 增加权限,减少权限 -- [ user | group | other | all ]

      • chmod -x file:如果不加用户和组等信息,则默认是a,代表全部

      • chmod 0664 file:按照数字表示法设置权限位

    4. chown:改变用户 -- 文件名|目录

      • sudo chown user:group file:可以修改file 的所有者和所属组

      • sudo chown user file:只修改所有者

    5. chgrp:改变组

      • sudo chgrp groupname file:修改文件所属组

    五、查找和检索 

    1、find:查找

    • -name:按文件名查找
      • find + 路径 + -name + 文件名
      • find /home -name a.txt
    • -size:按文件大小查找
      • find + 路径 + -size + 范围
        • 范围
          • 大于:+表示 -- +100k
          • 小于:-表示 -- -100k
          • 等于:不需要添加符号 -- 100k
          • 取中间值: find /home -size +1M -size -5M
    • -type:按类型查找
      • find + 路径 + -type + 类型
        • 类型
        • f -> 普通文件类型
        • d -> 目录
        • l -> 符号连接
        • b -> 块设备文件
        • c -> 字符设备文件
        • s -> socket 文件
        • p -> 管道
    • -maxdepth:最深路径,当前路径1,下一级2
      • find ./ -maxdepth 1 -size +1M`:当前路径下大于1M

          前面查到的结果传递给后边的指令 ,exec跟ok差不多,ok是安全模式,每一条指令都会提示。结果特别多会造成指令的溢出

      • find ./ -maxdepth 1 -size +1k -exec ls -lh {} ;
      • find ./ -maxdepth 1 -size +1k -ok ls -lh {} ;
    • xargs:把find 查找的结果分成若干个块,按块输出给后面的指令
      • find ./ -type l |xargs ls -l

    2、grep:检索,内容过滤

    • grep [option] 内容 dir|filename
      • -n:显示行号
      • -r:递归子目录
      • -v:过滤输出结果
      • find ./ -type f |grep txt:find与grep结合使用
      • cat txt.c |grep main:查找指定文件内是否有main
      • tail -f tcpsrv.1705 |grep connect:分析日志

    3、xargs:将前一个目录的输出分成小块输入给后面的命令

    六、压缩包管理

    1. zip压缩命令

      • zip -r dir.zip dir :打包,-r代表递归子目录 例:zip -r bb.zip bb hello
      • unzip dir.zip:解包,例:unzip bb.zip
    2. .gz格式的压缩包:gzip与gunzip,不能操作目录,基本不用

    3. rar压缩

      • rar a -r 压缩包名(自动添加后缀) 要压缩的文件
      • rar a -r newdir dir
        • a:压缩
        • -r:递归
      • rar x newdir.rar
    4. tar高级打包命令

      1. 只打包不压缩
        • 打包:tar cvf dir.tar dir
        • 解包:tar xvf dir.tar
      2. gz格式,最常用打包工具
        • 打包:tar zcvf dir.tar.gz dir
          • z:gz格式压缩,不带z就是tar包,带z就是 gz
          • c:压缩文件
          • v:显示信息
          • f:指定压缩包名
            • tar [option] 压缩包名 要打包的内容
            • 例:tar zcvf bb.tar.gz bb
            • 要排除某个文件夹使用 --exclude=dir 后面不能跟/
        • 解包:tar zxvf dir.tar.gz
          • x:解压
      3. bzip2格式
        • 打包:tar jcvf dir.tar.bzip2 dir
        • 解包:tar jxvf dir.tar.bzip2

    七、软件安装和卸载

    1、apt 自动安装软件,需要知道软件名称
      Ubuntu:apt
        sudo apt update     更新源,其实就是更新 /etc/apt/sources.list 这个文件
        sudo apt install tree  安装 tree命令
        sudo apt remove tree  卸载tree命令
        sudo apt clean     清理包
      CentOS:yum 
     
    2、dpkg:根据deb安装包来安装软件
      sudo dpkg -i tree.deb   安装软件包
      sudo dpkg -r tree.deb   移除软件包 
     
    3、源码安装(通用,非绝对)
      1. 解压缩源代码包
      2. cd dir
      3. ./configure  --检测文件是否缺失,创建Makefile,检测编译环境
      4. make --编译源码,生成库和可执行程序
      5. sudo make install --把库和可执行程序,安装到系统路径下
      6. sudo make distclean --删除和卸载软件

    八、用户管理

    1. 创建用户

      • -s:指定 shell
      • -g:指定组
      • -d:用户家目录
      • -m:家目录不存在时,自动创建
      • 例:sudo useradd -s /bin/bash -g itcast -d /home/itcast -m itcast
    2. 设置用户组

      sudo groupadd itcast:增加 itcast 用户组

    3. 设置密码:sudo passwd itcast

    4. 切换用户

      • su itcast:切换到 itcast 用户
      • su -itcast:切换到 itcast 用户,带有环境变量
    5. root 用户:sudo su

    6. sudo userdel itcast:删除用户

    7. sudo userdel -r itcast:删除用户连带删除目录 

    九、进程管理

    1. who:查看登录设备

    2. ps:查看进程信息

      • ps aux
      • ps ajx
    3. kill:杀死进程,kill -9 pid

    4. env:环境变量,echo $SHELL

    5. top:查看系统信息

    十、网络管理

    1. ifconfig:查看ip信息

      • eth0代表本地第一块网卡
      • sudo ifconfig eth0 ip
    2. ping :ping域名

      • -c:只能ping四次
    3. nslookup:通过域名得到ip

    4. netstat:查看网络连接状态

      • nsetstat -an |grep port

    十一、其他常用命令

    1. alias :配置命令别名
      • alias ll:查看ll命令的重命名
      • alias rm :查看rm命令的重命名
    2. man:帮助手册
      • man man:查看man的帮助手册
    3. date:日期指令
      • date:获得系统时间
      • date +'%Y%m%d':获得当前日期
    4. umask:文件权限补码
      • umask:显示八进制文件掩码 ,0002取反 0775&666 -> 664
      • umask -S:文件表示法显示对应的补码权限,u=rwx,g=rwx,o=rx
    5. echo:输出变量或者字符串

    十二、关机重启

    1. 关机
      • shutdown -h now :立刻关机重启
      • shutdown -h +1 :1分钟后关机
      • init 0:关机
      • poweroff:关机
    2. 重启:
      • reboot
      • shutdown -r +1:一分钟后重启
      • init 6
    3. 注销:
      • logout
      • exit
      • ctrl+d
     
  • 相关阅读:
    从goauth2的一个bug说起
    Vagrant与skynet框架
    离开博客园了
    (转) Android开发性能优化简介
    ListFragment源码 (待分析)
    Activity来了
    Android下的屏幕适配
    恶心的content
    Android下的xml资源详解
    各个页面样子的实现与演示
  • 原文地址:https://www.cnblogs.com/zhaye/p/11312137.html
Copyright © 2020-2023  润新知