Linux常用命令整理(1) - STEMHA's Blog

Linux常用命令整理(1)

Linux命令基础知识

1
2
3
4
5
6
7
8
9
10
11
$ command [-options] parameter1 parameter2 ... 
命令 选项 参数(1) 参数(2)
说明:
1. 任何命令中第一个输入的部分绝对是『命令(command)』或者『可运行文件』
2. command 命令的名称
3. [-options] 选项并不存在于实际的命令中,而加入选项配置时,通常选项前会带 - 号(比如-h)。有时候会使用选项的完整全名,此时带有 -- 符号(比如--help
4. parameter1 parameter2.. 为依附在选项后面的参数,或者是 command 的参数;
5. 命令, 选项, 参数等以空格来区分,但是不论空几格 ,shell 都同一视为一格;
6. [Enter]按键代表着一行命令的开始启动。
7. 命令太长的时候,可以使用反斜杠 (\) 来跳脱[Enter]符号,使命令连续到下一行。反斜杠后需要立刻接特殊字符才行。
8. 在 Linux 中,区分大小写。

基本查询

查询所支持的语言

1
2
3
4
5
6
$ echo $LANG 
zh_TW.UTF-8
#修改为英文语系
$ LANG=en_US
$ echo $LANG
en_US

时间日历与计算器

1
2
3
$ date //date 时间
$ cal //cal 日历
$ bc //计算器

版本信息查询

uname -a

查看版本当前操作系统内核信息

cat /proc/version

查看当前操作系统版本信息

cat /etc/issue 或 cat /etc/redhat-release

查看版本当前操作系统发行版信息

cat /proc/cpuinfo

Linux查看cpu相关信息,包括型号、主频、内核信息等

getconf LONG_BIT

Linux查看版本多少位

lsb_release -a

CentOS 6.9版本需要安装lsb,CentOS 7.0以上直接可以使用

命令信息查询

命令总数:[Tab][Tab]

按下两个[Tab]按键,查看共有多少命令可以让用户使用用。

man page

有时忘记了命令全称,也可以根据不完整的名称查出来,系统有哪些跟这个名词有关的说明文件

1
2
 -f 查询以keyword开头所有相关帮助信息列表,只会找数据中的左边那个命令(或文件)的完整名称。
$ man -f keyword
1
2
 -k 将说明文件里面只要含有keyword的都列出来。
$ man -k keyword
1
2
3
4
$ whatis  [命令或者是数据]   相当于 man -f [命令或者是数据] 
$ apropos [命令或者是数据] 相当于 man -k [命令或者是数据]
两个特殊命令要能使用,必须要有创建 whatis 数据库才行!这个数据库的创建需要以 root 的身份下达如下的命令:
[root@ ~]# makewhatis

关机/重新启动命令

数据同步写入硬盘中: sync

惯用的关机命令: shutdown

重新启动,关机: reboot, halt, poweroff

在默认的情况下, 这几个命令都会完成一样的工作!(因为halt会先呼叫shutdown,而shutdown最后会呼叫halt!)。 不过,shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下, 进行硬件关机的特殊功能

1
2
3
[root@ ~]# reboot 
[root@ ~]# shutdown -h now
[root@ ~]# poweroff -f

halt

若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。
使用权限:系统管理者。

1
[root@ ~]# halt

切换运行等级:init

Linux共有七种运行等级
run level 0:关机
run level 3:纯文本模式
run level 5:含有图形接口模式
run level 6:重新启动
可以使用init来关机

1
[root@~]# init 0

文件处理命令

目录相关:ls、pwd、mkdir、rmdir

1
2
3
4
ls -l  //列出当前目录下的文件详细信息
pwd [-options] //查看”当前工作目录“的完整路径
mkdir [-options] 目录名 //创建目录
rmdir [-options] 目录名 //删除空目录。

文件复制移动:touch、mv、cp、rm

1
2
3
4
5
6
7
mv [选项] 源文件或目录 目标文件或目录
//mv命令将文件重命名或将其移至一个新的目录中
```

```bash
cp [选项]… [-T] 源 目的
//cp命令将源文件复制至目标文件,或将多个源文件复制至目标目录。
1
2
touch [选项]… 文件…
//touch命令可更改文档或目录的日期时间,包括存取时间和更改时间。
1
2
rm [选项] 文件…
rm命令删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。

取得路径的文件名与目录名:basename,dirname

查看文件内容:more、less、head、tail、cat、tac、nl、diff

more:一页一页显示文件内容
less:less与more类似,但是可以向前翻页
head:查看文件时,只显示头几行
tail:查看文件时,只显示尾几行【-f 循环读取文件,不断刷新】
tac:从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)

1
2
3
4
5
cat [选项] [文件]…
主要的三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
1
2
3
4
nl [选项]… [文件]…
\\可以用来显示文件
\\nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!
\\其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
1
2
3
4
5
6
7
8
9
10
11
12
diff[参数][文件1或目录1][文件2或目录2]
\\diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
root@ubuntu:~# diff /snap/ /usr/
Only in /snap/: README
Only in /usr/: bin
Only in /usr/: games
Only in /usr/: include
Only in /usr/: lib
Only in /usr/: local
Only in /usr/: sbin
Only in /usr/: share
Only in /usr/: src

创建文件链接: ln

1
2
3
//ln (link)
ln -s source dist # 建立软连接
ln source dist # 建立硬连接

软链接(symbolic link):软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
硬链接(hard link):硬链接是已存在文件的另一个名字。【不允许给目录创建硬链接;只有在同一文件系统中的文件之间才能创建硬链接。】

硬链接:指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Number)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
软链接:文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

更改文件权限

umask 档案预设权限
chattr 配置文件档案隐藏属性
lsattr 显示档案隐藏属性
file 观察文件类型:

chgrp

改变所属群组, /etc/group里面可查询群组

1
[root@~]# chgrp users code.log

chown

功能: 通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
格式: chown [选项]… [所有者][:[组]] 文件…

chmod

功能:用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。
格式: chmod [-cfvR] [–help] [–version] mode file
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。

压缩文件

压缩文件和读取压缩文件:tar,gzip,zcat

磁盘占用与挂载

df

df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。

1
2
3
4
root@ubuntu:~# df 
Filesystem 1K-blocks Used Available Use% Mounted on
udev 491848 0 491848 0% /dev
tmpfs 100920 628 100292 1% /run

du (disk usage)

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。

mount

在linux系统中,可以使用mount命令挂载光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX NFS网络共享等

文件查找

which

1
2
which 可执行文件名称   //查找路径:PATH所含目录
//which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

适用场合:查找命令/可执行文件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。

whereis

1
2
3
whereis [-bmsu] [BMS 目录名 -f ] 文件名 //查找路径:索引数据库所含目录
//whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于源文件,二进制文件,或是帮助文件。
//whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。

原理:首先会去掉文件名中的前缀空格和以.开头的任何字符,然后在数据库(var/lib/slocate/slocate.db)中查找与经过处理后的文件名相匹配的源文件,二进制文件,或是帮助文件。
使用之前可以使用updatedb命令手动更新数据库。
适用场合:定位可执行文件、源代码文件、帮助文件在文件系统中的位置

locate

1
2
locate [选择参数] [样式]  //查找路径:索引数据库所含目录
locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。

原理:默认情况下(文件名中不包含通配符时),locate会给出所有与filename*相匹配的文件的路径。
适用场合:没有文件类型性质的模糊查找

find

1
find pathname -options [-print -exec -ok …]  //查找路径:当前目录/指定目录

适用场合:能用which、whereis和locate的时候尽量不要用find.
功能: 用于在文件树种查找文件,并作出相应的处理
原理:遍历当前工作目录及其子目录
参数:

1.使用name选项,可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。
2.按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。
3.如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。
4.使用type选项,根据不同的文件类型进行查找,如d(目录)、l(链接)

find命令之exec
-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。例如:find . -type f -exec ls -l {} ;find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
find命令之xargs
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高; 而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

网络管理命令

Linux 查看端口占用情况

ip

1
ip [-option] [动作] [命令]

option :设定的参数,主要有-s显示出该设备的统计数据(statistics),例如总接受封包数等;
动作:就是是可以针对哪些网络参数进行动作,包括有:

link :关于设备 (device) 的相关设定,包括 MTU, MAC 地址等等
addr/address :关于额外的 IP 设定,例如多 IP 的实现等等;
route :与路由有关的相关设定

ifconfig

1
ifconfig [网络设备] [参数]

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

dig

dig命令是一个功能强大的DNS查询命令。

一般格式:

1
dig [@global-server] [domain] [q-type] [q-class] {q-opt} {d-opt}

参数说明:
global-server:默认是以/etc/resolv.conf作为DNS查询的主机,这里可以填入其它DNS主机IP。
domain:要查询的域名。
q-type:查询记录的类型,例如a、any、mx、ns、soa、hinfo、axfr、txt等,默认查询a。
q-class:查询的类别,相当于nslookup中的set class。默认值为in(Internet)。
q-opt:查询选项,可以有好几种方式,比如:-f file为通过批处理文件解析多个地址;-p port指定另一个端口(缺省的DNS端口为53),等等。
d-opt:dig特有的选项。使用时要在参数前加上一个“+”号。

d-opt常用选项:
+vc:使用TCP协议查询。
+time=###:设置超时时间。

netstat

1
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
netstat命令(菜鸟教程)

ss(Socket Statistics)

1
2
ss [参数]
ss [参数] [过滤]

功能: ss命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。
ss命令的参数及使用详解

ping

1
ping [参数] [主机名或IP地址]

ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。
ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

tracertroute

1
2
3
traceroute[参数][主机]
//具体参数格式:
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>…][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

route

1
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

功能: Route命令是用于操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用”add”或者”del”参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。

Linux系统的route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

参考资料

理解 Linux 的硬链接与软链接
鸟哥的linux私房菜
Linux下4个查找命令which、whereis、locate、find的总结
Linux 命令大全

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×