Linux 常用命令
1.文件和目录
命令 | 功能 | 命令 | 功能 |
pwd | 显示当前目录 | ls | 查看目录下的内容 |
cd | 改变所在目录 | cat | 显示文件的内容 |
grep | 在文件中查找某字符 | cp | 复制文件 |
touch | 创建文件 | mv | 移动文件 |
rm | 删除文件 | rmdir | 删除目录 |
vi | 编辑文件 | tree | 显示文件结构 |
pwd
该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。
cd
cd命令用来改变所在目录。
cd / 转到根目录中
cd ~ 转到/home/user用户目录下
cd /usr 转到根目录下的usr目录中-------------绝对路径
cd test 转到当前目录下的test子目录中-------相对路径
grep
grep命令的最大功能是在一堆文件中查找一个特定的字符串。
grep money test.txt
以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。
touch
touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。
touch newfile 该命令创建一个名为newfile的空白文件。
rm
rm命令用来删除文件。
选项 | 说明 |
-i | 互动:提示确认删除 |
-f | 强制:代替互动模式,不提示确认删除 |
-v | 详细:显示文件的删除进度 |
-r | 递归:将删除某个目录以及其中所有的文件和子目录 |
ls
ls命令用来查看目录的内容。
选项 | 含义 |
-a | 列举目录中的全部文件,包括隐藏文件 |
-l | 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 |
-f | 列举的文件显示文件类型 |
-r | 逆向,从后向前地列举目录中内容 |
-R | 递归,该选项递归地列举当前目录下所有子目录内的内容 |
-s | 大小,按文件大小排序 |
-h | 以人类可读的方式显示文件的大小,如用K、M、G作单位 |
ls -l examples.doc | 列举文件examples.doc的所有信息 |
cat
(concatenate)
cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。
cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。
cp
cp命令用来拷贝文件,要复制文件,输入命令:
cp <source filename> <targetfilename>
cp t.txt Document/t 该命令将把文件t.txt复制到Document目录下,并命名为t。
选项 | 含义 |
-i | 互动:如果文件将覆盖目标中的文件,他会提示确认 |
-r | 递归:这个选项会复制整个目录树、子目录以及其他 |
-v | 详细:显示文件的复制进度 |
mv
mv命令用来移动文件。
选项 | 说明 |
-i | 互动:如果选择的文件会覆盖目标中的文件,他会提示确认 |
-f | 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项 |
-v | 详细:显示文件的移动进度 |
rmdir
rmdir命令用来删除目录。
vi 编辑文件
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi n filename :打开文件,并将光标置于第n行首
vi filename :打开文件,并将光标置于一行首
vi /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
屏幕翻滚类命令
Ctrl u:向文件首翻半屏
Ctrl d:向文件尾翻半屏
Ctrl f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部.
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
保存命令
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
2.磁盘空间
命令 | 功能 |
mount | 挂载文件系统 |
umount | 卸载已挂载上的文件系统 |
df | 检查各个硬盘分区和已挂上来的文件系统的磁盘空间 |
du | 显示文件目录和大小 |
fsck | 主要是检查和修复Linux文件系统 |
mount
mount命令的功能是挂载文件系统,可以挂载硬盘、光盘、软盘,也可以挂载NFS网络文件系统。这个命令的标准用法如下:
mount –t 设备类型存放目录
mount IP地址:/所提供的目录存放目录
选项 | 说明 |
(无) | 不加任何参数,直接输入命令可以显示已挂载的文件系统和目录 |
-a | 挂上/etc/fstab下的全部文件系统 |
-t | 制定所挂上来的文件系统的名称,所有系统支持的文件系统,这个信息可以在/proc/filesystems这个文件里看到 |
-n | 挂上文件系统,但是不把文件系统的数据写入/etc/mtlab这个文件 |
-w | 将文件系统设为可读写 |
-r | 挂上来的文件系统设为只读 |
在目录/mnt下,挂上iso9660文件系统。输入命令:
mount –t iso9660 /dev/hdb /cdrom
umount
umount命令的功能是卸载已挂上的文件系统,在关闭系统前应该把所有挂载上的文件系统卸载。这个命令和mount命令是相对的。用法:
umount 已挂上的目录或设备
卸载已挂上的/cdrom目录,输入命令:
umount /cdrom
卸载已挂上的某个分区,输入命令:
umount /dev/hdb1
df
df命令用来检查硬盘分区和已挂在的文件系统的磁盘空间,也就是说,检查硬盘的使用量。标准用法如下:
df [-选项]
选项 | 功能 |
-a | 把全部的文件系统和各分区的硬盘使用情形列出来,包括0区块的,例如/proc这个文件系统 |
-i | 列出I-nodes的使用量 |
-k | 把各分区的大小和挂上来的文件分区的大小用k表示 |
-t | 列出某一文件系统的所有分区磁盘空间使用量 |
-x | 列出不是某一文件系统的所有分区磁盘空间使用量,和-t选项相反 |
-T | 列出每个分区所属文件系统的名称 |
du
du命令的功能是用于显示文件目录或大小。标准用法:
du [-选项]
选项 | 含义 |
-a | 显示全部目录及其次目录下的每个文件所占的磁盘空间 |
-b | 显示目录和文件的大小,以B为单位 |
-c | 最后再加上一个总计 |
-h | 以KB、MB、GB为单位,提高信息可读性 |
-s | 只列出各文件大小的总和 |
-x | 只计算属于同一文件系统的文件 |
fsck
fsck命令的功能是检查和修复Linux文件系统,这个命令最好在没有人或是没有分区挂上来时使用,其实每次开机系统都会做一次检查,看是否有坏轨或数据流失的现象。用法:
fsck (-选项) 分区名称
选项 | 功能 |
-a | 自动修复文件系统,不询问任何问题,比较危险 |
-A | 依照/etc/fstab配置文件的内容,检查该文件内所列全部文件系统。若没有附加参数"-P”,则会先检查/目录的文件系统,而不会同时检查所有文件系统 |
-R | 采取互动方式,在修复时询问问题,让用户确认并决定处理方式 |
-S | 依次检查作业而不是同时执行。当依次指定多个文件系统且采用互动的方式进行检查时,请使用此参数以便顺序执行,否则fsck可能会同时询问数个问题,让人不知所措 |
-V | 显示命令执行的过程 |
-T | 指定要检查的文件系统的类型 |
-N | 不是真正执行指令,仅列出实际执行时会进行的动作 |
3.打包和压缩
在Linux中,常用的文件压缩工具有gzip、bzip2、zip。bzip2是最理想的压缩工具,它提供了最大限度的压缩。zip兼容性好,Windows也支持。
命令 | 功能 |
bzip2/bunzip2 | 扩展名为bz2的压缩/解压缩工具 |
gzip/gunzip | 扩展名为gz的压缩/解压缩工具 |
zip/unzip | 扩展名为zip的压缩/解压缩工具 |
tar | 创建备份和归档 |
tar
tar -cvf 打包文件.tar 被打包文件/路径 //打包文件
tar -xvf 打包文件.tar //解包文件
选项 | 功能 |
-c | 创建一个新归档 |
-C | 解压到指定目录 |
-f | 当与-c选项一起使用时,创建的tar文件使用该选项指定的文件名;当与-x选项一起使用时,则解除该选项指定的归档;f 后面一定是.tar文件,所以必须放选项最后 |
-t | 显示包括在tar文件中的文件列表 |
-v | 显示文件的归档进度 |
-x | 从归档中抽取文件 |
-z | 使用gzip压缩tar文件 |
-j | 使用bzip2压缩tar文件 |
4.关机、重启和系统信息
命令 | 说明 |
shutdown | 正常关机 |
reboot | 重启计算机 |
ps | 查看目前程序执行的情况 |
top | 查看目前程序执行的情景和内存使用的情况 |
kill | 终止一个进程 |
date | 更改或查看目前日期 |
cal | 显示月历及年历 |
shutdown
选项 | 功能 |
-k | 不是真正的关机,只是发出警告命令 |
-r | 关机后重启(这个用的最多) |
-t | 在规定的时间内关机 |
reboot
这个命令也是一个关机命令,只有输入,不加任何参数,系统会以最快的速度关机,且不将内存或缓冲区里的东西写回硬盘。
选项 | 功能 |
-d | 不把记录写到/var/log/wtmp档案里(-n这个参数包含了-d) |
-f | 强迫重开机,不呼叫shutdown这个指令 |
-n | 在重开机前不做将记忆体资料写回硬盘 |
-w | 并不会真的重开机,只是把记录写到/var/log/wtmp档案里 |
ps
(process status)
ps命令用来查看在计算机系统中有哪些程序正在执行,及其执行的情况。这是一个相当强大的命令,可以用它来找出所有的process id和名称。另外,ps命令也可以用来列出所有程序占用内存的情况。用法如下:
ps –(选项)
选项 | 功能 |
-a | 显示终端上所有进程,包括其他用户进程 |
-l | 用长格式列出 |
-u | 列出使用者的名称和使用时间 |
-m | 列出内存分布的情况 |
-r | 只列出正在执行的前台程序,不列出其他信息 |
-x | 列出所有程序,包括那些没有终端机的程序 |
top
top命令可以查看目前程序的执行情景和内存使用。它和ps类似,不过,它会几秒钟更新一次系统状态,方便追踪。要离开这个程序,按Ctrl+C键就可以了。
kill
kill命令用来终止一个正在执行中的进程。如果一个程序执行过程中失败了,可以把这个程序终止,避免留在内存中占用系统资源。不过,它的实际意义是送一个信号给这个正在执行的程序,叫它自杀。可以送很多信号给这些程序,也可以让他们受到信号后做很多事情。标准用法:
kill –(选项) pid
选项 | 功能 |
-l | 列出所有可用的信号名称 |
-p | 印出pid并不发送信号 |
-signal | 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑, 砍掉, 结束 |
将 pid 为 323 的行程砍掉 (kill) :
kill -9 323
将 pid 为 456 的行程重跑 (restart) :
kill -HUP 456
date
date命令用来显示、设定和修改现在的时间和日期。标准用法:
date –(选项) 显示时间格式(以+号开头,后加格式)
date 设定时间格式
选项 | 功能 |
-u | 使用格林尼治时间 |
-r | 最后一次修改文件的时间 |
-s | 设置时间 |
cal
cal命令有两种功能:显示月历以及年历。
直接输入cal命令则系统会显示目前月份的月历。
cal -y 显示当前整年的的日历
若只需要查看某一年份中某一月份的月历,可以输入:cal 月份公元年份。例如输入:"cal 12 2004”。
5.用户和组及权限管理
命令 | 说明 | 命令 | 说明 |
groupadd 组名 | 添加组 | useradd | 添加新用户 |
groupdel 组名 | 删除组 | userdel | 删除用户 |
chgrp -R 组名/文件名 | 递归修改文件/目录的所属组 | passwd | 设置用户密码 |
chmod -R | 改变权限 -R选项可递归修改目录下所有子文件权限 | su | 切换用户 |
chgrp | 修改组 | who | 查看当前所有登陆的用户列表 |
chown | 修改拥有者 | whoami | 查看当前登录用户的账户名 |
usermod | 设置用户的主组/附加组和登录shell | id 用户名 | 查看用户 UID 和 GID 信息 |
group/passwd
组信息保存在 /etc/group 文件中
cat /etc/group 查看组信息
用户信息会保存在 /etc/passwd 文件中
cat /etc/passwd | grep 用户名
usermod
-g | 修改用户的主组 user -g 组 用户名 |
-G | 修改用户的附加组 user -G 组 用户名 |
-s | 修改用户登录shell user -s /bin/bash 用户名 |
useradd
useradd -m -g 组 新建用户名
-m | 自动建立用户家目录 |
-g | 指定用户所在的组,否则建立一个同名的组 |
userdel
userdel -r 用户名 ;-r选项会自动删除用户家目录
passwd
passwd 用户名 ;如果是普通用户,直接用passwd可以修改自己的账户密码
chmod
chmod命令用来改变许可权限。读取、写入和执行是许可权限中的三个主要设置。因为用户在他们的账号被创建时就被编入一个组群,所以还可以指定那些组群可以读取、写入或执行某一文件。其中:
r—文件可以被读取
w—文件可以被写入
x—文件可以被执行,如果文件是程序的话可以使用带有-l的ls命令来仔细查看一个文件的许多细节。
chmod命令用来设定文件的权限。标准用法:
chmod 文件的使用者(u,g,o,a)增减(+,-,=)权限名称(r,w,x) 文件
文件的使用者 | 说明 | 权限 | 说明 | 增减 | 说明 |
u | 拥有文件的用户 | r | 读取权 | + | 添加权限 |
g | 所有者所在的组群 | w | 写入权 | - | 删除权限 |
o | 其他人 | x | 执行权 | = | 是它称为唯一权限 |
a | 全部(u,g和o) |
删除某一文件的所有权限,输入命令:
chmod a-rwx test.txt
为文件所有者添加权限,输入命令:
chmod u+rwx test
还可以用数字表示权限:4——读取,2——写入,1——执行。下面的两个命令等价:
chmod 751 filename
chmod u+rwx,g=rx,0=x filename
su
(substitute user)
su - 用户名 ;- 表示同时切换到用户家目录 ,忽略用户名自动切换到root用户
6.网络
ifconfig | 查看网卡配置 |
ping | 检测主机 |
ping
执行ping命令,它会使用ICMP传输协议,发出要求回应的信息,若远程主机的网络没有什么问题,就会回应信息,因而得知该主机运作正常。
标准用法:
ping (-选项) 主机名称或IP地址
选项 | 含义 |
c 次数 | 设置完成要求回应的次数。ping命令会反复发出信息,直到达到设定的次数为止 |
D | 使用Socket的SO_DEBUG功能 |
F | 大量而且快速地送网络封包给一台机器,看它的回应。一般不到几秒钟,送出去的封包就会超过两千个 |
I 秒数 | 指定收发信息的间隔时间,单位为s,预置位1s。与参数f不兼容 |
S bytes | 设置数据包的大小。预设置为56B,加上8B ICMP头文件,共64B |
R | 忽略网关,直接将数据保送到远程主机上。如果该主机并非局域网的一份子,就会传回错误信息 |
Q | 不显示命令的执行过程,只显示结果 |
V | 详细显示命令的执行过程,包括非回应信息和其它信息 |
T 存活数值 | 设置存活数值TTL的大小。TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃 |
7.其它命令
命令 | 说明 | 命令 | 说明 |
less | less是一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息 | which | 查看执行命令所在位置 |
more | less是一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息 | whereis | 找出特定程序的可执行文件、源代码文件以及manpage的路径 |
echo | 在显示器上输出一段文字 配合重定向将屏幕写入文件 | find | 查找文件 |
| | 管道操作符 | > 、 >> | 重定向 |
ln | 软连接 | apt-get | 软件安装 |
which
语法
which command
说明
依序从path环境变量所列的目录中找出command的位置,并显示完整路径的名称。在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录。
whereis
语法
whereis [option] name
说明
找出特定程序的可执行文件、源代码文件以及manpage的路径。你所提供的name会被先除去前置的路径以及任何.ext形式的扩展名。
whereis 只会在标准的Linux目录中进行搜索。
常用选项
-b 只搜索可执行文件。
-m 只搜索manpage。
-s 只搜索源代码文件。
-B directory 更改或限定搜索可执行的文件的目录。
-M directory 更改或限定搜索manpage的目录。
-S directory 更改或限定搜索源代码文件的目录。
find
语法
find paths expression [action]
说明
以paths为搜索起点逐层往下找出每一个符合expression条件的文件,并对该文件执行action所代表的动作。expression是搜索条件,它由一个代表匹配项目的选项以及一个代表匹配模式的参数构成。
action是处理动作,它有一个代表“处理方式”的选项以及一个操作参数构成。若不指定action,则默认动作是显示出文件名。
常用的搜索条件
-name pattern
-path pattern
-lname pattern找出名称、路径名称或符号链接的目标匹配pattern模式的文件。pattern可以包含shell的文件名通配符,路径是相对于搜索起点的。
常见处理动作
显示出文件的相对路径(相对于搜索起点)。
-exec cmd /;
执行指定的shell命令。若cmd含有任何shell特殊字符,则他们之前都必须加上/符号,以免shell立刻执行他们。在cmd里,可以用”{}”符号(包括双引号)表示find所找出的文件。
ln
语法:
ln 源文件绝对路径 目标路径
ln -s 代表软链接
ln 不加-s选项代表硬链接
更多命令待添加。。。