Linux基本命令(三)

2021年11月20日 阅读数:1
这篇文章主要向大家介绍Linux基本命令(三),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

文件的几种特殊权限
     ext2/3/4对单个文件提供的额外属性
     1.lsattr     --列出文件的额外属性
     2.chattr      --更改文件的额外属性
          -A     --锁定access time
          -a      --只可以以append的模式去修改文件内容   
          -i      --锁死文件,不能删,不能重命名,不能写
   
     3.access time - atime
          cat file
          less file
          more file
          head file
          vi file  
          注意:cat file一遍之后,没作任何事情,再cat file,access time没有效果
   
     4.modify time - mtime
          文件写操做:
               echo string > file
               echo string >> file
               vi file   编辑,存一下
   
     5.chang time - ctime
          该文件内容,该文件权限等
               vi file 改一下
               chmod u+x file

     6.stat filename -查看文件或文件系统的状态,如:atime,ctime,mtime
        
part 3: ACL的使用方法
     access control list(访问控制列表)
   
     1. getfacl     --得到文件的ACL
     2. setfacl      --设置文件的ACL
          setfacl -m|M 添加ACL
          setfacl -x|X 删除ACL

          setfacl -m u:newuser1:rwx /tmp/file
          以命令的方式添加
          setfacl -M uglist_permission_file file
          以文件的形式添加

          setfacl -x u:newuser1 /tmp/file 删除时不要含权限,不能只删除设置权限

的一部分
          setfacl -X uglist     /tmp/file 设置文件中不能含权限
        
          setfacl -R -m u:newuser1:rw  /tmp/dir1
          setfacl -R -x u:newuser1:rw /tmp/dir1
          递归的添加和删除的方法,-R需在前

          setfacl -d -m u:newuser1:rw /tmp/dir1
          设置默认ACL的方法

          临时的启用ACL:
               mount -o remount,acl /home
               mount |grep /home  (rw,acl)
        
          固定启动的方法:
               修改/etc/fstab文件:
               /dev/xxxxxxx  /home  ext4   default,acl 1 2
   
part 4: 高级文件操做命令
     准备工做:head -10 /etc/passwd >> /tmp/file
          1.wc     --给出文件的行,多少byte,多少character, 多少words
               wc -l      行数,空行也算
               wc -c     多少个字符,abc....|123....,每行末尾的回车
               wc -w     单词数,以空格,TAB,换行符区分单词,空行不是一个

words
               wc -m   character字符数
               wc -L     最长的一列有多少列,不包含换行符
        
          2.sort     --排序命令
               -r     反向排序
               -n      数字排序
               -u     合并同类
               -t      制定分割符,默认的分割符tab
               -k     指定的列
             
               sort -t ':'  -k1  file   以':'为分割符,对文件的第1列按字母排


               sort -t ':'  -k3  -n file   按数字排
               sort -t ':'  -k3  -n -r file  逆向排序
             
               sort -k4 file   文件中没有空格,分割符等东西
               sort -t ':' -k3 -u -n file   合并同类项
        
          3.uniq  --报告并忽略重复的行
               -c     统计重复了的行,注意统计的为邻居是否相同
               -i     忽略大小写
               -d     只显示重复行

          4.cut     --将文件中的内容从section移除
               -d     --指定分割符
               -f     --仅仅选择指定的列
               -c     --仅仅选择指定的字符
               cat file | cut -f1
               cat file | cut -c1,3,4
               cat file | cut -d: -f2   
        
          5.paste     --合并文件
               cp file file1
               paste file file1 > file2      --按列合并
               paste -s file file1 > file2     --按行合并
        
          6.tee     --双向重定向,将标准输入的内容同时打印至文件和屏幕
               cat file | tee file3     --将内容同时打印至屏幕和file3
               cat file | tee -a file3     --a追加模式
               tee file3              --从键盘接收输入,同时打印至file3
        
          7.ln
               硬连接: ln source_file   target_file
                    --不能跨分区创建硬连接,因是使用inode来标记文件存放位置的
               软连接: ln -s source_file target_file
   
          8.cat     --输出内容
   
          9.tac     --倒序输出内容
   
          10.diff     --比较两个文件的差别
               -b   忽略空格
               -i   忽略大小写
               -B   忽略空行
             
          11.tr
               tr [a-z] [A-Z]     --小写变大写
               tr [A-Z] [a-z]     --大写变小写
               tr [a-z] [A-Z] < file 将文件中的字符进行大小写转换
               tr -d a < file     --将文件中的某些字母删除
   
part 5: 查找命令
     1.which   ->$PATH
     2.whereis ->$PATH  $MANPATH

     3.locate --从数据库中搜索包含特定关键词的命令
          locate -r 'lesson*'       --搜索包含lesson的关键字的文件
          locate -r 'iso$'     --搜索以iso结尾的文件

     4.find dir [option]
          find /dir -type <bfcls...>     --指定文件类型进行搜索        
          find /dir -user <username>     --按用户搜索
          find /dir -group <grpname>     --按组搜索
          find /dir -atime|ctime|mtime      --按a|c|mtime搜索
          find /dir -perm  +-777          --按权限进行搜索
          find /dir -size +1M -size -10M

          find /dir -type b -ls           --搜索出并用ls显示
          find /dir -user newuser1 -exec cp {} /tmp \;
          find /dir -atime +1 -exec rm {} \;        数字表示的n*24小时内|外
          find /bin -size +10k -size -100k -exec cp {} ./ \; 
               将bin路径下的10-100K大小的文件拷贝至当前路径

part 6: 压缩/解压缩/打包
     1.zip/unzip     --windows/linux/unix
          zip -r demo.zip dir/     --压缩
          unzip demo.zip          --解压缩
          unzip demo.zip -d /tmp/newdir11     --解压缩到某个文件夹
        
     2.gzip/gunzip     --压缩速度快,占用资源少,只能压一个文件
          gzip filename  --对文件压缩,生成filename.gz
          gzip -r dir    --遍历dir,对其内全部文件压缩,每一个文件单独进行压缩
          gzip -1  filename     快速压缩
          gzip -9  filename      高压缩比压缩
          gunzip filename.gz

     3.bzip2/bunzip2     --和gzip基本相同,比gzip压缩比高
          bzip2   filename
          bunzip2 filename.bz2
   
     4.tar     --打包,压缩,解压缩
          xxx.tar.gz
               tar -czvf /dir/package_name.tar.gz source_dir
               tar -xzvf /dir/package_name.tar.gz -C /target_dir

               -c     建立
               -x     解压缩包
               -z     gzip
               -j     bzip2
               -v      详细信息
               -f     文件
        
          xxx.tar.bz2
               tar -cjvf /dir/package_name.tar.gz source_dir
               tar -xjvf /dir/package_name.tar.gz -C /target_dir

part 7: 源码安装
     1.下载源代码包:mpich2-1.4.tar.gz
          去×××包:www.google.com  www.sourceforge.net
     2.解压缩:
          tar xzvf  mpich2-1.4.tar.gz
     3.配置,编译,安装:
          cd src_dir
          ./configure     --进行类型检查,生成Makefile
          make          --编译
          make install    --安装(拷贝)
               --若是你安装的路径须要root权限,切换至root
     4.后期配置:
          更改系统PATH,MANPATH等环境变量

part 8: 进程管理
     1.经常使用的进程管理命令
          top
          ps
          pstree
          pgrep
          kill
          pkill
          killall
          nice
          renice
   
     2.top
          M     --之内存占用率排名
          P     --以CPU占用率排名
          q     --退出
     内容说明:
          PID     --进程的ID
          USER     --任务全部者的用户名
          PR     --优先级
          NI     --NICE值
          VIRT     --虚拟内存使用量
          RES     --实际内存使用量
          SHR     --多个进程交互时的共享内存量
          S     --进程的状态
               D     --不可中断的睡眠进程
               R     --正在运行的进程
               S     --睡眠的进程
               Z     --僵尸进程,找不到爹的孤儿进程,退出不了
          %CPU     --CPU占用率
          %MEM     --内存占用率
          TIME+     --占用的系统CPU时间
          COMMAND     --进程的程序名
   
     3.ps -aux | less
          USER
          PID
          %CPU
          %MEM   
          VSZ     --预分配的虚拟内存量
          RSS     --真实分配的内存量
          TTY
          STAT:
               <     --高优先级的进程
               N     --低优先级的进程        
               s     --有孩子的进程
               l     --上锁的进程
               +     --前台进程
          START
          TIME
          COMMAND

     4.pstree      --以树状结构列出全部进程

     5.pgrep    
          pgrep -l bash     --列出关键字bash对应的进程id
          pgrep -t pts/1  --列出终端对应的进程id
          pgrep -u root vsftpd  --查看root用户启动的vsftpd进程的id
   
     6.kill     --终结一个进程
          ps -aux |grep keyword    --找到你想找的进程PID
          kill PID
          kill -15 pid
          kill -9  pid
          kill -l 9     --KILL
          kill -l 15     --TERM
        
     7.killall  --根据完整的名字关闭进程
          killall -9 bash  杀死bash相关的进程
   
     8.pkill       --以关键字杀死进程
          pkill -9 bash
          pkill -t pts/2
          pkill -u root vsftpd
          pkill -u newuser1 command

     9.nice     --修改nice值
          进程的PR=老的PR+nice
        
          1.这个数值是用来调整进程的优先级的
          2.PR值越低,进程的优先级越高
          3.进程的优先级可经过ps -l -p PID查看
        
          nice -n -1  /bin/bash     对bash的nice值减1
          nice -n +1  /bin/bash     对bash的nice值加1
          nice --adjustment=10|-1|-10 /bin/bash    --adjustment调整的开关
          nice --adjustment=10 vi file 以某个nice值启动vi file这个程序

     10.renice --alter priority of running processes
          renice -10 -p PID   
          renice +2  -p PID
        
          例子:
               vi file
               ps -aux |grep file
               ps -l -p PID
               renice -n -10 -p PID
               ps -l -p PIDnode