alin的学习之路(Linux系统编程:一)(Linux基础命令)

alin的学习之路(Linux系统编程:一)(Linux基础命令)

1.Linux学习准备

  1. 操作系统的作用

    1. 向上给用户提供简单的操作计算机硬件的方式
    2. 对下管理硬件
    3. 承上启下
    4. 程序运行在操作系统上,程序运行时的资源由操作系统提供,操作系统管理和监控运行的程序。
  2. Linux和Windows的区别

    1. 系统函数不同(跨平台时要注意这一点)
    2. 应用领域不同:Windows多用于娱乐和办公,Linux多用于服务器领域。
    3. 目录结构不同:Windows有多个盘符,Linux所有文件都保存在根目录下。
  3. Linux内核和发行版

    1. 内核
      1. 内核是专门用于对硬件管理的程序,是最最基础的程序
      2. uname -r 查看内核版本
    2. 发行版
      1. 内核的软件的安装,管理等比较麻烦
      2. 内核+软件管理程序+使用软件 = Linux发行版
  4. Linux的学习内容

    终端命令和系统调用

2.Linux命令基础

  1. 命令解析器(shell)
    1. 功能:用来解析输入的命令,并且向内核发送操作指令
    2. 查看当前的命令解析器:echo $SHELL
  2. man手册
    1. 命令:man
    2. man手册分为7卷,常用1 2 3卷分别是,命令相关说明,库函数,系统调用。
  3. 软件的安装和卸载
    1. 安装:sudo apt install 软件名
    2. 卸载:sudo apt remove 软件名
  4. 用户分类
    1. 超级用户root:有着管理该系统的最高权限,可进行任意的操作且无限制
    2. 普通用户:仅能操作自己用户所属的内容,默认普通用户登陆后会进入对应本用户的家目录下
  5. Linux重要目录
    1. /根目录
    2. /home 家目录,每个用户自己的目录
    3. /etc 软件、系统配置文件目录
    4. /lib 存储系统或软件使用的库的目录
    5. /usr (unix system resource)
      1. /usr/bin 存放一些可执行程序
      2. /usr/include 存放头文件
      3. /usr/lib 存储静态库和动态库
    6. /usr/local /opt 一般用于第三方软件的安装
    7. /root root用户的家目录
    8. /sys 系统目录
    9. /proc 系统使用,存放系统运行过程中内存中的数据
    10. /lost+found 系统意外停止、断电时会将数据临时存储到该目录,用于恢复系统
    11. /dev 设备文件目录,Linux上一切皆文件,设备也是如此,对设备的操作就像是操作文件
  6. 远程登陆
    1. 使用第三方软件:XShell、putty等
    2. 通过命令登陆:Windows命令行中,ssh 用户名@服务器ip地址,可远程登陆

3.目录操作相关命令

  1. Linux命令格式:命令 [选项] [参数]
  2. ls
    1. 将某个目录下的文件和目录列出来
    2. -a 显示全部文件及目录,.开头的文件是隐藏文件,也会显示
    3. -l 以列表的形式显示
    4. -f 给某些特定文件追加标识,例如:可执行文件加*,目录加/
    5. ll 是命令的别名
      1. ll 代表ls -alF
      2. alias 别名=‘命令’ 可给命令起别名
      3. 查看别名:alias
      4. 删除别名:unalias 别名
  3. pwd(print working directory):显示当前目录
  4. cd (change directory)
    1. cd 路径 :切换到某一路径
      1. 绝对路径:以/开头的路径
      2. 相对路径:以 . 或 … 开头,是以当前路径或上一级路径为基准开始的路径
    2. cd :只写一个cd 表示切换到家目录
    3. cd - :表示切换回上一个目录
    4. 几个特殊的目录表示
      1. ~ 家目录
      2. / 根目录
      3. . 当前目录
      4. … 上一级目录
  5. tree:以树形显示目录结构
  6. 语法:tree 选项 目录
  7. -d:只显示目录,不显示文件
  8. -f :显示目录的完整路径
  9. 系统默认不带tree,如果没有的话使用sudo apt install tree
  10. mkdir(make directory):创建目录
    1. -p 递归创建目录:例如mkdir -p a/b/c
    2. 创建:aa 目录下有 aa1 aa2 目录,在 aa2 目录下有个 bb1, bb2目录. mkdir -p aa/{aa1,aa2/{bb1,bb2}}
  11. rm(remove):删除目录或文件
    1. -r 用于删除目录
    2. -rf ,f(表示force)表示强制删除,如果目录不存在不会询问

4.文件相关命令

  1. touch:创建空文件 touch 文件名 [文件名……]
  2. rm(remove):删除文件
    1. rm 文件名:删除指定的文件
    2. 删除以.txt结尾的所有文件:rm *.txt
    3. 删除所有文件不包括目录:rm *
    4. 删除所有文件包括目录 rm -rf *
  3. mv(move):移动文件或目录
    1. mv 文件 目录:表示将文件移到指定路径
    2. mv 旧文件名 新文件名:可以用来重命名文件
    3. mv 目录1 目录2:将目录1移动到目录2下,例如:mv abc/ ppp/表示将abc目录移动到ppp目录下
    4. mv 旧名目录 新目录名:表示给目录重命名,例如:mv abc/ ppp给目录abc重命名ppp
  4. cp(copy):拷贝文件或目录
    1. 拷贝文件:cp 源文件 目录 ,例如:cp a.txt b.txt 将a.txt拷贝成b.txt
    2. 拷贝目录:cp -r 源目录 目录 (-r表示递归拷贝),例如:cp -r qqq/ abc 将ppp目录拷贝成abc目录
  5. ln(link)
    1. 软连接:ln -s 源文件 链接文件,例如:ln -s a.txt a.lnk,删除a.txt后a.lnk失效
    2. 硬链接:ln 源文件 链接文件,例如:ln a.txt a.lnk,删除a.txt后a.lnk不失效
  6. find
    1. 一般通过文件名去查找文件
    2. 查找具体名字的文件:sudo find 查找目录 -name 文件名 ,例如:sudo find / -name stdio.h
    3. 模糊查找:文件名可以使用通配符,例如:sudo find / -name *.h

5.文件查看相关命令

  1. 文件的传输:
    1. 可使用第三方软件进行传输:Fileziila 可以将本地文件、远程文件上传下载。
    2. 可以使用 wget 网址 命令从网址中下载文件
  2. cat:用于查看较小的文件
  3. more:可用于查看较大的文件,一次显示一页,在底端显示查看进度,按空格向下翻页,按b向上翻页,按enter向下显示一行,按q退出
  4. less:于more类似,但底端的进度改为命令行,可以用来搜索文件中的指定字符
  5. head:head -n 显示文件的前n行
  6. tail:tail -n 显示文件的最后n行
  7. grep
    1. 用于查看符合条件的某些行
    2. 语法:grep 关键字 文件名,例如:grep "me" command.txt,查看包含me的行
    3. 输出内容显示行号:使用-n选项,例如:grep -n "me" command.txt
    4. -v 选项表示输出所有不包含关键字的行,例如:grep -vn "me" command.txt
    5. grep -n "^G" command.txt, 表示显示所有以 G 开头的行的内容。 ^ 表示以…开头。

思考问题1

  1. 为什么要学习 Linux? 学习 Linux 最重要的是学习什么?
    1. 为什么要学习Linux
      1. 开发人员需要掌握Linux的使用
      2. 大部分开发均部署在Linux上
    2. 学习 Linux 最重要的是学习什么
      1. 学习终端命令和系统调用
  2. 什么是 Linux 命令? 学习 linux 命令有什么用?
    1. 什么是Linux命令:向内核发送指令,操作Linux系统
    2. 学习Linux命令可以管理Linux系统,管理内核。
  3. 操作系统的作用是什么?操作系统给用户提供了那些操作方式?
    1. 操作系统的作用
      1. 向上给用户提供简单的操作计算机硬件的方式
      2. 对下管理硬件
      3. 承上启下
      4. 程序运行在操作系统上,程序运行时的资源由操作系统提供,操作系统管理和监控运行的程序。
    2. 操作系统给用户提供了那些操作方式
      1. 图形界面
      2. 终端命令
      3. 系统调用
  4. 远程连接命令是什么?
    1. ssh 用户名@服务器IP地址
  5. 目录操作命令都是什么作用?
    1. 对文件和目录进行管理
  6. man 手册的作用?
    1. 帮助开发人员了解命令,库函数,系统调用等共7项内容
  7. 什么是 root 用户?为什么不建议使用 root 用户进行计算机操作?
    1. root是超级管理员用户,拥有最高的权限
    2. 使用root用户进行计算机操作因为权限的最大,有可能误删除某些必要系统文件,导致系统崩溃
  8. 软件安装与卸载命令是什么?
    1. 安装:sudo apt install 软件名
    2. 卸载:sudo apt remove 软件名
  9. 什么是 Linux 内核?什么是 Linux 发行版? 我们用的是什么发行版本?
    1. Linux内核是一组专门管理硬件的程序,是最最基础的程序
    2. 内核+软件管理程序+实用的软件 = Linux 发行版,因为内核的软件安装管理等比较麻烦,且几乎没有预装软件,很多厂商从官网下载内核后自己设计安装管理程序,随后制作出Linux发行版
  10. /home 目录的作用是什么?
    1. 家目录,是每个用户自己的目录,用户登录后默认进入自己的目录,存放用户的文件

思考问题2

  1. 如果要查看文件内容可以使用哪些命令?
    1. cat,more,less,head,tail,grep
  2. 进行文件重命名可以使用哪个命令?格式是什么?
    1. mv
    2. mv 文件名 新文件名
  3. 如果要在 /home/itcast 目录下查找所有的 .h 文件,命令应该怎么写?
    1. find /home/itcast -name *.h
  4. 为什么要在某些命令前面加上 sudo 呢?
    1. 有些目录和文件使用普通用户的权限无法访问到,需要用临时借用管理员的权限才能访问到
  5. 删除目录使用什么命令?命令的格式是什么?
    1. rm
    2. rm -r 目录名 (-f 表示强制删除,如果目录不存在不报错,如果存在直接删除)
  6. 如果要给一个命令增加别名应该使用哪个命令?如果要删除该别名使用哪个命令?
    1. alias
    2. unalias
  7. Linux 的目录和 Windows 的目录区别是什么?
    1. Linux所有得文件都在根目录下,也就是/
    2. Linux下没有盘符

你可能感兴趣的:(Linux)