• 查看Linux系统中虚拟内存的当前状态:cat /proc/meminfo出于安全性考虑,任何进程都不得访问内核进程使用的内存。
  • 查看文件统计数据:stat
  • 查看文件类型:file
  • 显示文本文件(可控,cat不可控):more
  • less命令是more命令的高级版本
  • 查看部分文件:
    • tail
    • head
  • ps命令对于收集在系统中运行进程的信息
  • top命令实时输出系统运行进程的信息
  • kill命令允许更具进程ID(PID)将信号发送给相关进程。默认情况kill会发送一个TERM命令给命令行中列出的所有PID。可以使用-s参数来指定其他信号(使用它们的名称或信号编号)
  • killall可以根据进程的名称而非PID来停止进程。
  • mount命令用于挂载介质,默认情况下,mount命令显示系统当前挂载的介质设备列表。
  • umount用于卸载设备
  • df查看自己已挂载磁盘的使用情况
  • du显示特定目录的磁盘使用情况
  • sort命令用于对数据进行排序
  • grep命令可以完成搜索任务
  • egrep命令是grep命令的一个分支,它允许指定POSIX扩展的正则表达式,ishiyong多个字符知道能够匹配模式;fgrep命令允许你使用一列换行符固定字符串值来指定匹配模式。
  • bzip2压缩工具:
    • bzip2
    • bzcat
    • bunzip2
    • bzip2recover
  • gzip压缩工具:
    • gzip
    • gzcat
    • gunzip
  • zip工具:
    • zip
    • zipcloak(用于创建包含列出文件和目录的加密压缩文件)
    • zipnote(用于提取zip文件中的注释)
    • zipsplit(将zip文件分割成指定大小的多个小文件)
    • unzip
  • 归档数据:tar,用于将文件归档到磁盘设备中,还可以将输出写入到文件中
  • printenv:查看全局环境变量
  • set命令显示特定进程的所有环境变量集
  • 使用等号设置本地环境变量
  • 终端下输入shell进入shell子进程
  • 创建全局变量的方法是创建一个本地环境变量,然后再将它导出到全局环境中:export命令。
  • 可以使用unset命令来删除已有的环境变量。使用时不要使用美元符号。(如在子进程使用unset移除全局环境变量,则只对子进程有效)
  • 当登陆到Linux系统中时,bash shell将作为登陆shell启动,登陆shell将查找4个不同的启动文件来处理其中的命令。bash shell处理文件的顺序如下:
    • /etc/profile
    • $HOME/.bash_profile
    • $HOME/.bash_login
    • $HOME/.profile
  • Linux环境变量的一个特性就是能够当做数组使用,数组中的值既可以分别引用也可作为整体引用。要为某个环境变量设置多个值,只需将它们列出在圆括号中,各值以空格分隔。只有数组的第一个值将被显示出来,要引用某个单独的数组元素,必须使用一个数值索引值,表示该元素在数组中的位置。索引值包含在方括号中(环境变量数组以0索引开始)e.g:echo ${mytest[2]}————只会令事情变得更加复杂,在shell脚本编程中并不常用。
  • 创建命令别名:alias,alias -p可以查看活动别名列表(类似与环境变量);unalias可以删除命令别名
  • bash shell始终会读取$HOME/.bashrx启动文件
  • Linux将500以下的UID保留用作系统账户。/etc/passwd文件中的密码字段被设置为一个x是加密版本的用户密码。大多书用户都需要可以访问/etc/passwd文件来获取用户信息,大多数Linux系统将用户密码保存在/etc/shadow(影子文件),如果/etc/shadow文件被破坏系统将会被破坏。
  • 添加用户:useradd
  • 删除用户:userdel
  • 用户账户修改使用工具:
    命令 描述
    usermod 编辑用户账户字段,以及指定主要和次要用户组成员
    passwd 修改已有用户的密码
    chpasswdd 读取登陆名和密码对文件,并更新密码
    chage 修改密码的逾期日期
    chfn 修改用户账户的注释信息
    chsh 修改用户账户的默认shell
  • finger命令允许方便查看Linux系统上的用户信息(基于安全性考虑,许多Linux系统管理员禁用了finger命令)
  • 创建新用户组:groupadd
  • 添加用户账户到用户组:usermod -G 用户组
  • 修改用户组:groupmod
  • 创建任何文件或目录设置默认权限:umask
  • umask值是从对象完整权限集中减去的值,文件的完整权限是模式666(所有人都有读取/写入权限),而目录的完整权限是777(所有人都有读取/写入/执行权限)
  • 修改权限:chmod
    • u表示用户
    • g表示用户组
    • o表示时其他
    • a表示上述所有人
      • x用于指定执行权限
      • s用于设置正在执行的UID或GID
      • t由于保存程序文本
      • u用于将权限设置为所有者的权限
      • g用于将权限设置为用户组的权限
      • o用于将权限设置为其他人的权限
      • r读权限
      • w写权限
  • 修改文件的所有者:chown
  • 修改文件的默认用户组:chgrp
  • 共享文件(完全文件共享环境不会很简单,创建用户组是在Linux系统上共享文件访问的一种方法):set GID位来创建共享目录。SGID位强制在某个目录中创建的任何新文件或目录都使用父目录的默认用户组名称。Linux为每个文件和目录都储存了3个额外的信息位:
  • set user id(SUID):当文件由用户执行时,程序将在文件所有者的权限下运行。
  • set group id(SGID):对于文件,程序将在文件用户组的权限下运行,对于目录,目录中创建的新文件使用目录用户组作为默认用户组
  • 粘着位:进程结束后,文件任然保留(粘着)在内存中
```
# 共享文件用例:
mkdir testdir
chgrp shared testdir
chmod g+s testdir
# 然后在testdir文件夹下的文件都是共享的
```
  • 要引用当前目录中的文件,可以在shell中使用单点操作符,将脚本文件的存储路径准确地告诉shell
  • hash命令可以快速得到最近使用过的命令的位置。