Linux常用命令

 

 

 

转自我们班大佬https://jinwenjie.me/756.html

  • 1、shell中的特殊字符:
  • 1)通配符
  • * ---- 匹配任意长度字符串
  • ? ---- 匹配一个长度任意字符
  • [1,2,3]---- 匹配1,或23中的其中一个字符
  • [a-z] ---- 匹配a到z中的其中一个字符
  • [^...] ---- 除了其中的任意一个字符
  • 2)管道
  • | ----- 第一个命令的输出作为第二个命令的输入(参数)
  • 3)输入输出重定向
  • > file ----- 将...重定向到file,新建模式
  • >>file ----- 将...重定向到file,追加模式
  • < file ----- 将file作为输入源,什么都不加默认输入源为键盘,<可以省略
  • 2> file ----- 将错误信息重定向到file中
  • &> file ----- 将正确或者错误信息都重定向到file中
  • 4)命令置换
  • 这个命令的意义在于shell脚本中经常用于替换
  • 将一个命令的输出作为另一个命令的输入(参数)
  • command1 `command2` ---- 将command2的输出作为command1的参数
  • `date` == $(date)
  • echo "Today is `date`"
  • echo "Today is $(date)"
  • 2、shell基本系统维护命令
  • 1)man command ---- 查看帮助文档
  • 2)passwd [usrname] ---- 修改用户的密码
  • 3)su [-c | -m | -] usrname ---- 用于切换用户
  • -c:表示执行完一个命令就结束
  • -m:表示环境变量不变
  • - :环境变量也切换为该用户的环境变量
  • 4)echo [-n]
  • -n: 表示echo不换行
  • 5)date [-s]
  • date : 用于显示当前时间
  • date -s yy/mm/dd :用于修改当前时间为yy年mm月dd日
  • date -s hh:mm:ss :用于修改当前时间为hh时mm分ss秒
  • 6)clear
  • 清除屏幕
  • ctrl+l: 清屏
  • 7)df 查看磁盘空间的使用情况
  • 8)du 查看某个目录的空间情况
  • 3、用户管理命令
  • /etc/passwd 文件是系统能够识别的用户清单
  • /etc/group 包含了UNIX组的名称和每个组中成员列表
  • (1)添加用户
  • adduser [选项] 用户名
  • adduser -m alw
  • 添加名字为alw的用户,当用户创建成功,会在/home目录下生成与用户名同名的目录
  • adduser -m -s/bin/bash alw
  • 用此命令作为新建用户的标准命令
  • (2)修改密码
  • passwd [选项] [用户名]
  • passwd alw
  • 修改alw用户的密码
  • (3)切换用户
  • su [选项] [用户名]
  • su - root
  • 切换到root用户,并将root用户的环境变量同时带入
  • (4)删除用户
  • deluser [选项] 用户名
  • deluser -r alw
  • 删除名字为alw的用户,-r选项会使/home目录下的该用户目录也被删除
  • -f 与用户相关的文件一并删除
  • 5)删除用户组
  • delgroup 组名
  • 注:有用户的组不能删除,删除的组必须是没有成员的组
  • 4、进程管理命令
  • 1)ps ---- 显示进程状态
  • 2)top ---- 动态监视进程
  • 3)pstree ---- 将所有进程以树状图显示
  • 4)kill ---- 发送信号
  • 5、文件与目录命令
  • (1)查看目录
  • ls [选项][目录或文件]
  • ls /home
  • 显示/home目录下的文件与目录(不包含隐藏文件)
  • ls -a /home
  • 显示/home目录下的所有文件与目录(含隐藏文件)
  • ls -l /home
  • 显示/home目录下的文件与目录的详细信息
  • (2)改变工作目录
  • cd 目录名
  • cd /home
  • 进入/home目录
  • cd ..
  • 返回上一级目录
  • cd ../..
  • 连续返回两级目录
  • cd ~
  • 进入家目录即用户的home目录
  • cd -
  • 进入当前目录前所在目录
  • (3)复制文件/目录
  • cp [选项] 源文件或目录 目标文件或目录
  • cp /home/hello.c /tmp
  • 将/home目录下的hello.c拷贝到/tmp目录下
  • cp -r /home/dir /tmp
  • 将/home目录下的dir目录拷贝到/tmp目录下
  • (4)移动或更名
  • mv[选项]源文件或目录 目标文件或目录
  • mv /home/hello.c /home/word.c
  • 将/home目录下的hello.c 更名为word.c
  • mv /home/dir /tmp
  • 将/home目录下的dir目录移动到/tmp目录下
  • (5)删除文件/目录
  • rm [选项] 文件或目录
  • rm /home/hello.c
  • 删除/home目录下的hello.c
  • rm -r /home/dir
  • 删除/home目录下的dir目录
  • (6)改变文件权限
  • chmod [who][+ | - | =][mode]文件名
  • who:
  • u表示文件的所有者
  • g表示与文件所有者同组的用户
  • o表示其他用户
  • a表示所有用户//系统默认值
  • mode:
  • +添加某个权限
  • -取消某个权限
  • =赋予给定权限
  • chmod a+w hello.c
  • 将hello.c这个文件所有用户添加写权限
  • (7)创建目录
  • mkdir[选项]目录名
  • mkdir /home/dir
  • 在/home目录下创建dir目录
  • mkdir -p /home/dir1/dir2
  • 在/home目录下创建/dir1/dir2目录,如果dir1不存在,先创建dir1
  • (8)查看当前路径
  • pwd
  • pwd
  • 显示当前工作目录的绝对路径
  • 9)硬链接和软连接
  • 软连接:相当于windows中快捷方式 ln -s target link_file
  • 硬链接:相当于给原来的一个文件取一个别名 ln target link_file
  • 6、压缩打包类命令
  • gzip [-num| -d |-l] 要压缩的文件名
  • 注:gzip不能指定压缩后的文件名,且gzip每次只能压缩一个文件
  • zip
  • zip 压缩后的的文件名.zip 要压缩的文件名
  • unzip 压缩包的名字.zip
  • tar
  • -j bzip2
  • -z gzip
  • -f 设置文件名
  • -c 新建打包文件
  • -v 显示打包或解包过程
  • -x 解压
  • tar -zcvf
  • 7、Linux网络配置管理
  • 1) ifconfig
  • 查看网络配置
  • 2)dhclient
  • 配置动态ip
  • 3)sudo /etc/init.d/networking restart
  • 网络服务重启
  • 4)修改网络配置步骤
  • a、/etc/network/interfaces
  • b、/etc/resolv.conf
  • c、sudo /etc/init.d/networking restart
  • 5)ping命令
  • 网络连接检测工具
  • 6)nslookup
  • 查看当前系统所使用的DNS服务器的IP地址
  • # Linux
  • ## 常用命令
  • ### 查看相关
  • 1. ls
  • * 用来显示目标列表
  • - 参数列表
  • + 语法: ls 参数 对象
  • + [-a]:显示所有档案及目录
  • + [-A]:显示除“.”和“..”以外的所有文件列表
  • + [-C]:多列显示输出结果
  • + [-l]:单列显示
  • + [-t]:用文件和目录的更改时间排序
  • + [-r]:以文件名反序排列并输出目录内容列表
  • + [-R]:将指定目录下的所有文件及子目录一并处理
  • + [-d]:仅显示目录名,而不显示目录下的内容列表
  • + [--full-time]:列出完整的日期与时间;
  • + 其他参数请查看手册
  • 2. cat
  • * 将文件打印到屏幕
  • - 参数列表
  • + 语法:cat 参数 文件
  • + [-n]:显示行号
  • + [-b]:和-n相似空白行不编号;
  • + [-s]:当遇到有连续两行以上的空白行,就代换为一行的空白行;
  • + [-A]:显示不可打印字符,行尾显示“$”
  • + [-e]:等价于"-vE"选项;
  • + [-t]:等价于"-vT"选项;
  • 3. more
  • * 内容显示到屏幕
  • - 参数列表
  • + more 参数 对象
  • + [-<数字>]:指定每屏显示的行数;
  • + [-d]:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
  • + [-c]:不进行滚屏操作。每次刷新这个屏幕;
  • + [-s]:将多个空行压缩成一行显示;
  • + [-u]:禁止下划线;
  • + [+<数字>]:从指定数字的行开始显示。
  • 4. head
  • * 显示文件开头内容
  • * 参数列表
  • + 语法:head 参数 对象
  • + 默认显示前10
  • + [-n<数字>]:指定显示头部内容的行数;
  • + [-c<字符数>]:指定显示头部内容的字符数;
  • + [-v]:总是显示文件名的头信息;
  • + [-q]:不显示文件名的头信息。
  • 5. tail
  • * 显示文件尾部内容
  • * 参数列表
  • + 语法:tail 参数 对象
  • + 默认显示10行尾部数据
  • + [--retry]:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
  • + [-c]:输出文件尾部的N(N为整数)个字节内容;
  • + [-f]:实时显示文件尾部变化情况
  • + [-F]:与选项“-follow=name”和“--retry"连用时功能相同;
  • + [-n]:输出文件的尾部N(N位数字)行内容。
  • + [--pid=<进程号>]:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
  • + [-q]:当有多个文件参数时,不输出各个文件名;
  • + [-s<秒数>]:与“-f”选项连用,指定监视文件变化时间隔的秒数;
  • + [-v或——verbose]:当有多个文件参数时,总是输出各个文件名;
  • + [--help]:显示指令的帮助信息;
  • + [--version]:显示指令的版本信息。
  • 6. vi
  • * 纯文本编辑器
  • - 查看模式
  • - 编辑模式
  • - 模式切换
  • + 从编辑模式切换到查看模式需按esc键
  • + 从查看模式切换到编辑模式按A”、“a”、“O”、“o”、“I”、“i”键
  • - 操作命令
  • + [Ctrl+u]:向文件首翻半屏;
  • + [Ctrl+d]:向文件尾翻半屏;
  • + [Ctrl+f]:向文件尾翻一屏;
  • + [Ctrl+b]:向文件首翻一屏;
  • + [Esc]:从编辑模式切换到命令模式;
  • + [ZZ]:命令模式下保存当前文件所做的修改后退出vi;
  • + [:行号]:光标跳转到指定行的行首;
  • + [:$]:光标跳转到最后一行的行首;
  • + [x或X]:删除一个字符,x删除光标后的,而X删除光标前的;
  • + [D]:删除从当前光标到光标所在行尾的全部字符;
  • + [dd]:删除光标行正行内容;
  • + [ndd]:删除当前行及其后n-1行;
  • + [nyy]:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
  • + [p]:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
  • + [P]:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
  • + [/字符串]:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
  • + [?name]:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
  • + [a,bs/F/T]:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
  • + [a]:在当前字符后添加文本;
  • + [A]:在行末添加文本;
  • + [i]:在当前字符前插入文本;
  • + [I]:在行首插入文本;
  • + [o]:在当前行后面插入一空行;
  • + [O]:在当前行前面插入一空行;
  • + [:wq]:在命令模式下,执行存盘退出操作;
  • + [:w]:在命令模式下,执行存盘操作;
  • + [:w!]:在命令模式下,执行强制存盘操作;
  • + [:q]:在命令模式下,执行退出vi操作;
  • + [:q!]:在命令模式下,执行强制退出vi操作;
  • + [:e文件名]:在命令模式下,打开并编辑指定名称的文件;
  • + [:n]:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
  • + [:f]:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
  • + [:set number]:在命令模式下,用于在最左端显示行号;
  • + [:set nonumber]:在命令模式下,用于在最左端不显示行号;
  • ### 文件控制
  • 1. cp
  • * 将一个或多个源文件或者目录复制到指定的目的文件或目录
  • - 语法:cp 参数 源对象 目标对象
  • - [-a]:此参数的效果和同时指定"-dpR"参数相同;
  • - [-d]:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
  • - [-f]:强行复制文件或目录,不论目标文件或目录是否已存在;
  • - [-i]:覆盖既有文件之前先询问用户;
  • - [-l]:对源文件建立硬连接,而非复制文件;
  • - [-p]:保留源文件或目录的属性;
  • - [-R/r]:递归处理,将指定目录下的所有文件与子目录一并处理;
  • - [-s]:对源文件建立符号连接,而非复制文件;
  • - [-u]:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
  • - [-S]:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
  • - [-b]:覆盖已存在的文件目标前将目标文件备份;
  • - [-v]:详细显示命令执行的操作。
  • 2. touch
  • * 功能1:如果文件不存在,则新建文件
  • * 功能2:如果文件存在,则更新时间标签
  • * 概要: 语法参数
  • - 语法:touch 参数 对象
  • - [-a]:或--time=atime或--time=access或--time=use 只更改存取时间;
  • - [-c]:或--no-create 不建立任何文件;
  • - [-d]:<时间日期> 使用指定的日期时间,而非现在的时间;
  • - [-f]:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
  • - [-m]:或--time=mtime或--time=modify 只更该变动时间;
  • - [-r]:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
  • - [-t]:<日期时间> 使用指定的日期时间,而非现在的时间;
  • - [--help]:在线帮助;
  • - [--version]:显示版本信息。
  • 3. mv
  • * 用来对文件或文件名重新命名
  • - 语法及参数
  • + 语法:mv 源对象 目标对象
  • + [--backup=<备份模式>]:若需覆盖文件,则覆盖前先行备份;
  • + [-b]:当文件存在时,覆盖前,为其创建一个备份;
  • + [-f]:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
  • + [-i]:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
  • + [--strip-trailing-slashes]:删除源文件中的斜杠“/”;
  • + [-S<后缀>]:为备份文件指定后缀,而不使用默认的后缀;
  • + [--target-directory=<目录>]:指定源文件要移动到目标目录;
  • + [-u]:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
  • 4. mkdir
  • * 创建目录
  • - 语法及参数
  • + 语法:mkdir 参数 目标路径
  • + [-Z]:设置安全上下文,当使用SELinux时有效;
  • + [-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限]
  • + [-p或--parents] 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
  • + [--version] 显示版本信息。
  • 5. rm
  • * 删除文件或目录
  • - 语法及参数
  • + 语法:rm 参数 目标路径
  • + [-d]:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
  • + [-f]:强制删除文件或目录;
  • + [-i]:删除已有文件或目录之前先询问用户;
  • + [-r或-R]:递归处理,将指定目录下的所有文件与子目录一并处理;
  • + [--preserve-root]:不对根目录进行递归操作;
  • + [-v]:显示指令的详细执行过程。
  • 6. rmdir
  • * 删除空目录
  • * 语法及参数
  • + 语法:rmdir 参数 目标路径
  • + [-p或--parents]:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
  • + [--ignore-fail-on-non-empty]:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
  • + [-v或-verboes]:显示命令的详细执行过程;
  • + [--help]:显示命令的帮助信息;
  • + [--version]:显示命令的版本信息。
  • 7. tar
  • * 解压打包
  • * 语法及参数
  • + [-A或--catenate]:新增文件到以存在的备份文件;
  • + [-B]:设置区块大小;
  • + [-c或--create]:建立新的备份文件;
  • + [-C <目录>]:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
  • + [-d]:记录文件的差别;
  • + [-x或--extract或--get]:从备份文件中还原文件;
  • + [-t或--list]:列出备份文件的内容;
  • + [-z或--gzip或--ungzip]:通过gzip指令处理备份文件;
  • + [-Z或--compress或--uncompress]:通过compress指令处理备份文件;
  • + [-f<备份文件>或--file=<备份文件>]:指定备份文件;
  • + [-v或--verbose]:显示指令执行过程;
  • + [-r]:添加文件到已经压缩的文件;
  • + [-u]:添加改变了和现有的文件到已经存在的压缩文件;
  • + [-j]:支持bzip2解压文件;
  • + [-v]:显示操作过程;
  • + [-l]:文件系统边界设置;
  • + [-k]:保留原有文件不覆盖;
  • + [-m]:保留文件不被覆盖;
  • + [-w]:确认压缩文件的正确性;
  • + [-p或--same-permissions]:用原来的文件权限还原文件;
  • + [-P或--absolute-names]:文件名使用绝对名称,不移除文件名称前的“/”号;
  • + [-N <日期格式>] 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
  • + [--exclude=<范本样式>]:排除符合范本样式的文件。
  • 8. zip
  • * 解压缩由zip命令压缩的“.zip”压缩包
  • - [-A]:调整可执行的自动解压缩文件;
  • - [-b<工作目录>]:指定暂时存放文件的目录;
  • - [-c]:替每个被压缩的文件加上注释;
  • - [-d]:从压缩文件内删除指定的文件;
  • - [-D]:压缩文件内不建立目录名称;
  • - [-f]:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
  • - [-F]:尝试修复已损坏的压缩文件;
  • - [-g]:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
  • - [-h]:在线帮助;
  • - [-i<范本样式>]:只压缩符合条件的文件;
  • - [-j]:只保存文件名称及其内容,而不存放任何目录名称;
  • - [-J]:删除压缩文件前面不必要的数据;
  • - [-k]:使用MS-DOS兼容格式的文件名称;
  • - [-l]:压缩文件时,把LF字符置换成LF+CR字符;
  • - [-ll]:压缩文件时,把LF+cp字符置换成LF字符;
  • - [-L]:显示版权信息;
  • - [-m]:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
  • - [-n<字尾字符串>]:不压缩具有特定字尾字符串的文件;
  • - [-o]:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
  • - [-q]:不显示指令执行过程;
  • - [-r]:递归处理,将指定目录下的所有文件和子目录一并处理;
  • - [-S]:包含系统和隐藏文件;
  • - [-t]<日期时间>:把压缩文件的日期设成指定的日期;
  • - [-T]:检查备份文件内的每个文件是否正确无误;
  • - [-u]:更换较新的文件到压缩文件内;
  • - [-v]:显示指令执行过程或显示版本信息;
  • - [-V]:保存VMS操作系统的文件属性;
  • - [-w]:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
  • - [-x<范本样式>]:压缩时排除符合条件的文件;
  • - [-X]:不保存额外的文件属性;
  • - [-y]:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
  • - [-z]:替压缩文件加上注释;
  • - [-$]:保存第一个被压缩文件所在磁盘的卷册名称;
  • - [-<压缩效率>]:压缩效率是一个介于1~9的数值。
  • 9. unzip
  • * 解压缩由zip命令压缩的“.zip”压缩包
  • - [-c]:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
  • - [-f]:更新现有的文件;
  • - [-l]:显示压缩文件内所包含的文件;
  • - [-p]:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
  • - [-t]:检查压缩文件是否正确;
  • - [-u]:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
  • - [-v]:执行时显示详细的信息;
  • - [-z]:仅显示压缩文件的备注文字;
  • - [-a]:对文本文件进行必要的字符转换;
  • - [-b]:不要对文本文件进行字符转换;
  • - [-C]:压缩文件中的文件名称区分大小写;
  • - [-j]:不处理压缩文件中原有的目录路径;
  • - [-L]:将压缩文件中的全部文件名改为小写;
  • - [-M]:将输出结果送到more程序处理;
  • - [-n]:解压缩时不要覆盖原有的文件;
  • - [-o]:不必先询问用户,unzip执行后覆盖原有的文件;
  • - [-P<密码>]:使用zip的密码选项;
  • - [-q]:执行时不显示任何信息;
  • - [-s]:将文件名中的空白字符转换为底线字符;
  • - [-V]:保留VMS的文件版本信息;
  • - [-X]:解压缩时同时回存文件原来的UID/GID;
  • - [-d<目录>]:指定文件解压缩后所要存储的目录;
  • - [-x<文件>]:指定不要处理.zip压缩文件中的哪些文件;
  • - [-Z]:unzip-Z等于执行zipinfo指令。
  • ### 查找显示
  • 1. grep
  • * 全面搜索正则表达式并把行打印出来
  • - [-a] 不要忽略二进制数据。
  • - [-A<显示列数>] 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
  • - [-b] 在显示符合范本样式的那一行之外,并显示该行之前的内容。
  • - [-c] 计算符合范本样式的列数。
  • - [-C<显示列数>或-<显示列数>] 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
  • - [-d<进行动作>] 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
  • - [-e<范本样式>] 指定字符串作为查找文件内容的范本样式。
  • - [-E] 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
  • - [-f<范本文件>] 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
  • - [-F] 将范本样式视为固定字符串的列表。
  • - [-G] 将范本样式视为普通的表示法来使用。
  • - [-h] 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
  • - [-H] 在显示符合范本样式的那一列之前,标示该列的文件名称。
  • - [-i] 忽略字符大小写的差别。
  • - [-l] 列出文件内容符合指定的范本样式的文件名称。
  • - [-L] 列出文件内容不符合指定的范本样式的文件名称。
  • - [-n] 在显示符合范本样式的那一列之前,标示出该列的编号。
  • - [-q] 不显示任何信息。
  • - [-R/-r] 此参数的效果和指定“-d recurse”参数相同。
  • - [-s] 不显示错误信息。
  • - [-v] 反转查找。
  • - [-w] 只显示全字符合的列。
  • - [-x] 只显示全列符合的列。
  • - [-y] 此参数效果跟“-i”相同。
  • - [-o] 只输出文件中匹配到的部分。
  • 2. ps
  • * 用于报告当前系统的进程状态
  • - [-a]:显示所有终端机下执行的程序,除了阶段作业领导者之外。
  • - [a]:显示现行终端机下的所有程序,包括其他用户的程序。
  • - [-A]:显示所有程序。
  • - [-c]:显示CLS和PRI栏位。
  • - [c]:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
  • - [-C<指令名称>]:指定执行指令的名称,并列出该指令的程序的状况。
  • - [-d]:显示所有程序,但不包括阶段作业领导者的程序。
  • - [-e]:此选项的效果和指定"A"选项相同。
  • - [e]:列出程序时,显示每个程序所使用的环境变量。
  • - [-f]:显示UID,PPIP,C与STIME栏位。
  • - [f]:用ASCII字符显示树状结构,表达程序间的相互关系。
  • - [-g<群组名称>]:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
  • - [g]:显示现行终端机下的所有程序,包括群组领导者的程序。
  • - [-G<群组识别码>]:列出属于该群组的程序的状况,也可使用群组名称来指定。
  • - [h]:不显示标题列。
  • - [-H]:显示树状结构,表示程序间的相互关系。
  • - [-j或j]:采用工作控制的格式显示程序状况。
  • - [-l或l]:采用详细的格式来显示程序状况。
  • - [L]:列出栏位的相关信息。
  • - [-m或m]:显示所有的执行绪。
  • - [n]:以数字来表示USER和WCHAN栏位。
  • - [-N]:显示所有的程序,除了执行ps指令终端机下的程序之外。
  • - [-p<程序识别码>]:指定程序识别码,并列出该程序的状况。
  • - [p<程序识别码>]:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
  • - [r]:只列出现行终端机正在执行中的程序。
  • - [-s<阶段作业>]:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
  • - [s]:采用程序信号的格式显示程序状况。
  • - [S]:列出程序时,包括已中断的子程序资料。
  • - [-t<终端机编号>]:指定终端机编号,并列出属于该终端机的程序的状况。
  • - [t<终端机编号>]:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
  • - [-T]:显示现行终端机下的所有程序。
  • - [-u<用户识别码>]:此选项的效果和指定"-U"选项相同。
  • - [u]:以用户为主的格式来显示程序状况。
  • - [-U<用户识别码>]:列出属于该用户的程序的状况,也可使用用户名称来指定。
  • - [U<用户名称>]:列出属于该用户的程序的状况。
  • - [v]:采用虚拟内存的格式显示程序状况。
  • - [-V或V]:显示版本信息。
  • - [-w或w]:采用宽阔的格式来显示程序状况。 
  • - [x]:显示所有程序,不以终端机来区分。
  • - [X]:采用旧式的Linux i386登陆格式显示程序状况。
  • - [-y]:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
  • - [-<程序识别码>]:此选项的效果和指定"p"选项相同。
  • - [--cols<每列字符数>]:设置每列的最大字符数。
  • - [--columns<每列字符数>]:此选项的效果和指定"--cols"选项相同。
  • - [--cumulative]:此选项的效果和指定"S"选项相同。
  • - [--deselect]:此选项的效果和指定"-N"选项相同。
  • - [--forest]:此选项的效果和指定"f"选项相同。
  • - [--headers]:重复显示标题列。
  • - [--help]:在线帮助。
  • - [--info]:显示排错信息。
  • - [--lines<显示列数>]:设置显示画面的列数。
  • - [--no-headers]:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
  • - [--group<群组名称>]:此选项的效果和指定"-G"选项相同。
  • - [--Group<群组识别码>]:此选项的效果和指定"-G"选项相同。
  • - [--pid<程序识别码>]:此选项的效果和指定"-p"选项相同。
  • - [--rows<显示列数>]:此选项的效果和指定"--lines"选项相同。
  • - [--sid<阶段作业>]:此选项的效果和指定"-s"选项相同。
  • - [--tty<终端机编号>]:此选项的效果和指定"-t"选项相同。
  • - [--user<用户名称>]:此选项的效果和指定"-U"选项相同。
  • - [--User<用户识别码>]:此选项的效果和指定"-U"选项相同。
  • - [--version]:此选项的效果和指定"-V"选项相同。
  • - [--widty<每列字符数>]:此选项的效果和指定"-cols"选项相同。
  • 3. find
  • * 用来在指定目录下查找文件
  • - -amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
  • - -anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
  • - -atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
  • - -cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
  • - -cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
  • - -ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
  • - -daystart:从本日开始计算时间;
  • - -depth:从指定目录下最深层的子目录开始查找;
  • - -expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
  • - -exec<执行指令>:假设find指令的回传值为True,就执行该指令;
  • - -false:将find指令的回传值皆设为False;
  • - -fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
  • - -follow:排除符号连接;
  • - -fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
  • - -fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
  • - -fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
  • - -fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
  • - -gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
  • - -group<群组名称>:查找符合指定之群组名称的文件或目录;
  • - -help或——help:在线帮助;
  • - -ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
  • - -iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
  • - -inum<inode编号>:查找符合指定的inode编号的文件或目录;
  • - -ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
  • - -iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
  • - -links<连接数目>:查找符合指定的硬连接数目的文件或目录;
  • - -iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
  • - -ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
  • - -maxdepth<目录层级>:设置最大目录层级;
  • - -mindepth<目录层级>:设置最小目录层级;
  • - -mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
  • - -mount:此参数的效果和指定“-xdev”相同;
  • - -mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
  • - -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • - -newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
  • - -nogroup:找出不属于本地主机群组识别码的文件或目录;
  • - -noleaf:不去考虑目录至少需拥有两个硬连接存在;
  • - -nouser:找出不属于本地主机用户识别码的文件或目录;
  • - -ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
  • - -path<范本样式>:指定字符串作为寻找目录的范本样式;
  • - -perm<权限数值>:查找符合指定的权限数值的文件或目录;
  • - -print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
  • - -print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
  • - -printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
  • - -prune:不寻找字符串作为寻找文件或目录的范本样式;
  • - -regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • - -size<文件大小>:查找符合指定的文件大小的文件;
  • - -true:将find指令的回传值皆设为True;
  • - -typ<文件类型>:只寻找符合指定的文件类型的文件;
  • - -uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
  • - -used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
  • - -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
  • - -version或——version:显示版本信息;
  • - -xdev:将范围局限在先行的文件系统中;
  • - -xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
  • 4. pwd
  • 5. cd
  • 6. kill
  • * 删除执行中的程序或工作
  • - [-a]:当处理当前进程时,不限制命令名和进程号的对应关系;
  • - [-l] <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
  • - [-p]:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
  • - [-s] <信息名称或编号>:指定要送出的信息;
  • - [-u]:指定用户。
  • ### 其他命令
  • 1. chmod
  • * 权限范围的表示法如下:
  • - [u] User,即文件或目录的拥有者;
  • - [g] Group,即文件或目录的所属群组;
  • - [o] Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
  • - [a] All,即全部的用户,包含拥有者,所属群组以及其他用户;
  • - [r] 读取权限,数字代号为“4”;
  • - [w] 写入权限,数字代号为“2”;
  • - [x] 执行或切换权限,数字代号为“1”;
  • - [-] 不具任何权限,数字代号为“0”;
  • - [s] 特殊功能说明:变更文件或目录的权限。
  • * 参数
  • - [-c或——changes]:效果类似“-v”参数,但仅回报更改的部分;
  • - [-f或--quiet或——silent]:不显示错误信息;
  • - [-R或——recursive]:递归处理,将指令目录下的所有文件及子目录一并处理;
  • - [-v或——verbose]:显示指令执行过程;
  • - [--reference=<参考文件或目录>]:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
  • - [<权限范围>+<权限设置>]:开启权限范围的文件或目录的该选项权限设置;
  • - [<权限范围>-<权限设置>]:关闭权限范围的文件或目录的该选项权限设置;
  • - [<权限范围>=<权限设置>]:指定权限范围的文件或目录的该选项权限设置;
  • 2. xargs
  • * 给其他命令传递参数的一个过滤器,xargs用作替换工具,读取输入数据重新格式化后输出。
  • 3. 管道
  • 4. expr
  • * 加法运算:+
  • * 减法运算:-
  • * 乘法运算:\*
  • * 除法运算:/
  • * 求摸(取余)运算:%
  • * 参数[--help] [--version]
  • * 示例:
  • * result=(expr 2 + 3) 或 result=`expr 2 + 3`
  • * result=$(expr $no1 + 5)
  • 5. date
  • * 显示或设置系统时间与日期
  • * 语法: date <+时间日期格式>
  • * 日期格式字符串列表:
  • - %H 小时,24小时制(00~23
  • - [%I] 小时,12小时制(01~12
  • - [%k] 小时,24小时制(0~23
  • - [%l] 小时,12小时制(1~12
  • - [%M] 分钟(00~59
  • - [%p] 显示出AM或PM
  • - [%r] 显示时间,12小时制(hh:mm:ss %p)
  • - [%s]19701100:00:00到目前经历的秒数
  • - [%S] 显示秒(00~59
  • - [%T] 显示时间,24小时制(hh:mm:ss)
  • - [%X] 显示时间的格式(%H:%M:%S)
  • - [%Z] 显示时区,日期域(CST)
  • - [%a] 星期的简称(Sun~Sat)
  • - [%A] 星期的全称(Sunday~Saturday)
  • - [%h],%b 月的简称(Jan~Dec)
  • - [%B] 月的全称(January~December)
  • - [%c] 日期和时间(Tue Nov 20 14:12:58 2012
  • - [%d] 一个月的第几天(01~31
  • - [%x],%D 日期(mm/dd/yy)
  • - [%j] 一年的第几天(001~366
  • - [%m] 月份(01~12
  • - [%w] 一个星期的第几天(0代表星期天)
  • - [%W] 一年的第几个星期(00~53,星期一为第一天)
  • - [%y] 年的最后两个数字(1999则是99
  • ## 进阶命令
  • * sed
  • * cut
  • * awk
  • ## 逻辑关系
  • 1. 逻辑运算符
  • * 关于档案与目录的侦测逻辑卷标
  • - [-f] 侦测『档案』是否存在 eg: if [ -f filename ]
  • - [-d] 侦测『目录』是否存在
  • - [-b] 侦测是否为一个『 block 档案』
  • - [-c] 侦测是否为一个『 character 档案』
  • - [-S] 侦测是否为一个『 socket 标签档案』
  • - [-L] 侦测是否为一个『 symbolic link 的档案』
  • - [-e] 侦测『某个东西』是否存在!
  • * 关于程序的逻辑卷标
  • - [-G] 侦测是否由 GID 所执行的程序所拥有
  • - [-O] 侦测是否由 UID 所执行的程序所拥有
  • - [-p] 侦测是否为程序间传送信息的 name pipe 或是 FIFO
  • * 关于档案的属性侦测
  • - [-r] 侦测是否为可读的属性
  • - [-w] 侦测是否为可以写入的属性
  • - [-x] 侦测是否为可执行的属性
  • - [-s] 侦测是否为『非空白档案』
  • - [-u] 侦测是否具有『 SUID 』的属性
  • - [-g] 侦测是否具有『 SGID 』的属性
  • - [-k] 侦测是否具有『 sticky bit 』的属性
  • * 两个档案之间的判断与比较
  • - [-nt] 第一个档案比第二个档案新
  • - [-ot] 第一个档案比第二个档案旧
  • - [-ef] 第一个档案与第二个档案为同一个档案( link 之类的档案)
  • * 逻辑的与或
  • - [&&] 逻辑的 AND 的意思
  • - [||] 逻辑的 OR 的意思
  • * 逻辑运算符
  • - [=] 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
  • - [!=] 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
  • - [<] 小于 应用于:整型比较 在[] 中,不能使用 表示字符串
  • - [>] 大于 应用于:整型比较 在[] 中,不能使用 表示字符串
  • - [-eq] 等于 应用于:整型比较
  • - [-ne] 不等于 应用于:整型比较
  • - [-lt] 小于 应用于:整型比较
  • - [-gt] 大于 应用于:整型比较
  • - [-le] 小于或等于 应用于:整型比较
  • - [-ge] 大于或等于 应用于:整型比较
  • - [-a] 双方都成立(and) 逻辑表达式 –a 逻辑表达式
  • - [-o] 单方成立(or) 逻辑表达式 –o 逻辑表达式
  • - [-z] 空字符串
  • - [-n] 非空字符串
  • 2. 逻辑表达式
  • * test 命令
  • - `test EXPRESSION`
  • - `test 1 = 1 && echo 'ok'`
  • * 精简表达式
  • - [] 表达式
  • + `[ 1 -eq 1 ] && echo 'ok'`
  • - [[]] 表达式
  • + `[[ 2 < 3 ]] && echo 'ok'`
  • + `[[]]` 运算符只是[]运算符的扩充。
  • + `[[]]` 使用这种方式速度非常快。
  • + ```time (for m in {1..100000}; do [[ -d . ]];done;)```
  • ## 权限控制
  • 1. 用户管理
  • * 添加用户 `useradd`
  • - 参数如下:
  • - 语法: useradd [options] [UserName]
  • - [-u]:指定用户的UID
  • - [-g]:指定GID
  • - [-c]:指定注释信息,如果有空格,需要使用" "包含
  • - [-d]:指定用户根目录,创建用户时
  • - [-s]:指定用户shell
  • - [-r]:指定创建一个系统用户
  • - [-M]:不创建用户家目录
  • - [-G]:指定附加组,多个使用逗号隔开
  • - [-D]:修改创建用户的配置信息
  • * 修改用户 `usermod`
  • - 参数如下:
  • - 语法: usermod [options] [UserName]
  • - [-u] : 修改用户UID
  • - [-g] : 修改用户GID
  • - [-c] : 修改用户的注释信息
  • - [-d] : 修改用户家目录,需要配合使用-m选项才会自动复制用户家目录下的文件到新的家目录
  • - [-m] : move-home to new directory
  • - [-s] : 修改用户的shell
  • - [-l] : 修改用户的登陆名,即login名称
  • - [-G] : 修改用户的附加组信息,需要配合-a(append)一起使用,如果不使用-a将删除原来的附加组
  • - [-a] : --append,连接多个附加组的参数
  • - [-L] : 锁定用户,即lock,在/etcpasswd文件中,密码前面加!(一个)
  • - [-U] : 解锁用户,即unlock,在/etc/passwd文件中,取消密码前面的!号
  • * 删除用户 `userdel`
  • - 语法 : userdel [options] LOGIN
  • - 参数如下:
  • - [-r] : 删除用户的同时删除用户的家目录,即--remove参数
  • * 用户密码设置 `passwd`
  • - 语法 : passwd [options] [UserName], 如直接passwd,则是修改当前用户的密码
  • - 参数如下:
  • - [-l] : 锁定用户,在/etc/passwd的密码前面加!!,
  • - [-u] : 解锁用户,在/etcpasswd的密码前!!取消
  • - [-d] : --delete,删除用户密码
  • - [-e DATE] : --expire,设定过期时间
  • - [-i DAYS] : 非活动时间
  • - [-n days] : 最短使用期限
  • - [-x days] : 最长使用期限
  • - [-w days] : 警告期限
  • - [--stdin] : `echo "PASSWD" | passwd --stdin root`
  • 2. 组管理
  • * 添加组 `groupadd`
  • - 语法: groupadd [options] group
  • - 参数
  • - [-g] : 指定GID号
  • - [-r] : 指定为一个系统组
  • * 修改组 `groupmod`
  • - 语法: groupmod [options] GROUP
  • - 参数:
  • - [-g] : 修改GID号码
  • - [-n] : 修改组名称 `groupmod -n NEW_GROUP OLD_GROUP`
  • * 删除组 `groupdel`
  • - 语法: groupdel GROUP_NAME
  • * 组密码设置 `gpasswd`
  • - 语法: gpasswd [option] group
  • - 参数:
  • - [-a] USER_NAME GROUP_NAME: 向组内添加用户
  • - [-d] USER_NAME GROUP_NAME: 把用户从组内删除
  • - [-r] USER_NAMEG : 删除组的密码
  • * 临时切换到其他组,好能够获取相应权限 `newgrp`
  • - 语法: newgrp [-] [group]
  • * 查看用户相关信息 `id`
  • - 语法:id [OPTION] [USERNAME]
  • - [-u] : 查看UID号
  • - [-g] : 查看GID号
  • - [-G] : 查看附加组GID号,其他包含基本组ID号
  • - [-n] : 将各ID转换为对应的名称
  • * 切换用户 `su`
  • - 语法: su [-] USER
  • - [- ]: 以登陆方式切换用户,以完成用户环境变量、配置信息加载
  • - [-c]: 不用登陆用户即可以以指定用户执行命令 `su - mariabd -c 'id -u'`
  • * 用户权限管理 `chmod`
  • - 语法: chmod [OPTION] MODE FILE
  • - 参数:
  • - [-r] --recursive : 递归修改
  • - [--reference] : 参照某文件来修改
  • - 示例[赋权等值法]
  • + chmod u=rwx,g=rwx,0=rwx FILE
  • + chmod a=rwx FILE
  • - 示例[赋权加减法]
  • + chmod u-rwx,g-rwx,o-rwx FILE
  • + chmod ugo-x FILE
  • + chmod u+rwx,go+r FILE
  • + chmod a+r FILE
  • - 示例[十进制赋权法]
  • + chmod 777 FILE
  • + 4: read
  • + 2: write
  • + 1: execute
  • - 示例[参照赋值法]
  • + chmod --reference=/var/log/file FILE
  • * 用户属主修改 `chown`
  • - 语法:chown [OPTION]... [OWNER][:[GROUP]] FILE...
  • - 参数:
  • - [-R] : --recursive 递归修改
  • - [--reference] : 参照某文件来修改
  • - 示例[只修改文件的属主为mariadb]
  • + `chown mariadb FILE`
  • - 示例[修改文件的属主、属组为mariadb]
  • + ` chown mariadb:mariadb FILE`
  • - 示例[参照/var/log/file来修改FILE的属主、属组]
  • + `chown --reference=/var/log/file FILE`
  • * 用户属组修改 `chgrp`
  • - 语法: chgrp [OPTION]... GROUP FILE...
  • - 语法: chgrp [OPTION]... --reference=RFILE FILE...
  • 5. linux 变量截取
  • * 使用expr和substr组合方式
  • - name=abcd1234dcba
  • - echo $(expr substr $name 1 4)
  • + substr 第一个参数是变量名
  • + 第二个是从第几位截取,而冒号方式是从0开始。
  • + 第三个是截取几位
  • - 打印出来结果是 `abcd`
  • * 使用变量后面冒号方式
  • - name=abcd1234dcba
  • - echo ${name:0:4}
  • + ${name:0:4} 中的 0 是指从下标为0开始算,而substr是从1开始。
  • + ${name:0:4} 中的 1 是指截取4位长度。
  • * 使用awk自带函数处理
  • - name=abcd1234dcba
  • - echo $name|awk '{print substr($0,1,4)}'
  • + substr后的$0指的是管道前面的打印值
  • + substr后的1指的是从第一个开始截取,substr的下标是从1开始。
  • + substr后的4是指的截取4位长度。
  • 6. linux 大小写转换 `name=abcd1234dcba`
  • * 使用tr命令转换
  • - echo $name | tr a-z A-Z
  • - tr 命令后的 a-z 是指的将a到z的字符全部选中
  • - tr 命令后的 A-Z 是指的将a-z转换成A-Z
  • * 使用awk命令自带函数转换
  • - cat |awk '{print toupper($0)}'
  • - toupper 是指的转换成大小, lower 为转换成小写。
  • 7. 善用以上1-6
posted @ 2019-10-09 16:36  娄方成  阅读(492)  评论(0编辑  收藏  举报