linux一些常见命令总结 - Go语言中文社区

linux一些常见命令总结


  1. 文档查看:cat、tac、more、less、head、tail、cut、od、nl
  2. 文件权限:ls -l、chmod、chown、chgrp、umask
  3. 文件查找:find、whereis、locate、which
  4. 程序管理:jobs、bg、fg、kill、killall、ps、pstree、top、free、nice、renice
  5. 开机、关机:sync、shutdown、halt、poweroff、reboot、init
  6. 网络相关:ifconfig、netstat、arp、route
  7. 其它:uname、ulimit

一、文档查看

  • cat:一次性显示完,不能翻页,不能编辑
  • tac:与cat相似,只不过显示的内容是从最后一行到第一行逆序显示的
  • more:可以向下翻页
  • less:可以上、下翻页
  • head:显示文档的头几行,默认10行(-n lines)
  • tail:显示文档的最后几行,默认10行(-n lines)
  • cut:查看文档的部分内容,可以显示每行的部分内容
  • od:以二进制方式读取内容
  • nl:与cat类似,不过显示的时候会顺带输出行号

      这些命令都是不能编辑文档的,其中cat、head、tail执行完后,命令就执行完了,不能有后续操作;
      more和less执行完后,还可以翻页,命令还没有执行完。
      eg:对文档执行less后,命令行窗口显示如下:
      这里写图片描述
      可以发现整个窗口显示的全部都是文档的内容,与man手册类似,除非执行q退出

      而cat执行后,窗口显示如下,当文档内容显示完成后,会自动退出。此时cat命令已执行完,因此不能上、下翻页
      这里写图片描述

二、文件权限

  主要命令有:chmod、chown、chgrp、umask
  linux下每一个目录、文件都是有特定权限的,分别为文件拥有者、群组、其它用户的权限,权限主要分为读、写、执行三种。
  (1)通过ls -l命令可以查看一个文件的权限
  这里写图片描述
  
  ls -al命令显示的每个字段表示的意思依次为:   
  这里写图片描述
  
  其中链接数是指硬链接数。
  互为硬链接的文件具有相同的文件节点i节点,他们指向同一个文件,无论是修改哪一个文件,另一个也做相应的变化
  
  可以发现文件的权限一个包括10个字符
  这里写图片描述
  
  其中第一个字符表示文件的类型
  文件类型:
  
  后面的字符每3个一组,分别表示文件拥有者、文件所属群组、其它用户对该文件拥有的权限,权限为RWX的组合
  由于可以将每个权限看作3bit的二进制表示,因此RWX权限也可以用数字表示,即R=4,W=2,X=1。这是我们常见的表示方式。4+2+1 = 7 ,即当一个文件具有所有权限时,权限用数值表示为777
  
  (2)权限的修改
  主要可以通过chmod、chown、chgrp等命令修改相关权限
  这里写图片描述
  除此之外,还可以用符号来修改文件的权限
  这里写图片描述
  
  
  (3)文件的R、W、X都比较容易理解,要注意的是目录的权限
  
  目录的读权限决定了你能否修改该目录下的文件,包括新建、删除、重命名
  这里写图片描述
  
  目录的执行权限决定了用户能否进入这个目录
  当访问该目录下的文件时,同样也不能访问文件的内容。
  这里写图片描述
  
  (4)umask命令用于设置文件权限屏蔽字,当对应权限位为1时,则屏蔽该位代表的权限,即没有该权限。
  这里写图片描述
  即群组W和其它用户W权限被屏蔽
  
  (5)同时当创建一个文档时,默认的权限是RW-RW-RW-,即文档的执行权限已经被屏蔽
  当创建一个目录时,由于目录的执行权限与能否进入这个目录有关,因此目录的X权限一般都是开放的,即目录的默认权限是RWXRWXRWX
  然后我们再利用umask=0022,屏蔽一些权限后,新建一个文档的权限为RW-R–R–,新建一个目录的权限为RWXR-XR-X
  这里写图片描述
  
  (6)例题
  这里写图片描述
  这里写图片描述

三、文件的查找和定位

  • find会在指定路径下查找,查找速度比较慢
  • whereis会在系统默认位置查找,一般是HOME环境变量指定的所有路径,且可查找的文件种类较少
  • locate会在系统的文件数据库中搜索
  • which只在环境变量中查找指定文件,查找的范围更小

四、shell脚本

  • $?:最近一条命令或shell脚本的出口状态
  • $$:shell脚本的进程ID
  • $#:返回位置参数的总个数
  • $*:表示所有的位置参数
  • $@:表示所有的位置参数
      这里写图片描述
      

五、程序管理

  主要命令有:jobs、bg、fg、kill、killall、ps、pstree、top、free、nice、renice
  (1)程序与进程
  程序:一般以实体文档的方式存储在媒体(磁盘、光盘)中,没有生命
  进程:正在执行的程序。
  每一个进程都有一个系统赋予的进程标识(进程ID),并与启动进程的用户(用户ID)相关联。
  用户可以查询所有进程的状态,但是只能控制自己的进程,如向进程发送信号、重新启动或终止进程
  超级用户则可以控制所有进程
  
  (2)bash中命令的调用过程
  fork-and-exec流程:首先fork出一个子进程,然后调用exec让子进程其执行命令。任务执行完成后调用exit,然后再继续执行父进程
  这里写图片描述
  
  (3)Linux多用户、多任务环境
  多用户:Linux下可以有多个用户账号存在,可以使每个用户具有不同的权限。每个用户登入Linux后取得的shell的进程ID不同,因此可以对不同用户设置不同的登入环境
  多任务:所有处于竞争状态的进程都能够合理的共享资源,当有多个用户同时登入Linux后,看起来系统也只是在为你一个人服务
  
  (4)bash环境下的任务管理
  我们登入bash后,可以在bash中同时执行多个任务吗?
  当然可以,只要将任务设置为后台运行即可。我们知道find命令非常耗时,如果让find命令在前台运行,那么bash一直都被占用,我们就不能执行其他任务了。因此可以将find放在后台运行,让我们可以继续使用bash。
  &:使任务在后台运行
  Ctrl+z:使任务挂起
  jobs:观察当前bash中正在执行的任务
  bg:使任务在后台运行
  fg:使任务在前台运行
  kill、killall:终止某个任务
  bg、fg、kill:一般都是加%num参数,其中num为执行jobs命令后每个任务前面显示的序号
  简单示例如下:
  这里写图片描述
  首先执行find任务,由于任务执行时间较长,为了能在此期间继续执行其它任务,按下Ctrl + Z向进程发送一个信号将任务挂起。
  此时用jobs命令查看可以发现任务的状态变为Stopped
  然后可以执行bg %num命令将任务放在后台执行,此时用jobs命令查看可以发现任务的状态已经变成了Running,表示任务正在执行
  当任务执行完后,任务就Exit退出了,任务也就被系统清除了。
  
  kill命令常见用法是:kill -signal PID/(%job_num),当不指定signal时,默认发送的是信号15,即SIGTERM。
  由于kill命令必须知道进程ID或任务号,比较麻烦。因此我们可以使用killall命令
  killall -signal process_name,如killall -9 find。 信号9是SIGKILL
  一些常见信号:
 这里写图片描述

  (5)进程管理
  ps:查看进程状态信息
  pstree:以树形缩进形式显示进程之间的调用关系
  top:实时监控进程的状态信息
  nice、renice:调节进程优先级
  free:查看系统资源
  ps命令提供的参数非常多,但是我们只需要记住常用的几个即可。
  -a:显示活动进程
  -e:显示所有进程
  -f:显示进程的重要状态信息
  -l:显示进程的详细状态信息
  一般使用:ps -ef 、 ps -l
  这里写图片描述
  
  这里写图片描述
  这里写图片描述
  
  这里写图片描述
  
  调节进程优先级:nice、renice
  执行ps -l可以查看进程的优先级PRI,但是由于PRI是由linux系统控制的,我们不能改变,因此我们只能通过改变NI即nice的值来对进程优先级进行调节。
  这里写图片描述
  PRI(new) = PRI(old) + nice,当nice值为负时,则使PRI值减小。PRI值越小,优先级越高,因此可以将nice设为负值以提升进程优先级。但是为了避免用户持续抢占资源,因此一般不允许用户将nice设为负。
  nice -n command
  如果进程已经存在时,则需要用到renice,renice number PID

六、开机、关机

  这里写图片描述
  

七、网络相关

  主要命令有ifconfig、netstat、arp等
  
  (1)ifconfig
  可以用来查看网络接口的基本配置和状态信息,常见用法有:
  ifconfig -a
  ifconfig eth0 192.168.1.111 netmask 255.255.255.0
  ifconfig eth0 down/up
  ifconfig eth0 mtu 1500

  (2)netstat
  可以给出网络状态信息
  netstat [-s] [-i [ifname] ] [-r] [-n] [-atuwp] [-c] [delay]
  -s:按照协议分类统计
  -i:显示网络接口的状态信息
  -r:显示核心路由表
  -n:只需显示IP地址,而不用转换成主机名或网络名
  -t:只显示tcp套接字的状态信息
  -u:只显示udp
  -w:只显示原始套接字的状态信息
  -p:显示每个套接字所属程序的名称和进程ID
  -c:表示每秒一次,(此时netstat程序没有终止,除非Ctrl+c主动结束)
  -d:显示抽样统计数据的延时

  (3)arp
  arp协议是用于解决IP地址和MAC地址之间的映射关系的,arp命令的主要用法有:
  arp [-s] [-d] [-i [ifname] ] [n]
  -s:用于增加一个arp表项,如arp -s 10.10.10.1 00:11:22:33:44:55:66
  -d:用于删除一个arp表项,如arp -d 10.10.10.1
  -i、-n与netstat中的参数意思相同
  
  (4)route
  常见用法有:
  route -n:显示路由
  route add -net 192.168.11.0 netmask 255.255.255.0 dev eth0:增加一条到192.168.11.0的路由表项
  route del-net 10.0.0.0 netmask 255.0.0.0:删除一条路由表项
  当要设置网络不可达时,可以直接在add、del命令后加上reject
  route add default gw 192.168.120.240:配置网关
  route del default gw 192.168.120.240
  

八、其它

  uname:可以查看linux版本
  这里写图片描述
  
  ulimit:查看系统和文件的限制
  这里写图片描述
  常见的是core文件的大小限制,一般系统默认是关闭core文件,而有时为了调试我们需要把core文件打开。
  这里写图片描述
  这样程序执行出错时,就会产生core文件了,然后我们就可以使用gdb进行调试
  
参考资料:
《鸟哥的私房菜–基础篇》

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u012658346/article/details/51018453
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-12-11 19:31:04
  • 阅读 ( 1866 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢