如下图:

/bin:二进制目录,主要存放许多用户级的GUN工具,比如/bin/bash
/ect:系统配置文件目录,比如前面讲的/passwd就是记录用户的shell的
/home:主目录,Linux在这里创建用户目录,比如/home/wcy
/tmp:临时目录,可以存放临时文件
/usr:用户二进制目录,大量用户级的GUN工具和数据文件都存放在这里

  1. 绝对路径 带/
  2. 相对路径不带/
  3. CLI提示符(CLI提示符就是~)代表在当前用户的主目录
  4. 单点符(.):代表当前目录
  5. 双点符(..):代表上一级目录
  1. -F:在可执行文件后面加上 /
  2. -R:用多了就会发现,这个参数基本都是和子目录有关,这里就是显示目录的子目录
  3. -a:显示所有文件,包括隐藏文件
  4. -i:显示每个文件的索引编号
  5. -l:显示更多的目录信息,已长列表的形式
  6. -l [过滤条件]:显示满足过滤条件的文件,过滤条件可以使用?*做通配符,甚至可以使用[!a](排除a),[ab],[a-c]
  7. 注:这个过滤条件不一定要放到-l后面,直接用也可以的

信息分别是: 文件类型 文件权限信息 硬链接数量 属主用户名 属主的组名 文件大小 上次修改时间 文件名或者目录名

  1. -i:提醒是否会替代
  2. -n:不覆盖
  3. -R:复制整个目录的时候用
  4. -f:如果有已存在的目标文件切无法打开,将其删除后重试
  5. -s:只创建符号链接而不是复制文件

硬链接:可以理解为一个文件有两个路径,一般用于重要文件备份,防止误删
软链接:可以理解为windows里的快捷方式,源文件删除就失效了

  1. ln #硬链接—它和源文件根本上是一个文件
  2. ln -s #符号链接,也叫软链接,与源文件的innode不一致(innode可以通过ls -i 查看)
  1. -f:不提醒直接覆盖
  2. -i:提醒是否会替代
  3. -t:移动文件夹
  1. -f:不提醒直接删除
  2. -i:提醒是否要删除
  3. -r/-R: 递归删除目录文件
  4. -d:删除空目录
  5. 所以rm -rf 是删库跑路哈哈,要是不确定就是加个 -i
  6. 创建文件夹 - mkdir命令
  7. 删除空文件夹 - rmdir命令
  1. file命令:查看文件类型
  2. cat命令:查看文件具体内容
  3. -n:加行号
  4. -b:只给有文本的加行号
  5. -T:不让制表符出现
  6. more命令:cat命令文本会一晃而过,所以有more命令
  7. less命令:比more更强大,支持上下翻页
  8. tail命令:指定后面多少行查看 egtail -5
  9. head命令:指定前面多少行查看 eg: head -5
  1. -a: 显示所有进程
  2. -u:以用户的信息显示进程
  3. -x:显示后台运行进程的参数
  4. -l:长格式输出信息
  5. -ef:可以查看父类进程信息
  6. --forest:查看显示父线程和子线程之间的关系
  7. pstree -pu :以树机构查看进程关系
  1. # 显示所有进程的前五个
  2. [root@localhost ~]# ps -aux | head -5
  3. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  4. root 1 0.0 0.0 194240 7388 ? Ss 607 2:25 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
  5. root 2 0.0 0.0 0 0 ? S 607 0:01 [kthreadd]
  6. root 4 0.0 0.0 0 0 ? S< 607 0:00 [kworker/0:0H]
  7. root 6 0.0 0.0 0 0 ? S 607 0:04 [ksoftirqd/0]
  8. # 以cpu占比排序
  9. [root@localhost ~]# ps -aux --sort=%cpu | head -5
  10. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  11. root 1 0.0 0.0 194240 7388 ? Ss 607 2:25 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
  12. root 2 0.0 0.0 0 0 ? S 607 0:01 [kthreadd]
  13. root 4 0.0 0.0 0 0 ? S< 607 0:00 [kworker/0:0H]
  14. root 6 0.0 0.0 0 0 ? S 607 0:04 [ksoftirqd/0]
  15. # 以cpu占比正排序,内存逆排序
  16. [root@localhost ~]# ps -aux --sort=%cpu,-%mem | head -5
  17. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  18. root 1732 0.0 0.5 1279228 89232 ? Ssl 609 19:10 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  19. root 830 0.0 0.1 359140 29900 ? Ssl 607 0:11 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
  20. root 1162 0.0 0.1 1007312 18632 ? Ssl 607 0:01 /usr/sbin/libvirtd
  21. root 1158 0.0 0.1 574284 17504 ? Ssl 607 12:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P

常用参数:

  1. -d + 秒数 :设置刷新时间
  2. -b 以字段批次显示
  3. top -n 3 -b > /tmp/top.tmp 3stop信息转存到临时文件)
  4. -p + 进程号: 指定进程

top显示的页面命令

  1. P:以CPU的使用资源排序显示
  2. M:以内存的使用资源排序显示
  3. N:以pid排序显示
  4. T:由进程使用的时间累计排序显示
  5. k:给某一个pid一个信号。可以用来杀死进程
  6. r:给某个pid重新定制一个nice值(即优先级)
  7. q:退出top(用ctrl+c也可以退出top)。

top信息介绍

  1. PID:线程名称
  2. USER:进程属主名称
  3. PR:优先级
  4. NI:谦让度值
  5. VIRT:占用虚拟内存的值
  6. RES:占用物理内存的值
  7. S:进程状态(虚拟机里那个版本好像表头不显示这个S)
  8. %CPUCPU占比
  9. %MEN:占可用内存的总量

结束线程的前提是线程的属主或者root权限
通过 kill pid 来杀死进程 例如:kill 2356

  1. #也可以指定别的处理方式:
  2. 1 HUP 挂起
  3. 2 INT 中断
  4. 3 QUIT 结束运行
  5. 例:kill -s 1 2356 或者 kill -s HUP 2356kill -9 pid(表示强制结束)

用于查看和监控整个服务器的内存和CPU占用情况

命令格式:vmstat [options] [delay [count]]

  1. FIELD DESCRIPTION FOR VM MODE
  2. Procs
  3. r: The number of runnable processes (running or waiting for run time).
  4. b: The number of processes blocked waiting for I/O to complete.
  5. Memory
  6. These are affected by the --unit option.
  7. swpd: the amount of swap memory used.
  8. free: the amount of idle(闲置) memory.
  9. buff: the amount of memory used as buffers(缓冲).
  10. cache: the amount of memory used as cache.
  11. inact: the amount of inactive memory. (-a option)
  12. active: the amount of active memory. (-a option)
  13. Swap
  14. These are affected by the --unit option.
  15. si: Amount of memory swapped in from disk (/s).
  16. so: Amount of memory swapped to disk (/s).
  17. IO
  18. bi: Blocks received from a block device (blocks/s). (这里的块设备指的是所有磁盘和其他块设备)
  19. bo: Blocks sent to a block device (blocks/s).
  20. System
  21. in: The number of interrupts per second, including the clock.
  22. cs: The number of context switches per second.
  23. CPU
  24. These are percentages of total CPU time.
  25. us: Time spent running non-kernel code. (user time, including nice time)
  26. sy: Time spent running kernel code. (system time)
  27. id: Time spent idle(闲置的). Prior to Linux 2.5.41, this includes IO-wait time.
  28. wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
  29. st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

常用参数:

  1. -a, --active active/inactive memory
  2. -f, --forks number of forks since boot
  3. -m, --slabs slabinfo
  4. -n, --one-header do not redisplay header
  5. -s, --stats event counter statistics
  6. -d, --disk disk statistics
  7. -D, --disk-sum summarize disk statistics
  8. -p, --partition <dev> partition specific statistics
  9. -S, --unit <char> define display unit //have param like "k, K , m , M"
  10. -w, --wide wide output
  11. -t, --timestamp show timestamp
  12. -h, --help 显示此帮助然后离开
  13. -V, --version 显示程序版本然后离开
  • mount命令:挂载设备
  1. 基本用法 mount - t type device directory
  2. 这里的type指定磁盘被格式化的文件系统类型,一般用的多的就是 vfatWindows系统)
  3. -O:可以选择挂载方式,有ro(只读)、rw(读写)等等
  • umount命令:卸载设备
  1. 用法:
  2. umount [-hV]
  3. umount -a [选项]
  4. umount [选项] <源> | <目录>
  5. 值得注意的是和windows一样,有任何程序在使用该设备都不能拔出。
  • df命令:查看磁盘空间
  1. -h:以用户易读的形式显示
  • du命令:显示特定目录的磁盘空间(默认是当前目录)
  1. -c:显示当前目录下的总用量
  2. -h:以用户易读的形式显示
  3. -s:显示每个输出参数的统计
  • cat命令:略

  • sort命令:

  1. -b:忽略起始的空白
  2. -n:按值排序
  3. -M:排序
  4. -k:--key=pos1[,pos2]从指定位置排序
  5. -t: 指定分健位置的字符
  6. -r:反序
  7. ":" 为分隔符的第三个为排序字符,以值大小排序
  8. sort -t ':' -k 3 -n /etc/passwd
  • grep命令:管道命令
  1. 非常强大,命令行格式如下:
  2. -grep [option] pattern [file]
  3. -v: 不匹配的
  4. -n: 加行号
  5. -c:只输出有多少行匹配
  6. -e:匹配多个模式 如:grep -e 1 -e 2 filename
  7. pattern还可以使用正则,[ef]是ef,[1-3]是1-3
  • zip命令:压缩数据
  1. zip option 目标文件 源文件
  2. -q :不显示压缩进度状态
  3. -r :子目录子文件全部压缩为zip //不然的话只有"zipfile list''文件夹被压缩,里面内容没有被压缩进去
  4. -e :压缩文件需要加密,终端会提示你输入密码的 //zip -r -P test password.zip "zipfile list'' 直接用'test'来加密password.zip 。
  5. -m :压缩完删除原文件
  6. -o :设置所有被压缩文件的最后修改时间为当前压缩时间
  7. egzip test/temp.zip temp
  • unzip
  1. uzip option 源文件 目标文件
  2. eguzip test.zip -d test (解压缩到指定目录)
  • tar命令:归档数据
  1. 这里记住官方给的三个例子就好了:
  2. Examples:
  3. tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
  4. tar -tvf archive.tar # List all files in archive.tar verbosely.
  5. tar -xf archive.tar # Extract all files from archive.tar.
  6. 小窍门:基本使用的就是压缩和解压,-cf就是压缩,-xf就是解压,-v就是显示要不要都行
  7. -c:切换到指定目录
  8. -f:输出结果到文件或目录
  9. -p:保留文件权限
  10. -v:处理时显示文件
  11. -r:追加文件到以后文件末尾
  12. -z:输出重定向给gzip命令来压缩内容

这里的全局变量和局部变量和程序语言中的一致。

  1. printenv 变量名 #查看全局变量
  2. env $变量名 #查看全局变量
  3. my_vara=123 #设置局部变量
  4. set #查看局部变量
  5. export 变量名 #局部变量变全局变量,子shell的全局变量在父shell中不管用,父shell导出的变量子shell是可以继承的
  6. unset #删除全局变量

PATH 环境变量:定义了用于进行命令和程序查询的目录。

不同的目录用:隔开

一般程序员添加PATH环境变量

  1. PATH=$PATH:.

全局的环境变量

  1. 将新的或者修改过的环境变量 创建一个.sh文件 放到 /etc/profile.d 这个目录下
  2. 注意:如果直接放到/etc/profile中升级了发行版,这个文件也会更新的,就丢了

如果要创建个人账户的全局变量:

  1. 将变量放到$HOME/.bashrc 文件中,因为$HOME是个人目录嘛 #最后记得,保存后要重启终端才能用
版权声明:本文为wcyblogs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wcyblogs/p/16301037.html