自学整理的linux笔记

这篇博客是为Linux初学者准备的,详细介绍了Linux的基础知识,包括常用命令、系统信息、网络管理、用户与权限、远程管理等内容。通过实例演示了如ls、chmod、find、grep、ssh等命令的使用,帮助读者掌握Linux操作和管理。
摘要由CSDN通过智能技术生成

献给linux初学者看的

linux是一个套开源、稳定的操作系统
linux以.开头的文件为隐藏文件
【一个点】代表当前目录
【两个点】代表上一级目录

常用命令

  • ls

    • ls是英文list的缩写,是查看列表目录里面的内容
    • ls常用选项---------
      【ls -al】 显示所有的信息
      【ls -a】 显示指定目录下所有的子目录与文件,包括隐藏文件
      【ls -l】 以列表方式显示文件的详细信息(纵向显示,文件夹目录 是蓝色字体以d显示,文件是白色字体以-显示,时间日期,磁盘空间大小(r是可读的意思)(w是可以写的意思)(x是可执行的意思))
      【ls -hl】配合-l以人性化的方式显示文件的大小
      【ls -l 】 可以查看文件的详细信息,从左到右依次是:
      (1)权限:第一个字节如果是d表示目录 -代表文件
      (2)硬链接数:通俗地讲,就是有多少种方式,可以访问到当前目录/文件
      (3)拥有者:家目录下 文件/目录 的拥有者通常都是当前用户
      (4)组:在Linux中 很多时候会出现组名 和 用户名 相同的情况下
  • chmod

    • 修改文件读取权限
      u=user 文件所属用户,拥有者
      chmod u+r a.txt :给文件的拥有者加一个可读权限
      chmod u-r a.txt :给文件的拥有者减一个可读权限
      g=group 文件所属的组,组用户
      o=other 其他用户
      a=all 所有用户
      例子:chmod a+rwx a.txt :给所有的用户添加所有的权限
      【+】:授权
      【-】:去权
      【=】:后面的就会赋权,没有的就会去权
      chmod o=r a.txt :只保留r,wx去掉

    • linux权限的含义:rwx

      • r
        - 对于文件来说,没有r权限,文件就是不可读的
        - 对于目录来讲,没有r权限,就不能用ls看目录的内容了
      • w
        - 对于文件来说,没有w权限,文件是只读的
        - 对于目录来讲,没有w权限,是不可以在这个目录下创建新的文件的
      • x
        - 对于文件来说,没有x权限,文件就不是一个可以执行的程序了
        - 对于目录来讲,没有x权限,就不能用cd进入到这个目录
    • 拥有者(可读。可写。可执行)
      r w x
      4 2 1


      r w x
      4 2 1

      其他
      r w x
      4 2 1

      常见的数字组合:(u表示拥有者,g表示组,o表示其他)
      777====》u=rwx,g=rwx, o=rwx
      755====》u=rwx,g=rw, o=rw
      644====》u=rw,g=r, o=r
      111====》 u=x,g=x ,o=x


  • ls通配符的使用:如果目录中文件特别多的话而且想快速精确就可以用通配符
    【星号】代表任意个数的字符
    【ls a*星号】:以a开头的文件或者目录的内容
    【ls 星号a】:以a结尾的文件或者目录的内容
    【ls 星号a星号】:只要名字中有a的就显示
    【?】只代表一个字符
    【ls a?】:以a开头,后面任意一个字符
    【ls ?a】:开始有任意一个字符,以a结尾,就2个字符为文件或者目录】
    【ls ??】:查看名字只有2个字符的
    []定义一个匹配的字符组
    【ls [a,b,c]星号】:以a或者b或者c开头的,后面任意
    【ls [a-f]*星号】:从a到f开头的,后面任意
    【ls 星号[a-f]星号】:只要名字中有a到f中的任意一个字符即可

  • cd

    • cd 是切换到当前用户的主目录(/home/用户目录)
      cd / 回到跟目录
      cd~是切换到当前用户的主目录(/home/用户目录)
      cd. 保持在当前目录不变
      cd…切换到上级目录
      cd- 可以在最近的两次工作目录之间来回切换

相对路径和绝对路径
相对路径:在输入路径时,最前面不是/或者~,表示相对 当前目录 所在的目录位置(相对于当前工作目录的一个路径)
绝对路径 : 在输入路径时,最前面是/或者是~,表示从根目录/家目录 开始的具体的目录位置(相当于根目录/家目录的一个准确的路径)

  • touch

    • touch:创建空文件或者更改文件最后的修改日期
    • touch文件或者目录名
      • 如果要更改一个目录的最后修改时间,touch后面的目录名一定要存在
        touch b.txt
  • mkdir创建目录

  • mkdir 创建目录

  • mkdir -p 目录/目录

    • 创建有嵌套关系的多级目录
      创建一个目录:mkdir aaa
      创建一个由嵌套关系的多级目录a/b/c:mkdir -p a/b/c
  • rm删除文件或者目录

    • rm 文件
    • rm -r 目录
    • 当文件或者目录不存在的时候,rm会报错
    • rm -f 目录 :目录不存在的时候也不错报错
      rm -f abd:删除abc目录,即使abc目录不存在,也不会报错
  • cp和mv

    • cp文件拷贝
      • cp 源文件 目标文件
      • -r 拷贝目录
      • -l 当目标文件已经存在的,会给用户是否覆盖的提示
    • mv文件移动
    • mv和cp的用法参数基本一致
    • mv和cp的区别是:cp之后的源文件还存在,mv之后的源文件就不存在了
      - cp a.txt aaa/a.txt : 把当前目录下的a.txt文件拷贝到aaa目录下
      - cp aaa/a.txt a.txt :把aaa目录下的a.txt文件拷贝到当前目录
  • cat查看文件内容

    • 可以用来查看文件的内容、创建文件、文件合并、追加文件内容等功能
    • 会一次显示所有的内容,适合查看内容较少的的文本文件
      - cat -b f.txt:对非空输出行编号
      - cat -n f.txt:对输出的所有行编号
      - cat f.txt:查看f.txt的内容
      - cat /proc/cpuinfo: 显示CPU info的信息
      -cat /proc/interrupts :显示中断
      -cat /proc/meminfo: 校验内存使用
      -cat /proc/swaps :显示哪些swap被使用
      -cat /proc/version :显示内核的版本
      -cat /proc/net/dev :显示网络适配器及统计
      -cat /proc/mounts :显示已加载的文件系统
  • more分屏查看文件内容

    • 可以用于分屏显示内容,每次只显示一页内容
    • more 文件名
      适合于查看内容较多的文本文件
      空格键 显示文本文件的下一屏
      Enter键 一次滚动文本文件的的一行
      b 回滚一屏
      f 前滚一屏
      q 退出
      - more /proc/meminfo:在proc目录下 显示meminfo分屏信息
  • grep空格+搜索内容空格+文件:在指定文件中查找指定的字符串

    • Linux系统中grep命令是一种强大的文本搜索工具
      grep -n 显示匹配行及行号
      grep -v(vn) 显示不包含匹配文本的所有行(相当于求反)
      grep -i(in) 忽略大小写
      grep允许对文本文件进行 模式 查找,所谓的模式查找,又被称为正则表达式
      grep ^+搜索的内容 +文件名 行首搜索以(搜索的内容)开头的行
      grep $+搜索的内容 +文件名 行尾搜索以(搜索的内容)结束的行
      - grep ‘s’ meminfo:在meminfo文件中查找是否有字符s的行
      - grep -n ‘s’ meminfo:显示meminfo行号
      - grep -ni ‘s’ meminfo:显示行号和忽略大小写
  • echo回显字符串

  • echo 字符串

    • 把后面的字符串回显到屏幕上
      echo会在终端中显示参数的指定文字,通常会和重定向 联合使用
  • clear 命令–请屏

    • clear:清楚屏幕显示历史内容
  • 重定向>和>>

    • Linux允许将命令执行的结果 重定向到一个文件

    • 命令 参数 > 文件名

      • 将本应该显示终端上的内容输出/追加到 指定文件中
      • 如果文件不存在,就创建新文件,如果文件已经存在就覆盖文件
    • 命令 参数 >>文件名

      • 将本应该显示终端上的内容输出/追加到 指定文件中
      • 如果文件不存在,就创建新文件,如果文件已经存在就追加到文件
        -【 >】表示输出,会覆盖文件原有的内容
        - 【>>】表示追加,会将内容追加到已有文件的末尾
        - ls -l > a.txt:把ls-l 命令执行的结果放到a.txt里面
        - echo aaa > a.txt:把echo命令执行的结果放入到a.txt里面
        - cat a.txt b.txt > c.txt :把两个文件合并到一个文件当中
  • 管道|

    • Linux允许将一个命令的输出可以通过管道做为另一个命令的输入

    • 命令1 | 命令2

      • 命令1的输出结果做为命令2的输入数据
        - 例如:ls -lha ~ | grep/more a
        - ls -al | more:把ls-a的结果作为more的输入,就是可以间接的实现ls-al 的分屏显示
        - ls -al | grep ‘’^d’’:ls-al的结果是只显示目录
        - ls -al | grep ‘’^d.s$’’:ls-al的结果只显示以d开头的目录和以s结尾的目录显示出来
    • Linux允许将一个命令的输出可以通过管道做为另一个命令的输入
      管道的常用命令:
      - more 分屏显示内容
      - grep 在命令执行的结果的基础上查询指定的文本

  • find 查找指定的文件

    • find 开始目录 -name 文件名
      - find ./ -name a.txt:从当前目录开始查找所有的子目录,是否存在a.txt文件
      - find / -name a.txt:从根目录目录开始查找所有的子目录,是否存在a.txt文件

      • find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件
        find 路径 -name “*”

        (1)搜索桌面目录下,文件名包含1的文件
        之前学习的通配符,可以配合find命令同时使用
        find Desktop/ -name “1” 回车
        (2)搜索桌面目录下,所有以.txt 为扩展名的文件
        如果省略路径,就表示在当前文件夹下寻找
        find -name “.txt"
        (3)搜索桌面目录下,以数字1开头的文件夹
        find -name "1

  • ln创建链接文件

    • ln -s 被链接的源文件路径 链接文件名
      源文件要用绝对路径
      ln -s /home/python/Desktop/demo/b/c/0.1.py 01_juedui
      如果被链接的源文件被删除,那么这个软链接就失效了
    • 创建软链接 ln -s 源文件 链接文件
      - ln -s a.txt a:给a.txt 创建一个软连接a
    • 创建硬链接 ln 源文件 链接文件
      - ln a.txt a:给a.txt 创建一个硬连接a
    • 软链接文件用ls-l 显示的时候,第一行识别标识是l
    • 硬链接文件用
    • ls-l 显示的时候,硬链接数会增加
    • 软链接与硬链接区别
      - 软链接不占用磁盘空间,硬链接会占用磁盘空间
      - 当源文件不存在,软链接就失效了 ,但是硬链接还可以使用
  • gzip压缩和解压文件

    • gzip 文件名:压缩指定文件
      - gzip a.txt:把a.txt压缩为a.txt.gz,同时a.txt文件不存在
    • gzip -d 文件名:解压指定文件
      - gzip -d a.txt:把a.txt.gz解压为a.txt,a.txt.gz就不存在了
  • zip压缩和解压文件

    • zip 文件名.zip 源文件
      - zip a.zip a.txt:把a.txt压缩为a.txt.zip,同时a.txt文件存在
    • unzip 文件名:解压指定文件
      - unzip a.txt:把a.zip解压为a.txt,a.txt文件依然存在了
  • tar打包和解包文件或者目录

    • tar -cvf 打包文件名 源文件
      - tar -cvf abc.tar abc:把abc目录打包为一个abc.tar的文件
    • tar -xvf 打包文件名
      - tar -xvf abc.tar:将abc.tar还原
    • tar -tvf 打包文件名
      - tar -tvf abc.tar:查看abc.tar文件的内容
  • tar和gzip通过-z实现一步操作

    • tar -zcvf 打包压缩文件名 源文件
      - tar -zcvf abc.tar.gz abc:把abc目录打包之后同时用gzip压缩
    • tar -xcvf 打包压缩文件名
      - tar -xcvf abc.tar.gz:把abc.tar.gz 用gzip解压之后用tar解包

系统信息的相关命令 (命令+回车)

  • date 查看系统的相关时间

  • cal 可以查看月日历

  • cal -y 可以查看一年的日历

  • df -h :显示磁盘的剩余空间

  • du -h 显示目录下的文件大小

  • ps -aux: 显示所有进程的详细情况
    a:显示终端上的所有进程,包括其他用户的进程
    u:显示进程的详细状态
    x:显示没有控制终端的进程

  • top 动态显示运行中的程序并且排序(实时监控程序
    q:退出top命令
    PID:每一个执行的进程都有一个唯一的不重复标号PID
    CPU占用:进程CPU的zhanyonglv
    MEM占用:进程内存的占有率
    COMMAND:启动进程的命令名

  • kill 进程代号(PID) 终止指定代号的进程 ;-9表示强行终止
    kill PID
    kill -9 PID
    ps aux | grep ‘gedit’ 先找到gedit的PID,在用kill PID 杀死这个进程
    提示:使用kill命令的时候,最好只终止由当前用户开启的进程,而不是终止root身份,否则可能导致系统崩溃

网络信息

  • ping测试目标主机是否与网络连通
    - ping ip/域名:ping 127.0.0.1/ping www.bai.com

  • ifconfig 查看配置计算机的网卡配置信息
    - ifconfig | grep inet 查看网卡对应的ip地址

  • ping ip地址 检测到另外一个ip地址的连接是否正确
    - ping一般用于检测当前计算机与目标计算机之间的而网络联通是否顺畅,数值越大速度越慢

  • ping 127.0.0.1 检测到本地回环/回环地址是否正确
    提示:127.0.0.1被称为本地回环/回环地址 一般来用测试本机的网卡是否正常

用户与权限

  • 用户和权限的基本概念

    • 用户是Linux系在统工作中重要的一环,用户管理包括用户与组管理
      在Linux系统中,不论是由本机或是远程登录系统,每个系统中都必须用户一个账户,并且对于不同系统资源拥有不同的使用权限
      在Linux中,可以指定 每一个用户 针对 不用的文件或者目录 的不同权限
  • 组的概念

    • 方便管理用户,对于相同的权限的用户放到一个组里面
  • 超级用户

    • 在Linux中有一个特别的用户叫超级用户root,root账户通常用于系统的维护和管理,而不是用来日常使用的,日常使用应该使用标准用户(安装过程中会会自动创建一个用户账号),当标准用户想要维护系统相关的命令的时候可以在命令前增加一个sudo切换到root身份来执行系统维护的命令,用户在使用sudo的时候,必须先输入密码,有5分钟的有效期
  • 组管理 终端命令

    • 添加组:sudo groupadd dev(组名)

    • 查看组:cat /etc/group确认组的信息

    • 删除组:sudo groupdel dev(组名)

    • 查看组:cat /etc/group确认组的信息

    • 递归的修改文件/目录的所属组 :charp -R 组名 文件名/目录

    • 演练目标:
      1,在python用户的桌面文件夹创建一个python学习的目录
      2,新建dev组
      3,将python学习 的目录的组修改为dev

      • mkdir python学习
        sudo groupadd dev
        ls -l
        sudo chgrp -R dev Python学习/
  • 用户管理 终端命令

    • 用户的信息会保存在/etc/passwd文件中:cat -n /etc/passwd | grep zhnagsan
      组的信息会保存在/etc/group文件中:cat -n /etc/group | grep dev
      -m:会自动建立用户的家目录
      -g:指定用户所在的组,否则会建议一个和同名的组
      添加用户:sudo useradd -m -g dev zhangsan
      查看用户:ls -l /home回车
      设置密码:sudo passwd zhangsan回车 设置密码
      删除用户 :sudo userdel -r zhangsan
      -r:会自动删除用户的家目录
  • 查看用户的信息

    • 查看用户UID和组GID信息:id zhangsan(用户名)
      用户的信息会保存在/etc(专门保存和系统相关的目录)/passwd(专门用来保存用户信息的文本文件,并不能执行)文件中:cat -n /etc/passwd | grep zhnagsan
      /etc/passwd文件存放的是用户的信息,由6个分号和7个信息组成
      例如查看zhangsna的用户信息: zhangsan❌1001:1001::/home/grep:/bin/bash
      1,用户名
      2,密码(x表示加密的密码)
      3,UID(用户的标识)
      4,GID(组的标识)
      5,用户全名或者是本地账号
      6,家目录
      7,登录使用的是shell 就是登录之后,使用的终端命令,ubuntu默认的是dash

    • who回车:可以查看当前时刻登录的所有的用户列表

    • whoami回车:显示当前用户的账户名

  • useradd添加用户

    • -d 指定添加用户的主目录
    • -m 当 -d 参数指定的目录不存在,就自动创建这个目录
      • useradd -d /home/abc abc -m:添加一个用户名叫abc,主目录是/home/abc目录,当abc目录不存在,自动创建
    • 注意:
      - 只有root才能添加新用户
  • passwd修改用户的密码

    • passwd 用户名
    • root可以修改其他用户的密码
    • 其他用户只能修改自己的密码
  • userdel删除用户

    • -f 当用户已经登录了,也会强制删除
    • -r 删除用户的同时同时删除其对应的主目录
      • userdel -r abc:删除abc用户,同时删除对应的主目录
    • 注意:
      - 只有root用户才能删除新用户
  • whoami查看当前登录用户名

    • whoami 回车
  • usermod修改用户名

    • usermod可以用来设置 用户 的主组/附加组 和改变默认登录shell的dash
      主组:通常在新建用户时指定,在/ect/passwd的第4列GID对应的组
      附加组:在/etc/group中最后一列,用于指定用户的附加权限
      提示:设置了用户的附加组之后,需要重新登录才能生效!!
      (1)修改用户的主组
      sudo usermod -g 主组 用户名
      (2)修改用户的附加组
      sudo usermod -G 附加组 用户名
      添加:sudo usermod -G sudo zhangsan
      查看:cat -n /etc/group | grep python
      sudo❌27:python(用户名),zhangsan
      (3)修改用户登录 shell
      sudo usermod -s /bin/bash zhangsan
      提示:默认使用useradd 添加用户是没有权限的,使用sudo以root身份执行命令的,可以使用一些命令,将用户sudo权限 添加到附加组中
      sudo usermod -G sudo 用户名
  • which

    • which命令可以查看执行命令所在的位置
      which passwd
      /etc/passwd 不能执行
      /usr/bin/passwd 可以执行修改用户的密码的程序
      which ls
      /bin/ls
      ls -l /bin/ls
  • bin和sbin

    • /bin 是二进制执行文件的目录,主要应用于具体应用
      /sbin 是系统管理员专用的二进制代码存放目录,主要用于系统管理
      /usr/bin 后期安装的一些软件
      /usr/sbin 超级用户的一些管理权限
  • 切换用户

    • su - 用户名:切换用户,(-)表示切换用户的家目录
      su - zhangsan 会切换到/home/zhangsan家目录
      exit:会退出当前用户的登录账户
      提示:如果su - 不接用户名,可以切换到toot,但是不推荐,因为不安全!!!
    • su - 用户名 或者 su 用户名
      -加了-切换用户,同时改变当前目录为用户的主目录
      - 不加-,切换用户,不改变当前目录
    • 如果要切换的是root,su后面可以省略用户名root
      - su - 等同于 su - root
      - su 等同于 su root
    • 其他用户切换root用户要输入密码
    • root用户切换其他用户不需要 密码

远程管理命令

  • 关机/重启*

    • shutdown 选项 时间 可以安全关闭或者重新启动系统
      –shutdown -r 重新启动
      提示:不指定参数和选项,默认表示1分钟之后关闭电脑
      远程维护服务器时,最好不要关闭系统
      常用命令的示例:
      (1)重新启动操作系统。其中now 表示现在
      (sudo强制)shotdown -r now
      (2)立刻关机,其中now表示现在
      shotdown now
      (3)系统在今天的 20:29 会关机
      shotdown 20:29
      (4)系统在过10分钟之后会自动关机
      shotdown +10
      (5)取消之前的指定的关机计划
      shotdown -c
  • 远程登录和复制文件*

    • SSH基础
      在Linux中SSH是 非常常用的工具,通过SSH客户端 我们可以连接到运行了SSH服务器的远程机器上
      SSH客户端和SSH服务器是两款软件(Linux系统是默认装的)
    • 利用SSH协议 可以有效的防止远程管理的过程中的信息泄露
    • 利用SSH协议 可以对所有的传输的数据进行加密,也可以防止DNS期骗和IP期骗,传输的数据可以是经过压缩的,可以加快传输的速度
  • 域名和端口号

    • 域名:用一串点分隔的名字例如:www.baidu.com
    • 端口号:通过ip地址可以找到网络上的计算机,通过端口号 可以找到计算机上的应用程序
      常见的服务端口号的序列表
      (1)SSH服务器:22
      (2)WEB服务器:80
      (3)HTTPS:443
      (4)FTP服务器:21
  • SSH客户端的简单使用

    • ssh -p port user@remote=====ssh -p 22 python@172.89.348.567
      user: 是在远程机器上的用户名,如果不指定的话默认为当前用户
      remote:是远程机器的地址,可以是ip/域名,或者是后面提到的别名
      port:是SSH Server 监听的端口,如果不指定,就为默认值22(-p可以省略)
      提示:使用exit退出当前用户的登录
      注意:ssh这个终端命令只能在Linux系统下使用
      如果在Windows系统中使用,可以安装PuTTY 或者XShell客户端软件即可
  • *scp远程拷贝

    • 远程拷贝文件的常用命令
      (1)把本地当前目录下的01.py文件 复制到 远程 家目录下的 Desktop/01.py
      scp -P port 01.py user@remote:Desktop/01.py
      (2)把远程 家目录下的Desktop/01.py 文件 复制到 本地当前目录下的01.py文件
      scp -P port user@remote:Desktop/01.py 01.py
      (3)加上-r 选项可以传送文件
      把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
      scp -P port -r demo uesr@remote:Desktop
      (4)把 远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
      scp -P port -r user@remote:Desktop demo
    • 注意:scp这个终端命令只能在Linux系统下使用
      如果在Windows系统中使用,可以安装PuTTY ,使用pscp命令行工具或者安装FileZilla使用FTP服务器进行文件传输
  • 配置别名

    • 配置别名可以让我们进一步偷懒,譬如使用:ssh mac(别名名称)分两步:
      (1)~/.ssh/config里面追加(创建一个confing文件在终端里面,touch config)
      (2)Host mac
      HostName ip地址(远程服务器的地址)
      User itheima(远程服务器的用户名)
      port 22
  • 软件的安装

    • apt 是Linux下的一款安装包管理工具
      命令格式:
      (1)安装软件
      sudo apt install 软件包
      (2)下载软件
      sudo apt remove 软件名
      (3)更新已安装的包
      sudo apt upgra
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值