linux常用的20个命令是什么
20个常用命令:ls、lsblk、md5sum、dd、uname、history、sudo、mkdir、touch、chmod、chown、apt、tar、cal、date、cat、cp、mv、pwd、cd。
1. ls命令
ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。
1 2 3 4 5 6 7 |
|
“ls -l”命令以详情模式(long listing fashion)列出文件夹的内容。
1 2 3 4 5 6 7 8 9 10 |
|
"ls -a"命令会列出文件夹里的所有内容,包括以"."开头的隐藏文件。
1 2 3 4 5 6 7 8 9 10 11 |
|
注意:在Linux中,文件以“.”开头的就是隐藏文件,并且每个文件,文件夹,设备或者命令都是以文件对待。ls -l 命令输出:
- d (代表了是目录).
- rwxr-xr-x 是文件或者目录对所属用户,同一组用户和其它用户的权限。
- 上面例子中第一个ravisaive 代表了文件文件属于用户ravisaive
- 上面例子中的第二个ravisaive代表了文件文件属于用户组ravisaive
- 4096 代表了文件大小为4096字节.
- May 8 01:06 代表了文件最后一次修改的日期和时间.
- 最后面的就是文件/文件夹的名字
- 更多"ls"例子请查看 15 linux中ls命令实例
2. lsblk命令
"lsblk"就是列出块设备。除了RAM外,以标准的树状输出格式,整齐地显示块设备。
1 2 3 4 5 6 7 8 9 10 |
|
“lsblk -l”命令以列表格式显示块设备(而不是树状格式)。
1 2 3 4 5 6 7 8 9 10 |
|
注意:lsblk是最有用和最简单的方式来了解新插入的USB设备的名字,特别是当你在终端上处理磁盘/块设备时。
3. md5sum命令
“md5sum”就是计算和检验MD5信息签名。md5 checksum(通常叫做哈希)使用匹配或者验证文件的文件的完整性,因为文件可能因为传输错误,磁盘错误或者无恶意的干扰等原因而发生改变。
1 2 3 |
|
注意:用户可以使用官方提供的和md5sum生成签名信息匹对以此检测文件是否改变。Md5sum没有sha1sum安全,这点我们稍后讨论。
4. dd命令
“dd”命令代表了转换和复制文件。可以用来转换和复制文件,大多数时间是用来复制iso文件(或任何其它文件)到一个usb设备(或任何其它地方)中去,所以可以用来制作USB启动器。
1 |
|
注意:在上面的例子中,usb设备就是sdb1(你应该使用lsblk命令验证它,否则你会重写你的磁盘或者系统),请慎重使用磁盘的名,切忌。
dd 命令在执行中会根据文件的大小和类型 以及 usb设备的读写速度,消耗几秒到几分钟不等。
5. uname命令
"uname"命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。
1 2 3 |
|
注意: uname显示内核类别, uname -a显示详细信息。上面的输出详细说明了uname -a
- “Linux“: 机器的内核名
- “tecmint“: 机器的节点名
- “3.8.0-19-generic“: 内核发布版本
- “#30-Ubuntu SMP“: 内核版本
- “i686“: 处理器架构
- “GNU/Linux“: 操作系统名
6. history命令
“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
注意:按住“CTRL + R”就可以搜索已经执行过的命令,它可以在你写命令时自动补全。
1 |
|
7. sudo命令
“sudo”(super user do)命令允许授权用户执行超级用户或者其它用户的命令。通过在sudoers列表的安全策略来指定。
1 |
|
注意:sudo 允许用户借用超级用户的权限,然而"su"命令实际上是允许用户以超级用户登录。所以sudo比su更安全。
并不建议使用sudo或者su来处理日常用途,因为它可能导致严重的错误如果你意外的做错了事,这就是为什么在linux社区流行一句话:
“To err is human, but to really foul up everything, you need root password = 人非圣贤孰能无过,但是拥有root密码就真的万劫不复了”
8. mkdir命令
“mkdir”(Make directory)命令在命名路径下创建新的目录。然而如果目录已经存在了,那么它就会返回一个错误信息"不能创建文件夹,文件夹已经存在了"("cannot create folder, folder already exists")
1 |
|
注意:目录只能在用户拥有写权限的目录下才能创建。mkdir:不能创建目录`tecmint`,因为文件已经存在了。(上面的输出中不要被文件迷惑了,你应该记住我开头所说的-在linux中,文件,文件夹,驱动,命令,脚本都视为文件)
9. touch 命令
“touch”命令代表了将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。
1 |
|
注意:touch 可以用来在用户拥有写权限的目录下创建不存在的文件。
10. chmod 命令
“chmod”命令就是改变文件的模式位。chmod会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。
在文件(文件夹或者其它,为了简单起见,我们就使用文件)中存在3中类型的权限
1 |
|
所以如果你想给文件只读权限,就设置为'4';只写权限,设置权限为'2';只执行权限,设置为1; 读写权限,就是4+2 = 6, 以此类推。
现在需要设置3种用户和用户组权限。第一个是拥有者,然后是用户所在的组,最后是其它用户。
1 |
|
这里root的权限是 rwx(读写和执行权限),
所属用户组权限是 r-x (只有读和执行权限, 没有写权限),
对于其它用户权限是 -x(只有只执行权限)
为了改变它的权限,为拥有者,用户所在组和其它用户提供读,写,执行权限。
1 |
|
三种都只有读写权限
1 |
|
拥有者用户有读写和执行权限,用户所在的组和其它用户只有可执行权限
1 |
|
注意:对于系统管理员和用户来说,这个命令是最有用的命令之一了。在多用户环境或者服务器上,对于某个用户,如果设置了文件不可访问,那么这个命令就可以解决,如果设置了错误的权限,那么也就提供了为授权的访问。
11. chown命令
“chown”命令就是改变文件拥有者和所在用户组。每个文件都属于一个用户组和一个用户。在你的目录下,使用"ls -l",你就会看到像这样的东西。
1 2 3 4 |
|
在这里,目录Binary属于用户"server",和用户组"root",而目录"Desktop"属于用户“server”和用户组"server"
“chown”命令用来改变文件的所有权,所以仅仅用来管理和提供文件的用户和用户组授权。
1 2 3 4 |
|
注意:“chown”所给的文件改变用户和组的所有权到新的拥有者或者已经存在的用户或者用户组。
12. apt命令
Debian系列以“apt”命令为基础,“apt”代表了Advanced Package Tool。APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在Gnu/Linux系统上,它会为包自动地,智能地搜索,安装,升级以及解决依赖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
注意:上面的命令会导致系统整体的改变,所以需要root密码(查看提示符为"#",而不是“$”).和yum命令相比,Apt更高级和智能。
见名知义,apt-cache用来搜索包中是否包含子包mplayer, apt-get用来安装,升级所有的已安装的包到最新版。
关于apt-get 和 apt-cache命令更多信息,请查看 25 APT-GET和APT-CACHE命令
13. tar命令
“tar”命令是磁带归档(Tape Archive),对创建一些文件的的归档和它们的解压很有用。
1 2 3 4 5 |
|
注意: "tar.gz"代表了使用gzip归档,“bar.bz2”使用bzip压缩的,它压缩的更好但是也更慢。
了解更多"tar 命令"的例子,请查看 18 Tar命名例子
14. cal 命令
“cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。
1 2 3 4 5 6 7 8 9 |
|
显示已经过去的月份,1835年2月
1 2 3 4 5 6 7 8 |
|
显示未来的月份,2145年7月。
1 2 3 4 5 6 7 8 9 |
|
注意: 你不需要往回调整日历50年,既不用复杂的数据计算你出生那天,也不用计算你的生日在哪天到来,[因为它的最小单位是月,而不是日]。
15. date命令
“date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。
1 2 3 |
|
1 2 |
|
注意:这个命令在脚本中十分有用,以及基于时间和日期的脚本更完美。而且在终端中改变日期和时间,让你更专业!!!(当然你需要root权限才能操作这个,因为它是系统整体改变)
16. cat命令
“cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容。
1 2 3 4 5 6 |
|
注意:“>>”和“>”调用了追加符号。它们用来追加到文件里,而不是显示在标准输出上。“>”符号会删除已存在的文件,然后创建一个新的文件。所以因为安全的原因,建议使用“>>”,它会写入到文件中,而不是覆盖或者删除。
在深入探究之前,我必须让你知道通配符(你应该知道通配符,它出现在大多数电视选秀中)。通配符是shell的特色,和任何GUI文件管理器相比,它使命令行更强大有力!如你所看到那样,在一个图形文件管理器中,你想选择一大组文件,你通常不得不使用你的鼠标来选择它们。这可能觉得很简单,但是事实上,这种情形很让人沮丧!
例如,假如你有一个有很多很多各种类型的文件和子目录的目录,然后你决定移动所有文件名中包含“Linux”字样的HTML文件到另外一个目录。如何简单的完成这个?如果目录中包含了大量的不同名的HTML文件,你的任务很巨大,而不是简单了。
在LInux CLI中,这个任务就很简单,就好像只移动一个HTML文件,因为有shell的通配符,才会如此简单。这些是特殊的字符,允许你选择匹配某种字符模式的文件名。它帮助你来选择,即使是大量文件名中只有几个字符,而且在大多数情形中,它比使用鼠标选择文件更简单。
这里就是常用通配符列表:
1 2 3 4 5 6 |
|
! 叫做非,带'!'的反向字符串为真
更多请阅读Linux cat 命令的实例 13 Linux中cat命令实例
17. cp 命令
“copy”就是复制。它会从一个地方复制一个文件到另外一个地方。
1 |
|
注意: cp,在shell脚本中是最常用的一个命令,而且它可以使用通配符(在前面一块中有所描述),来定制所需的文件的复制。
18. mv 命令
“mv”命令将一个地方的文件移动到另外一个地方去。
1 |
|
注意:mv 命令可以使用通配符。mv需谨慎使用,因为移动系统的或者未授权的文件不但会导致安全性问题,而且可能系统崩溃。
19. pwd 命令
“pwd”(print working directory),在终端中显示当前工作目录的全路径。
1 2 |
|
注意: 这个命令并不会在脚本中经常使用,但是对于新手,当从连接到nux很久后在终端中迷失了路径,这绝对是救命稻草
20. cd 命令
最后,经常使用的“cd”命令代表了改变目录。它在终端中改变工作目录来执行,复制,移动,读,写等等操作
1 2 3 4 |
|
注意: 在终端中切换目录时,cd就大显身手了。“cd ~”会改变工作目录为用户的家目录,而且当用户发现自己在终端中迷失了路径时,非常有用。“cd ..”从当前工作目录切换到(当前工作目录的)父目录。
什么是Linux
Linux用于服务器操作系统比较多,通常被认为是一套操作系统,实际上它是一系列Linux内核基础上开发的操作系统的总称。日常所见比较多的Ubuntu、企业常用的centos其实都是Linux系统,基于Linux内核搞出来的,都可以视为Linux系统大家族的成员。
特点
编辑 播报
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。 [1]
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。 [2]
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。 [3]
主要特性
编辑 播报
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
优点
1.Linux由众多微内核组成,其源代码完全开源;
2.Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
3.Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;
安全隐患及加固措施
用户账户以及登录安全
删除多余用户和用户组。Linux是多用户操作系统,存在很多种不一样的角色系统账号,当安装完成操作系统之后,系统会默认为未添加许用户组及用户,若是部分用户或是用户组不需要,应当立即删除它们,否则黑客很有可能利用这些账号,对服务器实施攻击。具体保留哪些账号,可以依据服务器的用途来决定。
关闭不需要的系统服务。操作系统安装完成之后,其会在安装的过程当中,会自主的启动各种类型的服务程序内容,对于长时间运行的服务器而言,其运行的服务程序越多,则系统的安全性就越低。所以,用户或是用户组就需要将一些应用不到的服务程序进行关闭,这对提升系统的安全性能,有着极大的帮助。
密码安全策略。在Linux之下,远程的登录系统具备两种认证的形式:即密钥与密码认证。其中,密钥认证的形式,主要是将公钥储存在远程的服务器之上,私钥存储在本地。当进行系统登陆的时候,再通过本地的私钥,以及远程的服务器公钥,进行配对认证的操作,若是认证的匹配度一致,则用户便能够畅通无阻的登录系统。此类认证的方式,并不会受到暴力破解的威胁。与此同时,只需要确保本地私钥的安全,使其不会被黑客所盗取即可,攻击者便不能够通过此类认证方式登陆到系统中。所以,推荐使用密钥方式进行系统登陆。
有效应用su、sudo命令。su命令的作用的是对用户进行切换。当管理员登录到系统之后,使用su命令切换到超级用户角色来执行一些需要超级权限的命令。但是由于超级用户的权限过大,同时,需要管理人员知道超级用户密码,因此su命令具有很严重的管理风险。
sudo命令允许系统赋予普通用户一些超级权限,并且不需普通用户切换到超级用户。因此,在管理上应当细化权限分配机制,使用sudo命令为每一位管理员服务其特定的管理权限。
远程访问及登陆认证安全
远程登录应用SSH登陆方式。telnet是一类存在安全隐患的登录认证服务,其在网络之上利用明文传输内容,黑客很容易通过截获telnet数据包,获得用户的登陆口令。并且telnet服务程序的安全验证方式存在较大的安全隐患,使其成为黑客攻击的目标。SSH服务则会将数据进行加密传输,能够防止DNS欺骗以及IP欺骗,并且传输的数据是经过压缩,在一定程度上保证了服务器远程连接的安全。
文件系统安全
加固系统重要文件。在Linux系统中,如果黑客取得超级权限,那么他在操作系统里面就不会再有任何的限制地做任何事情。在这种情况下,一个加固的文件系统将会是保护系统安全的最后一道防线。管理员可通过chattr命令锁定系统一些重要文件或目录。
文件权限检查与修改。如果操作系统当中的重要文件的权限设置不合理,则会对操作系统的安全性,产生最为直接的影响。所以,系统的运行维护人员需要及时的察觉到权限配置不合理的文件和目录,并及时修正,以防安全事件发生。
安全设定/tmp、/var/tmp、/dev/shm。在该操作系统当中,其用于存放临时文件的目录,主要有两个,分别为/tmp与/var/tmp。它们有个共同特点,就是所有的用户可读可写和执行,这样就对系统产生了安全隐患。针对这两个目录进行设置,不允许这两个目录下执行应用程序。
系统软件安全
绝大多数的服务器遭受攻击是因为系统软件或者应用程序有重大漏洞。黑客通过这些漏洞,可以轻松地侵入服务器。管理员应定期检查并修复漏洞。最常见的做法是升级软件,将软件保持在最新版本状态。这样就可以在一定程度上降低系统被入侵的可能性。
Linux安装
安装步骤比较繁琐,现在其实云服务器挺普遍的,价格也便宜。如果自己不想搭建,也可以直接买一台学习用用
Centos下载地址:
官网最新版本:Download
以下针对各个版本的ISO镜像文件,进行一一说明:
- CentOS-7.0-x86_64-DVD-1503-01.iso : 标准安装版,一般下载这个就可以了(推荐)
- CentOS-7.0-x86_64-NetInstall-1503-01.iso : 网络安装镜像(从网络安装或者救援系统)
- CentOS-7.0-x86_64-Everything-1503-01.iso: 对完整版安装盘的软件进行补充,集成所有软件。(包含centos7的一套完整的软件包,可以用来安装系统或者填充本地镜像)
- CentOS-7.0-x86_64-GnomeLive-1503-01.iso: GNOME桌面版
- CentOS-7.0-x86_64-KdeLive-1503-01.iso: KDE桌面版
- CentOS-7.0-x86_64-livecd-1503-01.iso : 光盘上运行的系统,类拟于winpe
- CentOS-7.0-x86_64-minimal-1503-01.iso : 精简版,自带的软件最少
注:建议安装64位Linux系统。
旧版本下载地址:Download - CentOS Wiki
接下来你需要将下载的Linux系统刻录成光盘或U盘。
注:你也可以在Window上安装VMware虚拟机来安装Linux系统。