Linux学习笔记

Linux: 一切设备皆文件

  • 查看当前系统有多少以g开头的指令

    g [tab][tab]
    
查看命令的用法
  • 查看比较熟悉指令该怎么使用 ?–help

    date --help
    

    出现的usage 是这个指令的基本用法:比如

    Usage: date [OPTION]... [+FORMAT]
    

    … 代表了[option] 是个可选参数

    那么就代表了 date这挨个指令的用法大致是

    date -d +%Y%m%d
    

    如果想要快速的看到这个命令该怎么用的话,可以看

    Convert seconds since the epoch (1970-01-01 UTC) to a date
      $ date --date='@2147483647'
    
    Show the time on the west coast of the US (use tzselect(1) to find TZ)
      $ TZ='America/Los_Angeles' date
    
    Show the local time for 9AM next Friday on the west coast of the US
      $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'
    

    这里有基本的例子,通过例子,我们就可以看到如何使用了

    如果你要使用的是从来没有用过得指令,或者是你要查询的根本就不是指令,而是文件的“格式”时,那就得要通过 man page 。

  • 查看不熟悉的指令的时候

    man date
    

    接下来按空格翻页,按 下键 是一行一行向下翻

    同样的可以

Linux 目录结构

linux 的目录结构是属性结构

/ 是根目录

~是home目录

linux 的顶级目录只有一个,但是windows 的目录结构有好多个

相对路径、绝对路径、特殊的路径表示符
  • 相对路径

    从当前目录当作根目录

  • 绝对路径

    / 当作起点

  • 特殊的路径表示符

    . : 当前目录

    .. :上一级目录

    ~ : home目录

常用的linux文件命令

ls : 在命令行中以平铺的形式,展示当前工作目录

pwd: 显示当前文件的路径 (print work directory)

mkdir:创建文件夹

touch: 创建文件

control + l = clear :清屏

cp -r 被复制文件路径 目标路径

  • ls 的命令参数和选项
ls -a [指定目录] //列出全部文件 (包含隐藏的文件/文件夹)
ls -l [指定目录] //以列表形式列出全部文件,并显示更多信息 ,会显示文件的字节数,但是不会转换为文件的大小
ls -lh [指定目录] // 以便于阅读的形式显示文件的大小
lh //必须同时使用,不然没有效果  

注意:linux 系统下,以.开头的,表示是linux 系统的隐藏文件夹

语法中的选项是可以组合使用的,比如学习的 -a 和 - l 可以组合应用

ls -l -a 
ls -la
ls -al
  • mkdir + 路径 创建文件夹

    • 如果想要一次性创建多个层级的目录(上级目录也不存在)

      mkdir -p  多层文件夹
      p是 parents 的缩写,这个选项告诉 mkdir命令创建目录时,如果父目录不存在,也一并创建父目录
      

      创建文件夹需要修改权限,请确保操作均在HOME 目录内,不要在HOME外操作(也可以使用sudo命令)

  • touch linux路径

    touch abc.txt // 创建某种类型的文件
    
  • cat linux路径

    cat abc.txt  // 查看文件内容
    
  • more linux路径 : 按翻页查看内容

    more abc.txt  // 支持翻页查看文件路径
    

    按空格翻页,按q退出

  • cp 被复制文件夹路径,目标路径

    -r 选项,表示递归的复制文件夹,文件夹内有多个层级的文件,必须递归的进行复制

cp 文件夹

​ 注意: cp 在复制的过程中,可以将文件重命名成另一个文件

  • mv 命令可以用于移动文件或者文件夹,mv命令来自于英文单词: move

    mv 被移动文件的路径 目的文件夹路径
    
  • rm : 一个命令可以一次性删除多个文件

    rm -r // 递归的删除文件夹
    rm -rf  // 强制的递归删除文件夹,不会弹出任何的提示信息
    rm -f  // 强制删除文件,不会弹出任何的提示信息   
    

    rm 命令支持通配符*,用来做模糊匹配

    • 符号*表示通配符,用来做模糊匹配

    • test*,表示匹配任何以test开头的内容

    • *test,表示匹配任何以test结尾的内容

    • *test*, 表示 匹配任何包含test 的内容

  • which 和 find

    我们在前面学习的linux 命令,其实它们的本体就是一个个的二进制可执行程序,和window 中的.exe文件本质上一个东西

    • which 要查找的命令 可以找到命令在电脑中实际的位置

    • su 切换到root权限

      注意:第一次使用该命令,需要更新root 密码

      解决方法: sudo passwd root ,会提示你设置su的密码

    • find 起始路径 - name “被查找的文件名” :按照名称查找

      • find 起始路径 -name "被查找的文件名"
      • find 起始路径 -size +|-n[kMG]
        • +、-表示大于和小于
        • n表示大小数字
        • KMG表示大小单位,k表示kb , M表示MB,G表示GB

  • grep 和 wc 在文件中统计功能

    • grep [-n] 关键字 待查找文件的路径
      
    • wc [-c -m -l -w] 文件路径
      //-c 统计bytes数量 -- 这两个是一样的
      //-m 统计字符数量   -- 这两个是一样的
      //-l 统计行数
      //-w 统计单词数量 
      
      linux还有个计算器的功能
      使用命令 bc
      // bc
      
    • 管道符:|

      管道符的含义是: 将管道符左边命令的结果,作为右边命令的输入

      cat test.txt | grep itheima
      
  • echo 命令: 可以使用echo命令在命令行内输出指定内容,包括字符串和环境变量

    当输出内容比较复杂的时候,可以使用“”将输出的内容给包裹起来

  • `` 的作用

    被``包裹的内容会当作命令来执行,而不是文本来执行

  • 重定向符: > 和 >> , 这个命令可以用来生成日志文件

    • > 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
    • >> 将左侧命令的结果,追加写入到符号右侧指定的文件中
  • tail 命令 , 使用 tail命令,可以查看文件尾部的内容,跟踪文件的最新更改,语法如下:

    tail [-f -num] linux路径

    -f 表示持续跟踪

    -num , 查看尾部多少行,不填默认10行

    tail -f 文件路径
    

    最常用的就是这个命令,以后可能经常要用它来查看日志

  • vi 编辑器 (vi 或者 vim )

    vim 是 vi 的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell 程序编辑的功能,可以用不容颜色的字体来辨别语法的正确性,极大的方便程序设计和编辑行。

    //常用的vim命令
    // dd,可以实现以一行的删除  -delete 的d
    // u ,可以完成对文本编辑的撤销等等
    // i , 对文本进行编辑
    // 底线命令模式
    以:开始,通常用于文件的保存,退出
    // :q  退出 :wq 保存写入内容并退出  :q! 强制退出 :set nu 显示行号 : set paste 设置粘贴模式
    // pageUP , 向上翻页
    // pageDown , 向下翻页
    // / 进入搜索模式
    // n 向下继续搜索
    // N 向上继续搜索
    // yy 复制当前行          -copy 的 y
    // p 粘贴到下一行          -paste 的p
    
    // ctrl + d = exit ;
    // ctrl + c : 退出当前命令
    // ctrl + l : 清屏 = clear
    
  • linux 下面的alias命令: 用于给命令起别名

linux用户和权限
switch user = su

基本命令格式 su - 用户名 别忘了 - 后面有个空格

su - 用户名   //切换到某个用户

普通用户的权限,一般在其HOME目录内是不受限的

一旦除了可HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

  • - 符号是可选的,表示是否在切换用户后加载环境变量,建议加上

  • 参数: 用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键: ctrl + d

  • 使用普通用户,切换到root用户需要输入密码

    注意:第一次使用该命令,需要更新root 密码
    解决方法: sudo passwd root ,会提示你设置su的密码

  • 使用root用户切换到其他用户,无需密码,可以直接切换

sudo 其他命令

我们可以使用sudo命令,为普通的命令授权,临时以root 身份执行

在其他命令之前,带上sudo,即可以为这一条命令赋予root权限

但是可能要为普通用户配置sudo认证

用户和用户组

Linux中关于权限控制的管控级别有两个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制、

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限

用户组管理
  • 创建用户组

groupadd 用户组名

  • 删除用户组

groupdel 用户组名

用户管理
  • 创建用户

    推荐使用 adduser 用户名 添加用户

    若使用adduser 将某一个用户添加到指定用户组下 可以用以下命令

    adduser zhaoruyang blcu
    

    前提是zhaoruyang用户必须存在,并且 blcu这个用户组也必须要存在

    也可以用下面的方法,使用下面的方法的话,unbantu 上home目录下没有用户文件夹

    useradd [-g -d] 用户名
    // -g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    // 意思就是如果你打出了这个指令 useradd test , 那么linux就会把test用户默认加到test组里面,若之前
    //创建了用户组 test,那么就必须使用 -g这个选项
    
    // -d 指定用户HOME路径,不指定,HOME目录默认在: /home/用户名 路径下
    // ~ 是 HOME  = /home/用户名 而不是 /home
    
  • 删除用户

    deluser 用户名 --[remove-home|remove-allfiles]
    // 后面的参数是问你是否要删除该文件夹
    userdel -r 用户名
    // 删除目录并且要删除对应的文件夹
    
  • 查看用户所属组

    id [用户名] 不写的话是当前用户的信息(包含所属的组)
    
  • 修改用户所属组

    usermod -aG 用户组 用户名    // 将指定用户加入指定用户组 : 当然也可以用adduser命令
    
  • 查看系统下有那些用户、用户组

    getent passwd    // 查看系统中有哪些用户
    
    zhaoruyang:x:1001:1002:,,,:/home/zhaoruyang:/bin/bash
    用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(模式bash而非zsh) 
    
    getent group  // 查看系统中有那些组
    
用户权限管理

能看懂就行

//例如
drwxr-xr-x
d代表是文件夹 , 还可能有 -或d或l - 表示文件 d表示文件夹 l 表示软链接
rwx 表示该用户权限
r-x 表示该用户所属用户组权限
r-x 表示其他用户权限

r: 可读权限 、 w 可写权限、 x:对于文件夹表示进入该文件夹的权限,对于文件表示可执行

  • chmod 命令

我们可以使用chmod命令,修改文件、文件夹的权限信息

注意,只有文件、文件夹、的所属用户或root用户可以用chmod 修改权限

chmod [-R] 权限 文件或文件夹
示例:
chmod u=rwx,g=rx,o=x hello.txt 将文件权限修改为: rwxr-x--x //该命令r,g,o中间用,而不能用空格
其中: u表示user所属用户权限,g表示group组权限,o表示 other其他用户权限
chmod -R u=rwx,g=rx,o=x test 将文件夹test以及文件夹内全部内容权限设置为 rwxr-x--x

注:只有待修改文件是所属用户的时候,用户才能够使用chmod对他的权限进行修改

快捷的写法:

chmod u=rwx,g=rx,o=x hello.txt <=> chmod 751 hello.txt (二进制)
  • chown 命令

    我们可以使用chown命令,可以修改文件、文件夹的所属用户和用户组

    普通用户无法修改所属为其他用户或组的文件,所以此命令只适用于root用户执行

    语法:

    chown [-R] [用户][:][用户组] 文件或文件夹
    
    chown :root hello.txt // 将hello.txt所属用户组修改为root
    chown root:songyuliang hello.txt // 将hellO.txt 所属用户组修改为root
    chown :root helloxtxt, 将hello.txt所属用户组
    

    不仅有用户和用户组,而且文件也有用户和用户组

常用快捷键
  • 可以通过 history 命令,查看历史输入过的命令
  • ctrl + a 跳到命令开头
  • ctrl + e 跳到命令结尾
  • ctrl + 键盘左键 , 向左跳一个单词
  • ctrl + 键盘右键, 向右跳一个单词
  • ctrl + l 清屏
  • ctrl + r 搜索历史命令
systemctl 命令

​ linux 系统很多软件均支持使用 systemctl 命令控制:启动、停止、开机自启,能够被systemctl 管理的软件,一般被称之为: 服务

语法:

systemctl start | stop | status | enable | disable 服务名
  • start 启动
  • stop 关闭
  • status 查看状态
  • enable 开启开机自启
  • disable 关闭开机自启
ln 命令创建软链接

语法:

ln -s 链接文件路径 被链接文件路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值