我们一起来读书吧 关注:155贴子:2,927
  • 11回复贴,共1

《Linux工具快速教程》

只看楼主收藏回复

《Linux工具快速教程》主要介绍了 Linux 系统中常用的命令行工具和操作,帮助用户快速熟悉和掌握 Linux 环境下的基本操作,建立对 Linux 系统的基本理解和操作能力。


IP属地:北京1楼2024-12-05 15:54回复
    基础1
    在只记得部分命令关键字的场合,可通过man -k来搜索;
    需要知道某个命令的简要说明,可以使用whatis;而更详细的介绍,则可用info命令;
    查看命令在哪个位置,使用which;
    而对于命令的具体参数及使用方法,需要用到强大的man;
    简要说明命令的作用(显示命令所处的man分类页面): $whatis command
    正则匹配: $whatis -w "loca*"
    更加详细的说明文档: $info command
    查询命令command的说明文档: $man command
    查询关键字 根据命令中部分关键字来查询命令:$man -k keyword
    查看程序的binary文件所在路径: $which command
    查看程序的搜索路径: $whereis command
    当系统中安装了同一软件的多个版本时,不确定使用的是哪个版本时,这个命令就能派上用场


    IP属地:北京2楼2024-12-05 16:10
    回复
      2025-06-28 01:42:30
      广告
      基础2 文件及目录管理
      2.1. 创建和删除
      创建:mkdir
      删除:rm
      删除非空目录:rm -rf file目录
      删除日志 rm *log (等价: $find ./ -name “*log” -exec rm {} ;)
      移动:mv
      复制:cp (复制目录:cp -r )
      查看当前目录下文件个数: $find ./ | wc -l
      复制目录: $cp -r source_dir dest_dir
      2.2. 目录切换
      找到文件/目录位置:cd
      切换到上一个工作目录: cd -
      切换到home目录: cd or cd ~
      显示当前路径: pwd
      更改当前工作路径为path: $cd path
      2.3. 列出目录项
      显示当前目录下的文件 ls
      按时间排序,以列表的方式显示目录项 ls -lrt
      给每项文件前面增加一个id编号(看上去更加整洁): ls | cat -n
      2.4. 查找目录及文件 find/locate
      搜寻文件或目录: $find ./ -name "core*" | xargs file
      查找目标文件夹中是否有obj文件: $find ./ -name '*.o'
      递归当前目录及子目录删除所有.o文件: $find ./ -name "*.o" -exec rm {} \;
      2.5. 查看文件内容
      显示时同时显示行号: $cat -n
      按页显示列表内容: $ls -al | more
      只看前10行: $head - 10 **
      显示文件第一行: $head -1 filename
      显示文件倒数第五行: $tail -5 filename
      查看两个文件间的差别: $diff file1 file2
      动态显示文本最新信息: $tail -f crawler.log
      2.6. 查找文件内容
      使用egrep查询文件内容: egrep '03.1\/CO\/AE' TSF_STAT_111130.log.012egrep 'A_LMCA777:C' TSF_STAT_111130.log.035 > co.out2
      2.7. 文件与目录权限修改
      改变文件的拥有者 chown
      改变文件读、写、执行等属性 chmod
      递归子目录修改: chown -R tuxapp source/
      增加脚本可执行权限: chmod a+x myscript
      2.8. 给文件增加别名
      创建符号链接/硬链接:
      ln cc ccAgain :硬连接;删除一个,将仍能找到;
      ln -s cc ccTo :符号链接(软链接);删除源,另一个无法使用;(后面一个ccTo 为新建的文件)
      2.9. 管道和重定向
      批处理命令连接执行,使用 |
      串联: 使用分号 ;
      前面成功,则执行后面一条,否则,不执行:&&
      前面失败,则后一条执行: ||
      2.10. 设置环境变量
      PATH=$APPDIR:/opt/app/soft/bin:$PATH:/usr/local/bin:$TUXDIR/bin:$ORACLE_HOME/bin;export PATH
      2.11. Bash快捷输入或删除
      Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行Ctl-W 删除当前光标到前边的最近一个空格之间的字符Ctl-H backspace,删除光标前边的字符Ctl-R 匹配最相近的一个文件,然后输出
      2.12. 综合应用
      查找record.log中包含AAA,但不包含BBB的记录的总数: cat -v record.log | grep AAA | grep -v BBB | wc -l
      2.13. 总结
      文件管理,目录的创建、删除、查询、管理: mkdir rm mv
      文件的查询和检索: find locate
      查看文件内容:cat vi tail more
      管道和重定向: ; | && >


      IP属地:北京3楼2024-12-05 16:19
      回复
        基础3
        本节介绍了Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk
        3.1. find 文件查找
        -atime 访问时间 (单位是天,分钟单位则是-amin,以下类似)
        -mtime 修改时间 (内容被修改)
        -ctime 变化时间 (元数据或权限变化)
        执行动作(强大的exec)
        -print的定界符
        默认使用’\n’作为文件的定界符;
        3.2. grep 文本搜索
        -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行
        -c 统计文件中包含文本的次数grep -c “text” filename
        -n 打印匹配的行号
        -i 搜索时忽略大小写
        -l 只打印文件名
        3.3. xargs 命令行参数转换
        将单行转化为多行输出:cat single.txt | xargs -n 3
        -d 定义定界符 (默认为空格 多行的定界符为 n)
        -n 指定输出为多行
        -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行的命令需要多个参数时
        -0:指定0为输入定界符
        3.4. sort 排序
        -n 按数字进行排序 VS -d 按字典序进行排序
        -r 逆序排序
        -k N 指定按第N列排序
        3.6. 用tr进行转换
        -c 求补集
        3.7. cut 按列切分文本
        -d 指定定界符
        cut 取的范围
        N- 第N个字段到结尾
        -M 第1个字段为M
        N-M N到M个字段
        cut 取的单位
        -b 以字节为单位
        -c 以字符为单位
        -f 以字段为单位(使用定界符)
        3.8. paste 按列拼接文本
        3.9. wc 统计行和字符的工具
        $wc -l file // 统计行数
        $wc -w file // 统计单词数
        $wc -c file // 统计字符数
        3.10. sed 文本替换利器
        首处替换:sed 's/text/replace_text/' file //替换每一行的第一处匹配的text
        全局替换:sed 's/text/replace_text/g' file
        3.11. awk 数据流处理工具
        awk脚本结构:awk ' BEGIN{ statements } statements2 END{ statements } '
        3.12. 迭代文件中的行、单词和字符
        while 循环法
        awk法


        IP属地:北京4楼2024-12-05 16:36
        回复
          顶,楼主笔记写的不错


          IP属地:浙江5楼2024-12-06 03:53
          收起回复
            基础4 磁盘管理
            产看磁盘空间大小:df -h
            查看当前目录所占空间大小: du -sh
            查看当前目录下所有子文件夹排序后的大小: du -sh `ls` | sort
            打包是将多个文件归并到一个文件: tar -cvf etc.tar /etc <==仅打包,不压缩!
            常规:打包 tar -cvf 解包 tar -xvf
            tar解压参数说明:-z 解压gz文件 -j 解压bz2文件 -J 解压xz文件 -x 解包选项
            压缩: $gzip demo.txt 生成 demo.txt.gz
            解压缩 gunzip bzi


            IP属地:北京6楼2024-12-27 11:08
            回复
              基础5 进程管理工具
              5.1. 查询进程
              查询正在运行的进程信息 :$ps -ef
              查询进程ID(适合只记得部分进程字段):eg:查询进程名中含有re的进程 pgrep -l re
              显示进程信息,并实时更新:$top
              查看端口占用的进程状态:lsof -i:3306
              查看用户username的进程所打开的文件:$lsof -u username
              查询指定的进程ID(23295)打开的文件:$lsof -p 23295
              查询指定目录下被进程开启的文件(使用+D 递归目录):$lsof +d mydir1/
              5.2. 终止进程
              杀死相关进程:kill -9 PID
              5.3. 进程监控
              查看系统中使用CPU、使用内存最多的进程:$top(->)P
              P:根据CPU使用百分比大小进行排序。M:根据驻留内存大小进行排序。i:使top不显示任何闲置或者僵死进程。
              5.4. 分析线程栈
              使用命令pmap,来输出进程内存的状况,可以用来分析线程堆栈


              IP属地:北京7楼2024-12-27 11:14
              回复
                基础6 性能监控
                6.1. 监控CPU
                查看CPU使用率:sar -u 1 2 后面的两个参数表示监控的频率,比如例子中的1和2,表示每秒采样一次,总共采样2次
                6.2. 查看内存使用量:free -m
                6.3. 查询页面交换:sar -W 1 3
                6.4. 查询硬盘使用:df -h
                6.5 综合应用
                当系统中sar不可用时,可以使用以下工具替代:linux下有 vmstat、Unix系统有prstat
                查看cpu、内存、使用情况: vmstat n m (n 为监控频率、m为监控次数)
                使用watch 工具监控变化 当需要持续的监控应用的某个数据变化时,watch工具能满足要求; 执行watch命令后,会进入到一个界面,输出当前被监控的数据,一旦数据变化,便会高亮显示变化情况;
                watch -d -n 1 './redis-cli info | grep memory'


                IP属地:北京8楼2024-12-27 11:21
                回复
                  2025-06-28 01:36:30
                  广告
                  基础7 网络工具
                  7.1. 查询网络服务和端口
                  列出所有端口 (包括监听和未监听的):netstat -a
                  列出所有 tcp 端口:netstat -at
                  列出所有有监听的服务状态:netstat -l
                  使用netstat工具查询端口: netstat -antp | grep 6379
                  7.2. 网络路由
                  查看路由状态: route -n
                  发送ping包到地址IP: ping IP
                  探测前往地址IP的路由路径: traceroute IP
                  DNS查询,寻找域名domain对应的IP: host domain
                  反向DNS查询: host IP
                  7.3. 镜像下载
                  直接下载文件或者网页: wget url
                  –limit-rate :下载限速 -o:指定日志文件;输出都写入日志; -c:断点续传
                  7.4. ftp sftp lftp ssh
                  SSH登陆: ssh ID@ho⁢st⁢ ssh登陆远程服务器host,ID为用户名
                  ftp/sftp文件传输: sftp ID@host
                  7.5. 网络复制
                  将本地localpath指向的文件上传到远程主机的path路径: scp localpath ID@host:path
                  以ssh协议,遍历下载path路径下的整个文件系统,到本地的localpath: scp -r ID@site:path localpath


                  IP属地:北京9楼2024-12-27 11:37
                  回复
                    基础8 用户管理工具
                    8.1. 用户
                    添加用户:useradd -m username
                    用户添加之后,设置密码:passwd username
                    删除用户:userdel -r username
                    帐号切换 登录帐号为userA用户状态下,切换到userB用户帐号工作: su userB
                    8.2. 用户的组
                    查看当前用户所属的组: groups
                    一个用户可以属于多个组,将用户加入到组: usermod -G groupNmame username
                    变更用户所属的根组(将用加入到新的组,并从原有的组中除去): usermod -g groupName username
                    查看所有用户及权限: more /etc/passwd
                    查看所有的用户组及权限: more /etc/group
                    8.3. 用户权限
                    使用ls -l可查看文件的属性字段,文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件。字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写。 后面的9个字母为该文件的权限标识,3个为一组,分别表示文件所属用户、用户所在组、其它用户的读写和执行权限
                    使用chmod命令更改文件的读写权限
                    更改文件或目录的拥有者:chown username dirOrFile
                    使用-R选项递归更改该目下所有文件的拥有者: chown -R weber server/
                    8.4. 环境变量
                    bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。
                    /etc/profile,/etc/bashrc 是系统全局环境变量设定~/.profile,~/.bashrc用户目录下的私有环境变量设定


                    IP属地:北京10楼2024-12-27 11:43
                    回复
                      基础九 系统管理及IPC资源管理
                      9.1. 系统管理
                      查看Linux系统版本: uname -a 或 lsb_release -a
                      查看Unix系统版本:操作系统版本: more /etc/release
                      查看CPU使用情况: sar -u 5 10
                      查询CPU信息: cat /proc/cpuinfo
                      查看CPU的核的个数: cat /proc/cpuinfo | grep processor | wc -l
                      查看内存信息: cat /proc/meminfo
                      显示内存page大小(以KByte为单位): pagesize
                      显示架构: arch
                      显示当前系统时间: date
                      设置系统日期和时间(格式为2014-09-15 17:05:00): date -s 2014-09-15 17:05:00
                      格式化输出当前日期时间: date +%Y%m%d.%H%M%S
                      9.2. IPC资源管理
                      查看系统使用的IPC资源: ipcs
                      查看系统使用的IPC共享内存资源: ipcs -m
                      查看系统使用的IPC队列资源: ipcs -q
                      查看系统使用的IPC信号量资源: ipcs -s
                      显示当前所有的系统资源limit 信息: ulimit – a
                      对生成的 core 文件的大小不进行限制: ulimit – c unlimited


                      IP属地:北京11楼2024-12-27 11:47
                      回复