初级用户:以下是初学者常用的一些命令。
ls 命令
ls 命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。
1 | root@tecmint:~# ls |
lsblk 命令
“lsblk”就是列出块设备。除了 RAM 外,以标准的树状输出格式,整齐地显示块设备。
1 | root@tecmint:~# lsblk |
md5sum 命令
“md5sum”就是计算和检验 MD5 信息签名。md5 checksum(通常叫做哈希)使用匹配或者验证文件的文件的完整性,因为文件可能因为传输错误,磁盘错误或者无恶意的干扰等原因而发生改变。
1 | root@tecmint:~# md5sum teamviewer_linux.deb |
dd命令
“dd”命令代表了转换和复制文件。可以用来转换和复制文件,大多数时间是用来复制 iso 文件(或任何其它文件)到一个 usb 设备(或任何其它地方)中去,所以可以用来制作 USB 启动器。
1 | root@tecmint:~# dd if=/home/user/Downloads/debian.iso of=/dev/sdb1 bs=512M; sync |
uname 命令
“uname”命令就是 Unix Name 的简写。显示机器名,操作系统和内核的详细信息。
1 | root@tecmint:~# uname -a |
history 命令
“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。
1 | root@tecmint:~# history |
sudo 命令
“sudo”(super user do)命令允许授权用户执行超级用户或者其它用户的命令。通过在 sudoers 列表的安全策略来指定。
1 | root@tecmint:~# sudo add-apt-repository ppa:tualatrix/ppa |
mkdir 命令
“mkdir”(Make directory)命令在命名路径下创建新的目录。然而如果目录已经存在了,那么它就会返回一个错误信息”不能创建文件夹,文件夹已经存在了”(“cannot create folder, folder already exists”)
1 | root@tecmint:~# mkdir tecmint |
touch 命令
“touch”命令代表了将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。
1 | root@tecmint:~# touch tecmintfile |
chmod 命令
“chmod”命令就是改变文件的模式位。chmod 会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。
1 | # 在文件(文件夹或者其它,为了简单起见,我们就使用文件)中存在3中类型的权限 |
chown 命令
“chown”命令就是改变文件拥有者和所在用户组。每个文件都属于一个用户组和一个用户。在你的目录下,使用”ls -l”,你就会看到像这样的东西。
1 | root@tecmint:~# ls -l |
apt 命令
Debian 系列以“apt”命令为基础,“apt”代表了 Advanced Package Tool。APT 是一个为 Debian 系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在 Gnu/Linux 系统上,它会为包自动地,智能地搜索,安装,升级以及解决依赖。
1 | root@tecmint:~# apt-get install mplayer |
关于 apt-get 和 apt-cache 命令更多信息,请查看 25 APT-GET和APT-CACHE命令
tar 命令
“tar”命令是磁带归档(Tape Archive),对创建一些文件的的归档和它们的解压很有用。
1 | root@tecmint:~# tar -zxvf abc.tar.gz (记住'z'代表了.tar.gz) |
了解更多”tar 命令”的例子,请查看 18 Tar命名例子
cal 命令
“cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。
1 | root@tecmint:~# cal |
date 命令
“date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。
1 | root@tecmint:~# date |
cat 命令
“cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容。
1 | root@tecmint:~# cat a.txt b.txt c.txt d.txt abcd.txt |
在深入探究之前,我必须让你知道通配符(你应该知道通配符,它出现在大多数电视选秀中)。通配符是 shell 的特色,和任何 GUI 文件管理器相比,它使命令行更强大有力!如你所看到那样,在一个图形文件管理器中,你想选择一大组文件,你通常不得不使用你的鼠标来选择它们。这可能觉得很简单,但是事实上,这种情形很让人沮丧!
例如,假如你有一个有很多很多各种类型的文件和子目录的目录,然后你决定移动所有文件名中包含“Linux”字样的 HTML 文件到另外一个目录。如何简单的完成这个?如果目录中包含了大量的不同名的 HTML 文件,你的任务很巨大,而不是简单了。
在 Linux CLI 中,这个任务就很简单,就好像只移动一个 HTML 文件,因为有 shell 的通配符,才会如此简单。这些是特殊的字符,允许你选择匹配某种字符模式的文件名。它帮助你来选择,即使是大量文件名中只有几个字符,而且在大多数情形中,它比使用鼠标选择文件更简单。
这里就是常用通配符列表:
Wildcard Matches
* 零个或者更多字符
? 恰好一个字符
[abcde] 恰好列举中的一个字符
[a-e] 恰好在所给范围中的一个字符
[!abcde] 任何字符都不在列举中
[!a-e] 任何字符都不在所给的范围中
{debian,linux} 恰好在所给选项中的一整个单词
! 叫做非,带’!’的反向字符串为真
更多请阅读Linux cat 命令的实例 13 Linux中cat命令实例
cp 命令
“copy”就是复制。它会从一个地方复制一个文件到另外一个地方。
1 | root@tecmint:~# cp /home/user/Downloads abc.tar.gz /home/user/Desktop (Return 0 when sucess) |
mv 命令
“mv”命令将一个地方的文件移动到另外一个地方去。
1 | root@tecmint:~# mv /home/user/Downloads abc.tar.gz /home/user/Desktop (Return 0 when sucess) |
pwd 命令
“pwd”(print working directory),在终端中显示当前工作目录的全路径。
1 | root@tecmint:~# pwd |
cd 命令
最后,经常使用的“cd”命令代表了改变目录。它在终端中改变工作目录来执行,复制,移动,读,写等等操作。
1 | root@tecmint:~# cd /home/user/Desktop |
中级用户:下面你将学会如何进行自定义搜索,知道正在进行的进程和停掉进程,如何使用Linux的强势功能和如何在系统内编译C,C++和JAVA程序。
命令: find
搜索指定目录下的文件,从开始于父目录,然后搜索子目录。
1 | root@tecmint:~# find -name *.sh |
’find’命令的更详细信息请参考 35 Find Command Examples in Linux
命令: grep
‘grep‘命令搜索指定文件中包含给定字符串或者单词的行。举例搜索‘/etc/passwd‘文件中的‘tecmint’
1 | root@tecmint:~# grep tecmint /etc/passwd |
命令: man
‘man‘是系统帮助页。Man 提供命令所有选项及用法的在线文档。几乎所有的命令都有它们的帮助页,例如:
1 | root@tecmint:~# man man |
命令: ps
ps命令给出正在运行的某个进程的状态,每个进程有特定的 id 成为 PID。
1 | root@tecmint:~# ps |
命令: kill
也许你从命令的名字已经猜出是做什么的了,kill 是用来杀死已经无关紧要或者没有响应的进程.它是一个非常有用的命令,而不是非常非常有用.你可能很熟悉 Windows 下要杀死进程可能需要频繁重启机器因为一个在运行的进程大部分情况下不能够杀死,即使杀死了进程也需要重新启动操作系统才能生效.但在 linux 环境下,事情不是这样的.你可以杀死一个进程并且重启它而不是重启整个操作系统.
杀死一个进程需要知道进程的 PID.
1 | # 假设你想杀死已经没有响应的‘apache2'进程,运行如下命令: |
命令: whereis
whereis的作用是用来定位命令的二进制文件\资源\或者帮助页.举例来说,获得ls和kill命令的二进制文件/资源以及帮助页:
1 | root@tecmint:~# whereis ls |
命令: service
‘service‘命令控制服务的启动、停止和重启,它让你能够不重启整个系统就可以让配置生效以开启、停止或者重启某个服务。
1 | # 在 Ubuntu 上启动 apache2 server: |
命令: alias
alias 是一个系统自建的 shell 命令,允许你为名字比较长的或者经常使用的命令指定别名。
1 | # 我经常用‘ls -l‘命令,它有五个字符(包括空格)。于是我为它创建了一个别名‘l'。 |
命令: df
报告系统的磁盘使用情况。在跟踪磁盘使用情况方面对于普通用户和系统管理员都很有用。 ‘df‘ 通过检查目录大小工作,但这一数值仅当文件关闭时才得到更新。
1 | root@tecmint:~# df |
‘df’命令的更多例子请参阅 12 df Command Examples in Linux.
命令: du
估计文件的空间占用。 逐层统计文件(例如以递归方式)并输出摘要。
1 | root@tecmint:~# du |
‘du‘命令的更详细信息请参阅 10 du (Disk Usage) Commands.
命令: rm
‘rm’ 标准移除命令。 rm 可以用来删除文件和目录。
1 | # 删除目录 |
命令: echo
echo 的功能正如其名,就是基于标准输出打印一段文本。它和 shell 无关,shell 也不读取通过 echo 命令打印出的内容。然而在一种交互式脚本中,echo 通过终端将信息传递给用户。它是在脚本语言,交互式脚本语言中经常用到的命令。
1 | root@tecmint:~# echo "Tecmint.com is a very good website" |
命令: passwd
这是一个很重要的命令,在终端中用来改变自己密码很有用。显然的,因为安全的原因,你需要知道当前的密码。
1 | root@tecmint:~# passwd |
命令: lpr
这个命令用来在命令行上将指定的文件在指定的打印机上打印。
1 | root@tecmint:~# lpr -P deskjet-4620-series 1-final.pdf |
命令: cmp
比较两个任意类型的文件并将结果输出至标准输出。如果两个文件相同, ‘cmp‘默认返回0;如果不同,将显示不同的字节数和第一处不同的位置。
1 | # 以下面两个文件为例: |
命令: wget
Wget是用于非交互式(例如后台)下载文件的免费工具.支持HTTP, HTTPS, FTP协议和 HTTP 代理。
1 | # 使用wget下载ffmpeg |
命令: mount
mount 是一个很重要的命令,用来挂载不能自动挂载的文件系统。你需要 root 权限挂载设备。
1 | # 在插入你的文件系统后,首先运行"lsblk"命令,识别出你的设备,然后把分配的设备名记下来。 |
命令: gcc
gcc 是 Linux 环境下 C 语言的内建编译器。下面是一个简单的 C 程序,在桌面上保存为 Hello.c (记住必须要有‘.c‘扩展名)。
1 |
|
1 | # 编译 |
命令: g++
g++ 是 C++ 的内建编译器。下面是一个简单的 C++ 程序,在桌面上保存为 Add.cpp (记住必须要有‘.cpp‘扩展名)。
1 |
|
1 | # 编译 |
命令:java
Java 是世界上使用最广泛的编程语言之一. 它也被认为是高效, 安全和可靠的编程语言. 现在大多数基于网络的服务都使用 Java实 现.
拷贝以下代码到一个文件就可以创建一个简单的 Java 程序. 不妨把文件命名为 tecmint.java (记住:’.java’扩展名是必需的).
1 |
|
1 | # 用 javac 编译 tecmint.java |
高级用户:以下将解释管理 Linux 服务器所需的一些命令。
命令:ifconfig
ifconfig 用来配置常驻内核的网络接口信息。在系统启动必要时用来设置网络适配器的信息。之后,它通常是只需要在调试时或当系统需要调整时使用。
1 | # 检查活动网络适配器 |
欲知更多 ifconfig 命令的例子和使用方法,读 15个有用的ifconfig 命令。
命令:netstat
netstat 命令显示各种网络相关的信息,如网络连接,路由表,接口统计,伪装连接,组播成员身份等….
1 | # 列出所有的网络端口 |
更多关于“netstat”的例子和使用方法,浏览文章 20 个 netstat 的使用案例。
命令:nslookup
网络实用程序,用于获得互联网服务器的信息。顾名思义,该实用程序将发现通过查询 DNS 域的名称服务器信息。
1 | [avishek@tecmint ~]$ nslookup tecmint.com |
更多阅读 8个 Nslookup 命令
命令:dig
dig 是查询 DNS 域名服务器的工具,可以查询的主机地址、 邮件交流、 域名服务器相关的信息。在任何 Linux (Unix) 或 Macintosh OS X 操作系统上,都可以使用该工具。dig 的最典型的用法是单个主机的查询。
1 | [avishek@tecmint ~]$ dig tecmint.com |
阅读更多 10 个 Linux Dig 命令实例。
命令:uptime
你连接到你的 Linux 服务器时发现一些不寻常或恶意的东西,你会做什么?猜测……不,绝不!你可以运行 uptime 来验证当服务器无人值守时到底发生了什么事情。
1 | [avishek@tecmint ~]$ uptime |
命令:wall
对系统管理员来说一个最重要的命令。wall 发送一条消息到大家登录端将其 mesg 权限设置为”yes”。这条信息可以被 wall 作为参数,或者可以将它作为 wall 的标准输入。
1 | [avishek@tecmint ~]$ wall "we will be going down for maintenance for one hour sharply at 03:30 pm" |
命令:mesg
其他人们可以使用”wtrite”命令,将在在向您发送文本到屏幕上。你可以控制是否显示。
1 | mesg [n|y] |
命令:write
如果 ‘mesg’ 是 ‘y’,让你的文本直接发送到另一台 Linux 机器的屏幕。
1 | [avishek@tecmint ~]$ write ravisaive |
命令:talk
增强的 write 命令,talk 命令可让你与其他登录的用户交谈。
1 | [avishek@tecmint ~]$ talk ravisaive |
命令:w
是否觉得命令’w’很滑稽?但是事实上不是的。它是一个命令,尽管只有一个字符长!命令”w”是 uptime 和 who 命令,以前后的顺序组合在一起。
1 | [avishek@tecmint ~]$ w |
命令:rename
见名知意,这个命令重命名文件。rename 将会通过从文件名的首字符开始替换,重命名为指定的文件名。
1 | Give the file names a1, a2, a3, a4.....1213 |
命令:top
显示 CPU 进程信息。这个命令自动刷新,默认是持续显示 CPU 进程信息,除非使用了中断指令。
1 | [avishek@tecmint ~]$ top |
另查看 12 TOP命令例子。[@Lesus 注:htop 比 top 命令更好用,不过需要自己安装
]
命令:mkfs.ext4
这个命令在指定的设备上创建一个新的 ext4 文件系统,如果这个命令后面跟的是个错误的设备,那么整个设备就会被擦除和格式化,所以建议不要运行这个命令,除非你清楚自己正在干什么。
1 | Mkfs.ext4 /dev/sda1 (sda1 block will be formatted) |
更多查看:Ext4是什么及怎么创建和转换
vi/emac/nano 命令
vi (visual), emac, nano 是 linux 中最常用的一些编辑器。它们经常用于编辑文本,配置,… 等文件. A quick guide to work around vi and nano is, emac is a.
1 | # vi 编辑器: |
命令:rsync
Rsync 复制文件,参数 -P 开启进度条。如果你已经安装了 rsync,你可以使用一个简单的别名。
1 | alias cp='rsync -aP' |
命令:free
跟踪内存的使用和资源一样重要,就像管理员执行的任何其它任务,可以使用 ‘free’ 命令来在这里救援.
1 | # 当前内存使用状态Current Usage Status of Memory |
阅读更多 10 个 Free 命令使用实例。
命令:mysqldump
好了,现在你从名字上就能明白这个命令所代表的作用。mysqldump 命令会转储(备份)数据库的全部或特定一部分数据到一个给定的文件中。例如:
1 | [avishek@tecmint ~]$ mysqldump -u root -p --all-databases > /home/server/Desktop/backupfile.sql |
注意: mysqldump 需要 mysql 在运行中并且有正确的授权密码。我们在 用 mysqldump 命令备份数据库中讨论了一些有用的 “mysqldump” 命令用法。
命令:mkpasswd
根据指定的长度,产生一个难猜的随机密码。
1 | [avishek@tecmint ~]$ mkpasswd -l 10 |
命令:paste
合并两个或多个文本文件,按行来进行合并。
1 | # 如果 file1 的内容是: |
命令:lsof
lsof 是”list open files”(“列表中打开的文件”) 的缩写,显示您的系统当前已打开的所有文件。这是非常有用的对于想找出哪些进程使用某一特定文件,或显示为单个进程打开所有文件。一些有用的 10 个 lsof 命令示例,你可能会感兴趣阅读。
1 | [avishek@tecmint ~]$ lsof |