新手Linux命令-2,新手linux-2


  • df(disk free磁盘空闲空间):列出已挂载磁盘的使用情况。格式:df [选项] [文件或目录] (df命令读取的范围主要是在Super block内的信息(主要针对整个文件系统),显示结果的速度非常快速)。

选项

作用

-h

人性化(GBMBKB等格式)显示信息

-i

不用硬盘容量,而以inode的数量来显示

-a

列出所有的文件系统,包括系统特有的/proc(一个虚拟文件系统,放置的数据在内存当中,本身不占用任何硬盘空间)等文件系统

-T

连同该分区的文件系统名称(例如ext3)也列出

Filesystem:代表该文件系统是在哪个分区(因此列出了设备名称)

1K-blocks:说明下面的数字单位是1KB。可利用-h或-m参数来改变显示单位

Used:已使用的磁盘空间

Available:可用的磁盘空间大小

Use%:磁盘使用率。若超过90%,须注意一下

Mounted on:磁盘挂载的目录所在(挂载点)

   

df -hT:将系统内的文件系统及名称列出,容量结果以易读的格式显示。

   

查看/etc下可用的磁盘容量,并以易读的容量格式显示出来,且会自动分析目录或文件所在的分区。

  • ifconfig(interface config网卡配置):获取网卡配置与网络状态等信息。格式:ifconfig [网络设备] [参数]。

  • uname(unix name):查看系统内核与系统版本等信息。格式:uname [选项]。

    一般会固定搭配上-a参数来完整查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息

  • who(谁):查看当前登入主机的用户终端信息。

登陆的用户名

终端设备

登陆到系统的时间

root

:0

2017-08-24 17:52 (:0)

root

pts/0

2017-08-24 17:52 (:0)

who命令显示信息的解析: <https://zhidao.baidu.com/question/148128945.html>

<https://zhidao.baidu.com/question/339930341.html>

w:Show who is logged on and what they are doing.

<http://blog.csdn.net/u012110719/article/details/42298237>

whoami(我是谁):print effective(有效) userid

who am i

id(identity身份): print real and effective user and group IDs

  • last(最近的):查看用户的最近登录记录(/var/log/wtmp)。

    (本机的登录记录信息是以日志文件的形式保存在系统中的数据内容,骇客可轻易进行内容篡改,不能单凭以该命令输出的信息而判断系统有无被恶意入侵)

    lastlog:显示系统中所有用户最近一次的登录信息(/var/log/lastlog)。

  • history(历史):显示历史执行过(近1000条)的命令(它是一个函数 history(3),不是一条普通的命令)。格式:history [选项] [参数]。

    history n:列出最近使用的n条历史命令

    可以使用"!编码数字"的方式来重复执行某一次的命令

    历史命令会被保存到用户家目录中的".bash_history"文件中(cat ~/.bash_history)。

    history -c:清空该用户在本机中执行过的linux命令历史记录信息

  • sosreport:用于收集系统配置并诊断信息后输出结论文档。

    当Linux系统出现故障需要联系红帽厂商或其他技术支持时,大多数时候都要先使用这个SOS功能来简单收集计算机的运行状态和服务配置信息,以便让技术支持公司能够通过远程就解决了一些小问题,又或者让他们能对复杂问题能提前有些了解。

    (资料压缩文件以及校验码)

  • pwd(print working directory输出当前工作目录):显示当前所处的工作目录。格式:pwd [选项]。
  • cd(change directory改变目录):切换工作路径。格式:cd [目录名称]。

    仅输入cd:代表cd ~

    cd -:返回到上一次所处的目录

    cd ..:返回上一层目录(注意空格)

    (根目录"/"的上层目录(..)与根目录本身(.)是同一个目录)

    cd ~:切换到当前用户的家目录,亦或使用"cd ~username"则可以切换到其他用户的家目录

    绝对路径:一定由根目录"/"写起,如/var/spool/mail(建议使用)。

    相对路径:对于目前工作目录的路径。不是由根目录"/"写起,如由/var/spool/mail要到/var/spool/cron目录,可以写成cd ../cron。

  • ls(list directory contents列出目录的内容):显示目录中的文件信息。格式:ls [选项] [文件]。

    ls -a:查看全部文件(包括隐藏文件),Linux系统中以点(.)开头的文件均代表隐藏文件,一般大多会是系统服务文件。(蓝色字体显示的为目录(文件夹))

    ls -l(ll):查看文件的属性、大小(长数据串)等详细信息

详解请见 <http://blog.csdn.net/sjzs5590/article/details/8254527>

<http://baijiahao.baidu.com/s?id=1582175688777520981&wfr=spider&for=pc>

<http://blog.csdn.net/xinlongabc/article/details/46801641>

ls -al:查看所有文件的详细信息

ls -li:查看文件的详细信息,并显示索引结点号inode(每个文件都会占用一个inode)

ls -ld:仅查看目录本身的属性信息(不列出目录内的文件数据)

ls -R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来

-F:根据文件、目录等信息给予附加数据结构

-h:将文件容量以人类较易读的方式(例如GB、KB等)列出来

--time={atime,ctime}:输出访问时间(atime)或改变权限属性时间(ctime)(ls -l命令默认显示文件的修改时间(mtime))

  • cat(concatenate连续):查看纯文本文件(较短的、比较精简的文本内容,不可翻页,连续显示)。格式:cat [选项] [文件]。

    cat -n:查看文本内容时顺便打印出行号(空白行也会有行号(-b参数针对空白行则不打印行号))

    tac (反向列示):文件的最后一行到了屏幕的第一行了,也就是说文件的第一行就到了最后一行去了。

    nl (添加行号打印):

    选项:

    -b 指定行号指定的方式,主要有两种:

    -b a 表示不论是否为空,也同样列出行号(类似cat -n

    -b t 如果有空行,空的那行不列出行号(默认值)

    -n 列出行号表示的方法,主要有三种:

    -n ln 行号在屏幕最左方显示;

    -n rn 行号在自己字段的最右方显示,且不加0

    -n rz 行号在自己字段的最右方显示,且加0

    -w 行号字段占用的位数。

  • more:查看纯文本文件(较长的文本内容,可翻页)。格式:more [选项] 文件

    (会提示已经阅读了百分之多少)。

回车键:下滚一行

空格键:下翻一页

b:往回翻页(此回翻页操作只对文件有用,对管道无用)

/关键词:向下查询关键字

:f(冒号+f):立刻显示出文件名以及目前显示的行数

q:离开

less:more命令的加强版,可向前翻页,界面和操作与man命令类似(man命令调用less来显示说明文件的内容)

  • head(头):查看纯文本文档的前n行(默认显示前10行)。格式:head [选项] [文件]。

选项

作用

-n

后面接数字,代表显示文件前几行的内容

-c nK

后面接容量(如2K),代表显示文件前nKB的内容

  • tail(尾):查看纯文本文档的后n行(默认显示后10行)。格式:tail [选项] [文件] 。

选项

作用

-n

后面接数字,代表显示文件后几行的内容

-c nK

后面接容量(如2K),代表显示文件末尾nKB的内容

tali -f:持续刷新一个文件的内容(可用于实时看到最新日志文件)(ctrl+c离开)

  • watch(观察):以周期性的方式执行给定的指令,指令输出以全屏方式显示。格式:watch [选项] [参数]。

选项

作用

-n

指定指令执行的间隔时间(秒)

-d

高亮显示指令输出信息不同之处

 

-t

不显示标题

参数:需要周期性执行的指令

  • od(octal dump八进制转储):查看特殊格式的文件(非纯文本文件查看)。格式:od [选项] [文件]。

选项

作用

-t a

默认字符

-t c

ASCII字符

 

-t o

八进制

-t d

十进制

-t x

十六进制

-t f

浮点数

  • tr(translate转化):替换文本文件中的字符。格式:tr [原始字符] [目标字符]。

    (先使用cat命令读取待处理的文本内容,然后通过管道符"|"把这些数据传递给tr命令做替换操作)小写字母全部转换为大写:

    tr -d [目标字符]:删除信息当中的目标字符

  • wc(word count字数统计):统计指定文本的行数、字数、字节数等文本内容。格式:wc [选项] 文本

选项

作用

-l

只显示行数

-w

只显示单词数

-c

只显示字节数

(passwd是用于保存系统帐户信息的文件,可使用命令wc -l /etc/passwd统计当前系统中有多少个用户)

  • sort(排序):将文件按照默认语言的顺序规则进行排序,并将排序结果标准输出。格式:sort [选项] 文件名或标准输入。(对于系统语言为英语而言,小写字母优先于大写字母显示,即认为小写字母'a'是大于大写字母'A的')

选项

作用

-f

忽略大小写的差异

-b

忽略每行最前面的空格符部分

-n

依照"纯数字"的大小排序(默认是以文字类型来排序的)

-r

反向排序

-t

设置分隔符(默认以tab键分隔)

-k

以分隔的第几个区间来进行排序

-u

相同的数据中,仅出现一行代表(相当于uniq命令)

cat /etc/passwd | sort -t ':' -k 3 : 以:作为分隔符,对第三列进行排序

  • uniq(unique独一的):忽略文件中的重复行,一般与sort命令配合管道符结合使用。格式:uniq [选项] 文件名或标准输入。

参数

作用

-i

忽略大小写字符

-c

进行计数处理

last | cut -d ' ' -f 1 | sort | uniq : 使用last命令将用户的登入记录列出;再使用cut命令以空格为间隔符提取第一列内容;接着使用sort命令根据第一个数据进行排序;最后通过uniq命令仅列出一行代表,并进行计数处理。

  • stat(status状态):查看文件的具体存储信息和时间等信息。格式:stat 文件名称。

  • netstat(network status网络状态):查看网络系统的状态信息。格式:netstat [选项]。

选项

作用

-a

显示所有连接中的套接字(netstat命令默认不显示LISTENI监听状态相关)

-t

仅显示tcp传输协议的连接状况

-u

仅显示udp传输协议的连接状况

-l

仅显示处于监听状态的服务器套接字

-n

使用ip地址(数字numeric)表示,不使用域名显示

  • ping:测试主机之间网络的连通性。格式:ping [选项] 目的主机。

选项

作用

-c

规定完成要求回应的次数(ping命令默认一直持续)

-i

指定收发信息的间隔时间

-W(大写)

定义等待超时时间

  • cut(切割):按"列"来提取文本字符(以"行"为单位)。格式:cut [选项] 文本。

-d:设置间隔符号(要与-f参数一起使用)

-f:设置需要看的列数(第几段)

cut -d : -f 1 /etc/passwd : 提取passwd文件中的用户名信息)

(cut -d : -f 1,2 /etc/passwd:提取第1,2列)

统计当前系统中有多少个用户(使用通配符"|"和wc -l命令查看行数)

  • diff(difference不同):比较多个文本文件的差异。格式:diff [选项] 文件

--brief:仅确认两个文件是否不同

-c:详细比较多个文件的差异之处

   

  • file(文件):查看文件的类型。格式:file 文件名。

  • touch(触摸):创建空白文件与设置文件的各种时间。格式:touch [选项] [文件]

选项

作用

-a

仅修改"访问时间"atime

-m

仅修改"更改时间"(mtime

-d

同时修改atimemtime

Linux中的文件有三种时间(Linux一切皆文件(目录文件、设备文件、链接文件、普通/文本文件等),文件之间只区分类型,而不区分后缀)(Linux中没有文件创建时间的概念

来自 <https://www.zhihu.com/question/21071680> ):

修改时间(mtime):内容修改时间(不包括权限的)(modify time)

更改时间(ctime):更改权限与属性的时间(change time)

读取时间(atime):读取文件内容的时间(access time)

(ls -l命令默认显示文件的修改时间(mtime))

  • mkdir(make directory创建目录):创建空白的文件夹。格式:mkdir [选项] 目录

    mkdir -p [目录]:递归创建出具有嵌套叠层关系的文件目录

    rmdir:删除空目录,rmdir -p [目录]:连同上层的空目录也一起删除

  • cp(copy复制):复制文件或目录。格式:cp [选项] 源文件 目标文件

    复制命令的三种情况:

    • 目标对象是一个目录(目录名尾部须加上正斜线/),会将源文件复制到该目录中
    • 目标对象也是一个文件,会询问是否覆盖
    • 目标对象不存在,将会复制源文件并修改为目标文件的名称(可用作重命名)

选项

作用

-p

保留原始文件的属性,而非使用默认属性(备份常用)

-d

若对象为"链接文件",则保留该"链接文件"的属性

-r

递归持续复制(用于目录)

-i

若目标文件存在则询问是否覆盖(默认执行-i参数)

-a

相当于-pdrp,d,r为上述的参数)

-f

强制(force)复制,若目标文件已存在直接覆盖

(不同身份者执行cp命令可能会有不同的结果产生,这里以root身份为例)

(复制行为cp会复制执行者(本例中:root)的属性与权限。默认条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常是命令操作者本身)

  • mv(move移动):移动文件(剪切)或改名。格式:mv [选项] 源文件 [目标路径|目标文件名]。

选项

作用

-i

若目标文件存在则询问是否覆盖(默认执行-i参数)

-f

强制(force)移动,若目标文件已存在直接覆盖

-u

若目标文件已经存在,且source比较新,才会更新(update

  • basename(文件基本名):仅显示目录的基本名称;

    dirname(目录名):仅显示与目录相关的内容(读取指定路径最后一个/及其后面的字符,删除其他部分)。

    这两个命令多用在shell脚本中

  • rename(重命名):用字符串替换的方式批量改变文件名。格式:rename [参数]

参数:

原字符串:将文件名需要替换的字符串

目标字符串:将文件名中含有的原字符替换成目标字符串

文件:指定要改变文件名的文件列表

  • rm(remove删除):删除文件或目录。格式:rm [选项] 文件

    rm -f:强制(force)删除,忽略不存在的文件,不会出现警告信息(慎用)

    rm -r:递归(recursive)删除,删除一个目录文件夹

    rm -i:互动模式,删除前会询问用户是否操作(默认加入-i参数)

    (一旦删除一个文件,就无法再恢复(恢复须借助额外工具))

  • dd(disk dump磁盘转储):用于指定大小的拷贝文件或指定转换文件。格式:dd [参数]

参数

作用

if

输入的文件名称(inputfile,也可以是设备)

of

输出的文件名称(outputfile,也可以是设备)

bs

设置每个"块"的大小(block size,未指定则默认512bytes(一个扇区的大小))

count

设置要拷贝"块"的个数(多少个bs的意思)

/dev/zero:一个永远输出0(提供无限的空字符)的设备文件,不占用系统存储空间,使用它作输入可以得到全为空的文件(10_file文件的内容全为0),因此可用来创建新文件和以覆盖的方式清除旧文件)

dd命令作用:①备份分区表(第一个扇区内含有MBR(主引导分区快)与分区表),②简单测试硬盘读写速度

使用dd命令复制并压缩光盘设备变成一个可立即使用的iso镜像:

  • tar(tape archive将文件备份到磁带上):对文件打包压缩或解压。格式:tar [选项] [文件]

    -c(create a new archive创建一个新的存档):创建打包文件

    (打包:tarfile文件,把多个文件打包成一个文件,体积不变,.tar后缀)

    (压缩:tarball文件,运用算法进行压缩使文件体积减小,.tar.gz或.tar.bz2后缀)

    -x(extract files from an archive提取文件从文档中):解打包或解压缩文件

    -z:使用gzip格式来压缩/解压文件(文件名:*.tar.gz)(gzip格式应用广泛)

    -j:使用bzip2格式来压缩/解压文件(文件名:*.tar.bz2)

    -v:显示压缩或解压的过程给用户

    -f:代表要压缩或解压的软件包名称(后面要紧接被处理的文件名,必须放到参数的最后一位)

    -C(Change to directory改变目录):指定在特定目录解压缩(注意为大写字母"C",且仅在解压时使用)

    -p:保留备份数据的原本权限与属性(常用于备份(打包-c)重要的配置文件)

    -t(list the contents of an archive列出存档):查看打包文件的内容含有哪些文件名(重点在查看文件名)

    (-c、-x、-t 这三个参数不可同时放在一起使用)

常用:

打包压缩:tar -czvf 压缩包名称.tar.gz 要打包的目录

解压:tar -xzvf 压缩包名称 .tar.gz -C 解压到目录

查阅压缩文件中的数据内容:tar -tzvf 压缩包名称.tar.gz

tar -czvf 压缩包名称.tar.gz 要打包的目录

(可使用-P(大写字母)参数保留绝对路径,即允许备份数据中含有根目录存在之意(不推荐))

tar -tzvf 压缩包名称.tar.gz

   

tar -xzvf 压缩包名称 .tar.gz -C 解压到目录

  • grep(globally search a regular expression and print以正则表达式法全域查找以及打印):对文本内容进行关键词的搜索匹配(分析一行信息,若当中有所需要的信息,就将该行拿出来)。格式:grep [选项] [关键词] [文件],可在多文件中查找。

选项

-a

作用

将可执行文件(binary)以文本文件(text)来搜索

-c

仅显示找到的次数

-i

忽略大小写

-n

顺便输出行号

-v

反向选择,即显示出没有"关键词"的行

-e

指定字符串作为关键词,可指定多个匹配模式

搜索在/etc/passwd文件中"/sbin/nologin"出现的行,找出系统中不允许登录的用户

在users.csv文件和user.txt文件中共同搜索"tony"、"yan"出现的行

找出文件"/usr/share/gedit/plugins/snippets/docbook.xml"中所有包含entry的行并输出到/root/lines中(输出重定向):

grep entry /usr/share/gedit/plugins/snippets/docbook.xml >> /root/lines

  • find(查找):在Linux系统中按照指定条件查找文件。格式:find [查找路径] 寻找条件 操作。

选项

作用

-name

匹配名称

-perm

匹配权限(mode为完全匹配,-mode为包含即可)

-user

匹配所有者

-group

匹配所有组

-inum

匹配inode编号

-mtime -n +n

匹配修改内容的时间(-nn天以内,+nn天以前)

-atime -n +n

匹配访问文件的时间-nn天以内,+nn天以前

-ctime -n +n

匹配修改权限的时间-nn天以内,+nn天以前

-nouser

匹配无所有者的文件

-nogroup

匹配无所有组的文件

-newer f1 !f2

匹配比文件f1新却比f2旧的文件

--type b/d/c/p/l/f

匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)

-size

匹配文件的大小(+50k查找超过50k的文件,-50k则代表查找小于50k的文件)

-prune

忽略某个目录

-exec {} \;

后面可接对搜索到结果进一步处理的命令

查找在/etc目录中所有以host开头的文件(-print将文件或目录名称输出到标准输出(find默认使用-print参数))

查找/home下面属于ysn用户的文件(可利用此命令将属于某个用户的所有文件都找出来)

查找系统(根目录)中不属于任何人的文件

查找当前目录下inode编号为102766589的文件

查找系统所有文件中含有SGID或SUID或SBIT的属性

-perm mode:查找文件权限刚好匹配

-perm -mode:查找文件权限必须要全部包括mode的权限

-perm +mode:查找文件权限包含任一mode的权限

(权限详解: <http://blog.csdn.net/zengqiang1/article/details/53020853>

找出用户ysn的文件并复制到/root/findresults目录

find / -user ysn -exec cp -arf {} /root/findresults/ \;

{}:代表"由find找到的内容",find的结果会被放置到{}位置中

-exec一直到"\;"是关键字,代表find额外命令的开始(-exec)到结束(\;),在这中间的就是find命令内的额外命令。在本例中就是"cp -arf {}"

因为;分号在bash环境下是有特殊意义的,因此利用反斜杠来转义

linux查找目录下所有文件中是否含有某个字符: <http://blog.csdn.net/duguduchong/article/details/7716908>

  • locate(定位):find -name的另一种写法,但查找速度比后者快得多,因为locate寻找的数据是由已创建的数据库/var/lib/mlocate/里面的数据所查找到的。这个数据库中包含本地所有文件信息,默认是每天执行一次更新。所以新建文件后再立即查找该文件,locate命令会"提示找不到"。

    updatedb(更新资料库):手动更新数据库。updatedb命令会去读取/ect/updatedb.conf这个配置文件的设置,然后再去硬盘里进行查找所有文件名的操作,最后更新整个/var/lib/mlocate数据库文件

  • whereis(在哪):寻找特定文件。(在指定数据库中查找,类同locate命令)

选项

作用

-b

只查找二进制格式的文件(执行文件、命令)

-m

只查找在说明文件manual路径下的文件

相关内容