你需要知道的linux基础编程(一)

  1. 命令解析器
    Shell ----- UNIX操作系统
    Bash ----- Linux操作系统
    本质:根据命令的名字,调用对应的可执行程序

  2. Linux快捷键
    history 查看历史命令
    ctrl + p 在历史的命令记录里向上滚动
    ctrl + n 在历史的命令记录里向下滚动
    ctrl + b 光标向前移动
    ctrl + f 光标向后移动
    ctrl + a 光标直接到命令行首
    ctrl + e 光标直接到命令行末
    backspace/ctrl + h删除光标前面的字符
    ctrl + d删除光标后面的字符
    ctrl + u删除光标前面的所有字符
    table键补全或者提示命令
    ls 表示查看(如果后面不跟路径,就表示查看当前的目录,如果后面跟着路径表示查看该路径下的目录)
    clear 清屏
    pwd(print working directory)显示当前目录的绝对路径

  3. Linux系统的目录结构
    Linux系统下没有盘符
    / 表示Linux下的根目录

    1. /bin:
      bin是Binary的缩写,里面存放的是最经常使用的命令,每一个命令代表一个可执行程序,在terminal里面输入命令然后在在配置环境变量,命令就会找到bin目录,然后执行相对应的程序
    2. /boot:
      这里存放的是启动Linux时使用的一些文件,包括一些连接文件及镜像文件
    3. /dev:
      dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在linux中访问设别和访问文件的方式是相同的
    4. /etc:
      这个目录用来存放所有的系统管理所需要的配置文件和子目录
    5. /home:
      用户的主目录,在linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
    6. /lib:
      这个目录存放着最基本的动态连接共享库,其作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
    7. /lost-found:
      这个目录一般下是空的,当用户非法关机后,这里面就存放了一些文件
    8. /media
      linux系统自动识别一些设备,例如,U盘,光驱等,当自动识别后,linux会把识别的设别挂载到这个目录下
    9. /mnt
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了
    10. /opt
      这是给主机额外安装软件所摆放的目录,比如安装一个oracle数据库的时候就可以放到这个目录下,默认是空的
    11. /proc
      这个目录是一个虚拟的目录,他是系统内存的映射,我们可以直接访问这个目录来获取系统信息
      这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏弊主机的ping命令,使别人无法ping你的机器 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    12. /root
      该目录为系统管理员,也称为超级权限者的用户的主目录
    13. /sbin
      S就是super user的意思,这里存放的使系统管理员使用的系统管理程序
    14. /tmp
      这个目录是用来存放一些临时的文件
    15. /usr(user software resourse)
      这是一个非常重要的目录,用户的很多应用程序都放在这个目下,类似于windows下的program files目录
  4. 用户目录

    1. 绝对路径 从根目录开始写/home/itcast/aa

    2. 相对路径 相对于当前的工作目录而言

       . 代表当前目录
       .. 代表当前目录的上一级
       - 在临近路径的两个目录直接切换 cd -
      
    3. sjq@ubuntu
      sjq:当前登陆的用户
      @: at 在
      Ubuntu:主机名
      ~用户的家目录(宿主目录)
      $当前用户为普通用户
      #超级用户 – root

  5. 文件和目录操作

     文件或目录颜色一般情况
     	白色:普通文件
     	蓝色:目录
     	绿色:可执行文件
     	红色:压缩文件
     	青色:链接文件(相当于windows下的快捷方式)
     	黄色:设备文件(block块、char字符、fifo管道)
     	灰色:其他文件
    
    1. 查看目录

      1. tree
      2. ls
        ls -a查看目录下的全部内容
        ls -l列出来的是详细信息
        ls -al列出全部内容的详细信息
        在这里插入图片描述
    2. 在目录间切换
      Cd + 目录
      切换回主目录三种方式:

       Cd /home/aa
       Cd ~
       Cd
      

      查看当前所在目录 pwd

    3. 创建目录
      创建单一目录:Mkdir + dirname
      创建复合目录:mkdir + dir/dir/dir1 -p

    4. 删除目录

       删除空目录
       	Rmdir + 目录名
       删除非空目录
       	Rm + 目录名 + -r
       	Rm + 目录名 + -ri(i代表提示)
      
    5. 创建文件
      Touch + 文件名(文件不存在,创建文件,文件存在,更新文件时间)

    6. 删除文件
      Rm + 文件名

    7. 拷贝文件或目录
      拷贝文件

       Cp + 文件名 + 目标文件
       如果目标文件不存在就创建一个新的文件
       如果目标文件存在就覆盖原来的文件
      

      拷贝目录

       Cp + 目录名 + 目标目录名 + -r
       如果目标目录名不存在,则要创建目标目录名,并进行拷贝
       如果目标目录名存在,则要将目录名拷贝到目标目录名下
      
    8. 查看文件中的内容

      1. cat + 文件名(将文件中的内容输出到终端)
      2. more + 文件名(只能向后翻,不能向前翻)
      3. less + 文件名(ctrl + p向前翻页、ctrl +n向后翻页、q退出浏览、回车显示下一行、空格显示下一页)
      4. head + 文件名
      5. tail + 文件名
    9. 文件重命名
      mv + 源文件名 + 要更改的文件名

    10. 将文件移动到目录下
      mv + 文件名 + 目录名

    11. 创建软链接(创建快捷方式 文件和目录)
      ln -s + 路径(绝对) + 快捷方式的名字

    12. 创建硬链接(进行文件备份)
      直接链接的是硬盘的上inode结点
      不能对目录创建硬链接
      ln + 文件名 + 硬链接的名字
      硬链接不占用空间
      每次创建一个硬链接,次数加一
      Linux文件系统的存储单位是块
      inode – i结点 保存了一些文件信息 通过inode找到对应的文件

  6. 文件或目录的属性

    1. wc 获取文本文件的信息
    2. od 查看二进制文件
      -t 指定数据的显示格式
      参数
      1. c ASCII字符
      2. D 有符号十进制数
      3. F 浮点数
      4. O 八进制数
      5. U 无符号十进制数
      6. X 十六进制数
    3. du 查看当前目录中所有文件的大小
      命令:du -h
    4. df 查看磁盘的使用情况
      命令:df -h

    Which + 命令(查看所在的命令是在哪个目录下,只能查找外部的命令)

  7. 文件权限、用户、用户组

    1. 查看当前登陆用户
      Whoami
    2. 修改文件权限
      1. 文字设定法: chmod [who] [+|-|=] [mode] 文件名
        who(默认是所有人):

         文件所有者:u
         文件所属组:g
         其他人: o
         所有人: a
        

        +:添加权限
        -:减少权限
        =:覆盖原来的权限
        mode(权限):

         r:读
         w:写
         x:执行
        
      2. 数字设定法:

         -:没有权限
         R:4
         W:2
         X:1
         所有权限7
         765
         	7 --rwx --文件所有者
         	6 --rw --文件所有组
         	5 --rx -- 其他人
         减权限:chmod -001 temp(给其他人减了执行权限)
        
    3. 修改文件的所有者和所属组
      修改文件的所有者:chown 所有者的名字 文件名(如果没有权限的话,加sudo接用超级用户的权限)
      sudo Chown 文件所有者:文件所属组 文件名
      修改文件所属组:sudo chgrp 文件所属组 文件名
      对于目录来说必须有执行权限,否则无法访问目录里面的内容
  8. 文件的查找和检索

    1. 按文件的属性查找
      1. 按文件名查找
        Find + 查找目录 + -name + 文件的名字(文件名字用引号括起来)
        文件的名字可以用通配符(*匹配所有的、?匹配一个字符)
      2. 按文件大小
        Find + 查找目录 + -size + 文件的大小(+大于 -小于)
        Sudo find ~ -size +10M -size -100M(在家目录下查找大于10M小于100M的文件)
      3. 按文件类型
        Find + 文件查找目录 + -type + d/f/b/c/s/p/l
        创建管道:mkfifo 文件名
    2. 按文件内容查找
      Grep -r + “查找的内容” + 查找的路径
  9. 软件的安装和卸载

    1. 在线安装
      apt-get:

       安装:sudo apt-get install tree  在线下载安装
       移除:sudo apt-get remove tree
       更新:sudo apt-get update     --更新软件列表
       清理所有软件安装包:sudo apt-get clean(实际清理的是/var/jcache/apt/archives目录下的.deb文件)
      

      aptitude:

       安装:sudo aptitude install tree
       重新安装:sudo aptitude reinstall tree
       更新:sudo apt-get update
       移除:sudo aptitude remove tree
       显示状态:sudo aptitude show tree
      
    2. deb包安装:

       安装:sudo dpkg -i xxx.deb
       删除:sudo dpkg -r xxx
      
    3. 源码安装

      1. 解压缩源代码包
      2. 进入到安装目录:cd dir
      3. 检测文件是否缺失,创建makefile,检测编译环境
      4. 编译源码,生成库和可执行程序:make
      5. 把库和可执行程序,安装到系统目录下:sudo make install
      6. 删除和卸载软件:sudo make distclean
      7. 上述安装步骤并不是绝对的,应该先查看附带的readme文件
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习等系列文章

                      在这里插入图片描述

发布了38 篇原创文章 · 获赞 49 · 访问量 6924

猜你喜欢

转载自blog.csdn.net/Xiao_Jie123/article/details/105095406