LINUX : 常用的命令


  • 命令名称 [命令参数] [命令对象]
  • 命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分用”—“与”–“做前缀。长格式如:man –help短格式如:man -h


    获得命令文档

  • man命令——可用于查看命令的具体可用参数与对象格式等等,即显示程序的手册。
    帮助文档的目录结构操作方法
结构名称 代表意义
NAME 命令的名称
SYNOPSYS 参数的大致使用方法
DESCRIPTION 介绍说明
EXAMPLES 演示(附带简单说明)
OVERVIEW 概述
DEFAULTS 默认的功能
OPTIONS 具体的可用选项(带介绍)
ENVIRONMENT 环境变量
FILES 用到的文件
SEE ALSO 相关的资料
HISTORY 维护历史与联系方式

man命令的操作按键(即less命令用法):

按键 用处
空格键 向下翻一页。
[Page Down] 向下翻一页。
[Page Up] 向上翻一页。
[HOME] 直接前往首页。
[END] 直接前往尾页。
/关键词 从上至下搜索某个关键词,如”/linux”。
?关键词 从下至上搜索某个关键词,如”?linux”。
n 定位到下一个搜索到的关键词。
N 定位到上一个搜索到的关键词。
q 退出帮助文档。

比如说,查看一下cp 命令的说明

man cp   //查看一下cp命令的说明文档

LINUX : 常用的命令_第1张图片


  • help——获得shell帮助文档
    –help 描述了命令的支持语法选项,简短写法 -h
cp -h
cp -help   //查看cp命令的帮助

LINUX : 常用的命令_第2张图片


  • apropos——显示合适的命令,进行基于某个搜索条目的匹配。
apropos floppy   //会显示以floppy为搜索条目的相关信息

LINUX : 常用的命令_第3张图片


  • whatis——显示命令的简要描述,即会显示man手册页的第一行描述

常用系统工作命令

  • echo——输出
echo "Hello World"//输出到控制台:
echo "$SHELL" //输出shell变量的值

  • env 查看系统内的所有环境变量
env    //查看系统内的环境变量信息

LINUX : 常用的命令_第4张图片


  • file——确定文件类型
file test.txt  //显示文件的类型

  • pwd——用于显示当前目录


  • cd——用于切换工作路径,格式为:“cd [目录名称]”。

参数 作用
- 切换到上一次的目录,如“cd -”
~ 切换到“家目录”,如”cd ~”
~username 切换到其他用户的家目录,如”cd ~teak”
.. 切换到上级目录,如”cd ..”
-P 进入其真实的物理路径下,如作用于符号链接(链接到目录)的时候,可显示其所指向的真实目录

  • ls——显示文件或目录的信息
参数 作用
-a 查看全部文件(包括隐藏文件)
-d 仅看目录本身
-h 易读的文件容量(如k,m,g)
-l 显示文件的详细信息
-r 倒叙
-t 按时间排序

  • date命令用于显示/设置系统的时间或日期,格式为:”date [选项] [+指定的格式]”。
    强大的date命令能够按照指定格式显示系统的时间或日期,只需键入”+”号开头的字符串指定其格式,详细格式如下:
参数 作用
%t 跳格[TAB键]
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%S 秒(00-60)
%X 相当于%H:%M:%S
%Z 显示时区
%p 显示本地AM或PM
%A 星期几 (Sunday-Saturday)
%a 星期几 (Sun-Sat)
%B 完整月份 (January-December)
%b 缩写月份 (Jan-Dec)
%d 日(01-31)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%Y 完整的年份
date "+%Y-%m-%d %H:%M:%S"  //输出年-月-日 时:分:秒  2016-11-21 15:50:26

这里写图片描述


  • wget——wget命令用于使用命令行下载网络文件,格式为:“wget [参数] 下载地址”。
参数 作用
-b 后台下载模式。
-O 下载到指定目录。
-t 最大尝试次数。
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等。
-r 递归下载

文本文件编辑命令

  • cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”
参数 作用
-n 显示行号
-b 显示行号(不包括空行)
-A 显示出“不可见”的符号,如空格,tab键等等

  • more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”


  • head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”

参数 作用
-n 10 显示10行
-n -10 正常输出(如cat命令),但不显示最后的10行

  • tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”
参数 作用
-n 10 显示后面的10行
-f 持续刷新显示的内容

  • tee——从stdin读取 并同时输出到文件和stdout
ls /usr/bin | tee usr.txt | grep zip 

LINUX : 常用的命令_第5张图片


  • tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”
cat tr.txt | tr a A //将tr.txt文件中的a 替换成 A

  • wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本
参数 作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数

  • cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”
参数 作用
-d 分隔符 指定分隔符,默认为Tab。
-f 指定显示的列数。
-c 单位改为字符 ,即取第几个字符
 cut -d: -f1 /etc/passwd //以 : 分隔符提取passwd文件中第一列

LINUX : 常用的命令_第6张图片


  • sort——对文本排序
参数 作用
-f 不区分大小写
-r 倒叙
-o 输出到文件
-u 移除重复行 ,也可用uniq 命令实现此效果
ls -l /etc/ | sort  //排序显示/etc路径下的文件

  • paste——合并文本行,是cut的逆操作。读取多个文件并将每个文件中提取出来的列结合为一个整体的输出流
    参数
作用
-d<间隔字符>或–delimiters=<间隔字符> 用指定的间隔字符取代跳格字符。
-s或–serial 串列进行而非平行处理。
paste a.txt b.txt  //结合两个文件的内容 进行输出

  • join——两文件中相同字段的行,类似于paste,和数据库中的join操作一样,将数据组合成一个期望的结果
join a.txt b.txt  //两个文件中的相同行部分  并进行输出

文件目录管理命令

  • touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”

    我们可以用“touch test”轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。
    对于在Linux中的文件有三种时间:
    更改时间(mtime):内容修改时间(不包括权限的)
    更改权限(ctime):更改权限与属性的时间
    读取时间(atime):读取文件内容的时间
    如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。

参数 作用
-a 近修改“访问时间”(atime)
-m 近修改“更改时间”(mtime)
-d 同时修改atime与mtime
-t 要修改成的时间[YYMMDDhhmm]

  • mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”
参数 作用
-m=MODE 默认的文件目录权限,如”-m 755”
-p 连续创建多层目录(若文件夹已存在则忽略)
-v 显示创建的过程
mkdir -p a/b/c/d/e   //一次性递归的创建五个目录

  • Shell特殊变量:Shell 0, #, , @, ?, $和命令行参数
变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 1 2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

$* 和 $@ 的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(” “)包含时,都以”$1” “$2” … “$n” 的形式输出所有参数。
但是当它们被双引号(” “)包含时,$*” 会将所有的参数作为一个整体,以”$1$2 … $n”的形式输出所有参数;”$@” 会将各个参数分开,以”$1” “$2” … “$n” 的形式输出所有参数。

退出状态

$? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。

退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。


  • cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”
    复制命令的三种情况:
    目标文件是一个目录,会将源文件复制到该目录中。
    目标文件是一个文件,会将源文件覆盖该文件。
    目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数 作用
-p 保留原始文件的属性
-d 若对象为”链接文件”,则保留该”链接文件”的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p,d,r为上述的参数)

一般用一个 -a 就可以,或 -r


  • mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”
mv a b //a 重命名为 b
mv a /etc //a移动到/etc文件夹下

  • rm命令用于删除文件或目录,格式为:“rm [选项] 文件”
参数 作用
-f 忽略警告信息
-i 删除前先询问
-r 删除文件夹

一般 -rf 连用,

rm -rf //删除一切,

  • ln——创建软/硬链接
    软链接也叫符号链接。
    创建软链接,需要加一个参数 -s,软链接可以理解为 快捷方式
    ln -s a.txt aln  //创建一个a.txt的软链接 aln,这里只是指向    正如python 这个命令的指向一样

LINUX : 常用的命令_第7张图片


用户与组管理命令

  • useradd命令用于创建新的用户,格式为:“useradd [选项] 用户名”
参数 作用
-d 指定用户的家目录(默认为/home/username)
-D 展示默认值
-e 帐号有效截至日期,格式:YYYY-MM-DD.
-g 指定一个初始用户组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的用户组
-s 指定默认的Shell (不允许登录 /sbin/nologin)
-u 指定用户的UID
useradd -d /home/hadoop -s /bin/bash -g 501 hadoop  //创建属于组501的用户hadoop

  • passwd命令用于修改用户的密码,格式为:“passwd [选项] [用户名]”
参数 作用
-l 锁定用户禁止其登陆
-u 解除锁定,允许用户登陆。
–stdin 允许从标准输入修改用户密码,如(echo “NewPassWord”
-d 使帐号无密码
-e 强制用户下次登陆时修改密码
-S 显示用户的密码状态
passwd //修改当前用户
passwd hadoop //修改hadoop用户密码

  • userdel命令用于删除用户所有表格,格式为:“userdel [选项] 用户名”
参数 作用
-f 强制删除用户,家目录与其相关文件
-r 同时删除用户,家目录与其相关文件
userdel -r hadoop //删除hadoop用户以及相关的文件信息

  • usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”
    参数
作用
-c 填写帐号的备注信息
-d -m -m与-d连用,可重新指定用户的家目录并自动旧的数据转移过去。
-e 帐户到期时间,格式“YYYY-MM-DD”
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登陆系统
-U 解锁用户,允许其登陆系统
-s 变更默认终端
-u 修改用户的UID

usermod -g 505 -L hadoop //锁定hadoop用户,禁止其登录系统
  • 同样的有 groupadd groupmod groupdel …

打包压缩文件命令

  • tar命令用于对文件打包压缩或解压,是tape archive的缩写,格式为:“tar [选项] [文件]”
    打包并压缩文件:“tar -czvf 压缩包名.tar.gz 文件名”
    解压并展开压缩包:“tar -xzvf 压缩包名.tar.gz”
    参数
作用
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有那些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
tar -czvf etc.tar /etc   //将/etc目录内文件打包成etc.tar
tar -zxvf etc.tar.gz    //解压包etc.tar.gz 到当前目录 

  • gzip,gunzip——文件压缩与解压缩
    执行命令后,原文件会被压缩文件所取代,相反的是,gunzip会进行相反的操作。
    参数
作用
-f 强制压缩,即时压缩版本已经存在
-r 递归压缩
-t 校验文件的完整性
-v 在压缩时显示完整信息

-bzip——牺牲速度以换取高质量的数据压缩
多数情况下,使用方法和gzip类似,只是以.bz2为后缀


  • zip/unzip——打包压缩工具,linux主要用zip和windows系统交换文件,而不是压缩或归档
    zip option zipfile file
    例如 创建一个playground这个目录的归档文件: zip -r playground.zip playground
    相反 unzip playground

文件查询搜索命令

  • grep命令用于对文本进行搜索,格式为:“grep [选项] [文件]”
    搜索某个关键词:“grep 关键词 文本文件”
参数 作用
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的次数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有“关键词”的行。
grep -n root /etc/passwd //例如在passwd中搜索关于root的信息

这里写图片描述


  • find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”
    对于常用搜索路径有几个小窍门:“~”代表用户的家目录,“.”代表当前目录,“/”代表根目录。
    参数
作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间-n指n天以内,+n指n天以前
-ctime -n +n 匹配修改权限的时间-n指n天以内,+n指n天以前
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新却比f2旧的文件
-type b/d/c/p/l/f 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)
-size 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)
-prune 忽略某个目录
–exec {} \; 后面可接对搜索到结果进一步处理的命令(下面会有演示)

查询用户目录下的所有文件  find ~

LINUX : 常用的命令_第8张图片

查询用户目录下的所有文件夹 并输出前十行

LINUX : 常用的命令_第9张图片

用 -and -or -not 操作符  find ~ -type d -or -type f| wc -l

这里写图片描述

查找用户目录下的文件夹 并复制到findresults文件夹下: find ~ -type d -exec cp -arf {} ~/findresults ';'             --也可以用转义字符 \;     其中的{}代表find命令搜索出的文件

这里写图片描述

LINUX : 常用的命令_第10张图片


系统状态检测命令

  • uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”
    查看系统详细版本信息就看redhat-release文件: cat /etc/redhat-release
    这里写图片描述
  • uptime命令用于查看系统的负载情况,格式为:“uptime”
watch -n 1 uptime //来每秒刷新一次获得当前的系统负载情况
  • free命令用于显示当前系统中内存的使用量情况,格式为:“free [-m/-g]”
    LINUX : 常用的命令_第11张图片

你可能感兴趣的:(linux)