Linux命令行大全笔记

  • [ ] 如何修改命令颜色?

    • ls is aliased to ls --color=auto'ls is aliased to ls --color=tty'

    C1 - C5 基础

  • [[Linux命令行大全(第2版)]]《Linux命令行大全(第2版)》

    • 不熟悉的命令用法

      • apropos
    • whatis //- list directory contents
    • usr/share/doc //文档文件
    • alias //自定义命令

      • alias zl='cd /home/zeronlee; ll'
      • [ ] 如何删除自定义命令?unalias
      • [ ] 如何自定义常驻命令?重启或者退出终端依然存在。
    • 防火墙1

      • ubuntu关闭防火墙

        • systemctl stop firewalld.service
      • ubuntu启动防火墙

        • systemctl start firewalld.service
      • 开启端口

        • sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
        • sudo firewall-cmd --reload
      • firewalld和ufw的区别

    C6重定向

  • 重定向操作,C6

    • 覆盖写入文件
    • 追加写入文件
    • 2> 重定向错误
    • 2>&1 重定向标准输出和标准错误到同一个文件,eg: [me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1

      • 0:标准输入 1:标准输入 2:标准错误
    • ls /bin /usr/bin | sort | lessls /bin /usr/bin | sort less的区别是什么?
    • sort 排序 , uniq去重
    • uniq命令

      • uniq -d 显示重复的行
    • wc命令

      • 显示结果解释
        | 行数 | 单词数 | 字节数 |
        | -- | -- | -- |
        | 7902 |64566 | 503634 |
    • grep命令
    • head/tail命令

      • tail -f 动态监听文件
    • tee命令

      • 标准输出写入文件,二次写入会覆盖,文件内容不想被覆盖,则追加-a参数。

        • ping baidu.com|tee output.txt

    C8 高级键盘

  • 高级键盘技巧C8

    • 光标移动组合键
    • Linux命令行大全笔记_第1张图片
    • 剪贴和粘贴文本组合键
    • ![[Pasted image 20230514115521.png]]
    • 历史记录

      • 历史记录保存在主目录下的bash_history文件中。
      • 巧妙使用历史记录
      • ![[Pasted image 20230514121122.png]]
      • 搜索历史记录

        • Crtl + R ,输入要搜索的字符,Crtl + J复制编辑或者Enter执行。

    C9高级权限

  • 权限C9

    • rwx的分配
    • ![[Pasted image 20230521120132.png]]
    • id命令:查询当前用户信息
    • chmod命令:修改文件权限

      • chmod 777 file
      • sudo chmod g+s /usr/local/share/Music
    • 以二进制形式和八进制形式表示的文件模式

      • ![[Pasted image 20230521121045.png]]
    • umask: 设置默认权限

      • [ ] 掩码值
    • su命令
    • sudo命令
    • su 和 sudo区别

      • eg: 你来给我递文件,文件给保安,保安给我送来,这属于su。保安给了一张通行证(/etc/sudoers),限时30min,这属于sudo。
    • chown命令

      • chown zeronlee:zeronlee /home/zeronlee/
    • chgrp命令

      • 在较旧的UNIX版本中,chown命令只能更改文件属主,但不能更改文件属组。
    • passwd命令

      • passwd zeronlee 回车后提示输入密码
    • usermod命令

      • 用户组添加用户:usermod -aG music zeronlee
    • 查看用户

      • cat /etc/passwd
    • 查看用户组

      • cat /etc/group

    C10 进程

  • 进程操作

    • ps命令

      • STAT:该程序的状态,( R )为可执行的,( S )为该程序正在睡眠中,就是没有执行了,( T )正在侦测或者是停止了,( Z )僵尸程序,就是 zombie 死掉的程序啦!需要以 kill 除去啰!
        ![[Pasted image 20230527192730.png]]
      • TIME: 进程消耗CPU的时间总和。
      • %CPU:代表该程序使用了多少 CPU 资源。
      • VSZ, RSS:占去的 ram 的大小( bytes )。
      • %MEM:代表该程序使用了多少的 RAM。
        ![[Pasted image 20230527194521.png]]
    • top命令

    • jobs命令

      • jobs -l 显示后台进程。
    • fg命令

      • fg %工作号:后台进程恢复到前台执行,工作号就是jobs命令显示的第一个数字。
    • bg命令

      • crtrl + z后台停止服务之后,通过bg调到前台执行。
    • kill命令

      • kill -signal PID...
        ![[Pasted image 20230529221011.png]]
    • killall命令

      • killall 进程名,这里的进程名就是启动进程时候的进程名字。

    C11 环境

  • 环境/shell变量相关

    • printenv:显示部分或全部环境变量。
    • set:显示Shell变量和环境变量。
    • echo:查看变量内容。
    • alias:查看命令别名。
  • .bashrc配置启动项

    alias zl='ll /home/zeronlee' #注意引号
    source ./bashrc

C12 VI入门

  • 尝试运行Vim,而不是Vi。如果可行,考虑在.bashrc文件中添加alias vi='vim。
  • 光标移动

    • j: 下一行
    • k: 上一行
    • h: 左移一个字符
    • l: 右移一个字符
    • G: 移动到最后一行
    • 0:移动到行首
    • A: 移动到行尾并进入编辑模式
    • 1G: 移动到第一行
  • 插入

    • o: 当前行下面新建一行
    • O: 当前行上面新建一行
  • 删除

    • dd: 删除当前行
    • 2dd: 删除当前行和下面一行
    • d0: 删除光标处到行首
    • d$: 删除光标处到行尾
    • dG: 删除当前行到文件末尾
    • d2G: 删除当前行到第二行
    • 选中删除
  • 剪贴复制和粘贴

    • y是复制的主命令,配合使用类似删除
    • p: 复制到当前行的下一行
    • P:复制到当前行的上一行
  • 合并行

    • J: 合并下一行到当前行尾
  • 搜索替换

    • 行内搜索

      • fx搜索字符x,继续搜索下一个x输入;直到找完为止。
    • 单文件搜索

      • 命令模式下输入/,然后输入要搜索的关键字,按回车键定位到第一次出现的位置,查找下一个输入字母n.
    • 替换

      • ex命令
      • 替换命令::%s /search/replace /g,可以不写空格。
  • 编辑多文件

    • 准备文件ls -l /usr/bin > ls-output.txt
    • 同时打开2个文件,vim file1.txt file2.txt
    • 文件之间切换

      • :bn: 切换到下一个文件
      • :bp: 切换到上一个文件
      • :buffers:查看被修改的文件
      • 第一次只打开了一个文件,载入另一个文件时候输入:e file.txt
    • 将一个文件复制到另一个文件

      • vi打开,yy复制,buffer2切换,p粘贴。
    • 将整个文件插入另一个文件

      • vi打开,3G定位行,:r foo.txt插入整个文件。
  • C13 定制提示符

常见任务与必备工具

C17 查找文件

  • 查找文件

    • 测试条件

      • find -size x x:下图解释
      • ![[Pasted image 20231213221556.png]]
      • 匹配空文件或目录:find -empty
      • 匹配属于组的文件或目录:find -group zeronlee
      • 匹配属于用户的文件或目录:find -user zeronlee
    • 操作符

      • -and: 操作符两侧都为真,则匹配
      • -or: 操作符任意一侧为真,则匹配
      • -not: 操作符后的测试结果为假,则匹配
      • (): 测试条件分组,需要转义
      • find / \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \) : 括号要转义,并且前后需要空格
    • 预定义操作

      • -delete: 删除当前匹配的文件
      • -ls: 匹配的结果发送到标准输出
      • -print: 匹配结果的完整路径发送到标准输出
      • -quit: 一旦发现匹配就退出
    • 用户自定义操作

      • -exec command {} ;
      • find ./ -type f -name 'foo*' -ok ls -l '{}' ';'
      • find ./ -type f -name 'foo*' -exec ls -l '{}' ';'
    • xargs命令

      • find /home/zeronlee -type f -name '*test*' | xargs ls -l
      • find / -name '*nginx*'| xargs ls -l: 根据关键字查找文件或者路径
    • 批量创建文件夹和文件

      • mkdir -p playground/dir-{001..100}
      • touch playground/dir-{001..100}/file-{A..Z}
      • find playground/ \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)

C18 归档和备份

  • 归档和备份

    • 压缩

      • gzip: 替换压缩源文件
      • gunzip: 替换解压源文件
      • zip -r xx.zip xx: 压缩文件
      • unzip -d xx xx.zip: 解压缩文件
    • 归档

      • tar cf xx.tar xx: 创建归档
      • tar tf xx.tar: 查看归档文件列表
      • tar xf xx.tar xx: 解压文件
      • find playground -name 'file-A' -exec tar rf playground.tar '{}' '+': 查找文件归档
    • 同步文件与目录

      • rsync -av playground test-async: 同步目录,playground放到test-async目录里面
      • rsync和scp的区别

    C20 文本处理

  • 文本处理

    • cat

      • cat -A: 查找非输出字符
      • cat -ns: 输出行号
    • sort

      • sort a.txt b.txt > final.txt: 合并文件
      • du -s /usr/share/ /* | sort -nr | head: 列出从大到小占用磁盘最多的十个文件
      • sort -k 1,1 -k 2n distros.txt: 多字段排序,n是按数字排序
      • sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distros.txt: 文件按字符串日期排序demo.
      • sort -t ':' -k 7 /etc/passwd | head: 指定分隔符排序
    • uniq

      • sort foo.txt | uniq: uniq只能删除连续的重复行,所以只能sort排序.
    • cut: 提取列

      • cut -f 3 distros.txt | cut -c 7-10
      • -f以制表符(tab)分隔 , -c: 截取的字符开始和结束位置, 文本demo如下

        SUSU    10.2    12/07/2006
        Fedora  10      11/25/2008
      • -d : 指定分隔符, cut -d ':' -f 1 /etc/passwd | head
    • paste: 添加列,配合distros.txt使用

        sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distros.txt > distros-by-date.txt
        cut -f 1,2 distros-by-date.txt > distros-versions.txt
        cut -f 3 distros-by-date.txt > distros-dates.txt
        paste distros-dates.txt distros-versions.txt
    • join: 连接两个文件中有公共字段的行

      cut -f 1,1 distros-by-date.txt > distros-name.txt
      paste distros-dates.txt distros-name.txt > distros-key-names.txt
      cut -f 2,2 distros-by-date.txt > distros-vernums.txt
      paste distros-dates.txt distros-vernums.txt > distros-key-vernums.txt
      join distros-key-names.txt distros-key-vernums.txt
    • comm

      • comm -12 file1.txt file2.txt, 1 2 表示要禁止显示的列
    • diff

      • diff -u file1.txt file2.txt, file2相对file1的变动.
    • patch

      diff -Naur file1.txt file2.txt > patchfile.txt
      patch < patchfile.txt
    • tr

      • echo "lowercase letters" | tr a-z A-Z, 小写转换成大写.
    • sed

      • echo "front" | sed 's/front/back /'
      • sed 's/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)$/\3-\1-\2/' distros.txt , 替换distros.txt中的xx/xx/xxxx为xxxx-xx-xx.
    • aspell: 检查单词拼写是否正确

      • aspell foo.txt
  • [ ] 配置应用开机启动

    安装应用

  • 源码安装

    • 安装redis
    1.下载
    wget https://download.redis.io/releases/redis-6.0.9.tar.gz
    2.解压
    tar xzf redis-6.0.9.tar.gz
    3.移动到你要安装的目录,我这里安装到了/user/local下
    sudo mv ./redis-6.0.9 /usr/local/redis
    4.进入你移动的目录
    cd /usr/local/redis
    5.编译redis
    sudo make
    6.测试编译是否成功(这一步时间会比较长,测试耗时5分钟左右)
    sudo make test
    7.安装
    sudo make install

你可能感兴趣的:(linuxshell服务器)