这里介绍的是一些非常基本的命令,在linux管理中经常用到,包括用户创建、文件操作、目录操作、vim文本编辑等等。

用户切换与创建

whoami命令:用于显示自身用户名称

[root@linux00 ~]# whoami
root

su命令:用于切换用户

管理员登入(#)普通用户登入($)
管理员切换到普通用户不需要密码,普通用户切换到管理员需要密码,普通用户之间切换同样需要密码。

[root@localhost ~]# su – linux00
Last login: Mon Apr 16 09:54:49 EDT 2018 on :0
[linux00@localhost ~]$ su
Password: 输入密码
[root@localhost linux00]#

useradd命令:用于添加一个用户,只有管理员能够操作。
passwd命令:设置用户的登入密码,只有管理员能够操作。

[root@localhost ~]# useradd raoxiuyuan
[root@localhost ~]# passwd raoxiuyuan
Changing password for user raoxiuyuan.
New password: 输入密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 重新输入密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

Shell快捷键

● Ctrl+a:调到命令行的开头
● Ctrl+e:调到命令行的末尾
● Ctrl+u:将光标处到命令行开头的内容清除
● Ctrl+k:将光标处到命令行末尾的内容清除
● Ctrl+r:在历史记录列表中搜索某一命令
● Ctrl+l:清屏

● history //显示历史命令(![number] 直接执行曾经执行过的命令)

目录结构

pwd命令:查看当前所在的路径

[root@localhost ~]# pwd
/root

ls命令:查看当前路径下的文件

-d:只看当前目录的信息
-l:查看详细信息
-a:显示所有文件
-h:将文件大小以易读的方式显示

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# ls -alh
total 48K
drwxr-xr-x.  17 root root 4.0K Apr 17 05:23 .
drwxr-xr-x.  17 root root 4.0K Apr 17 05:23 ..
lrwxrwxrwx.   1 root root    7 Nov 17 04:05 bin -> usr/bin
dr-xr-xr-x.   3 root root 4.0K Nov 19 20:12 boot
drwxr-xr-x.  19 root root 3.1K Apr 17 05:25 dev
drwxr-xr-x. 133 root root 8.0K Apr 17 05:23 etc
drwxr-xr-x.   4 root root   37 Mar 20 02:50 home
lrwxrwxrwx.   1 root root    7 Nov 17 04:05 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 17 04:05 lib64 -> usr/lib64
drwxr-xr-x.   3 root root   18 Nov 16 21:32 media
drwxr-xr-x.   2 root root    6 Mar 13  2014 mnt
drwxr-xr-x.   3 root root   15 Nov 17 04:13 opt
dr-xr-xr-x. 509 root root    0 Apr 17 05:23 proc
dr-xr-x---.  20 root root 4.0K Apr 17 05:25 root
drwxr-xr-x.  37 root root 1.2K Apr 17 05:25 run
lrwxrwxrwx.   1 root root    8 Nov 17 04:05 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Mar 13  2014 srv
dr-xr-xr-x.  13 root root    0 Apr 17 05:23 sys
drwxrwxrwt. 125 root root 8.0K Apr 17 05:28 tmp
drwxr-xr-x.  13 root root 4.0K Nov 17 04:05 usr
drwxr-xr-x.  24 root root 4.0K Apr 17 05:23 var
[root@localhost /]# 

cd命令:用户切换路径

cd -:返回到之前的目录
cd ..:返回到上一级目录 “.”指当前目录 “..”指上一级目录
cd ~:到用户所在的家目录

[root@localhost ~]# cd ..
[root@localhost /]# cd ~
[root@localhost ~]# cd /tmp/
[root@localhost tmp]#

系统中文件系统路径(绝对路径和相对路径)

1.绝对路径

在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11.如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了。

[root@localhost ~]# pwd     //判断用户当前所处的位置,也就是说他到底位于哪?
/root                       //用户当前位于/root.
[root@localhost ~]# cd /usr/share/doc/     //我们以绝对路径方式进入/usr/share/doc目录下。
[root@localhost doc]# pwd          //判断用户当前所处的位置。
/usr/share/doc               //用户位于/usr/share/doc,看来已经达到我们的目的了。

2. 相对路径

相对路径是以 . 或 .. 开始的,. 表示用户当前操作所处的位置,而.. 表示上级目录;在路径中,. 表示用户当前所处的目录,而.. 上级目录,要把. 和.. 当做目录来看。

[root@localhost ~]# pwd            //通过pwd来判断当前用户所在的位置。
/root                              //得出目录处于/root目录中。
[root@localhost ~]# cd .           //我们进入。
[root@localhost ~]# pwd            //判断当前用户所处的位置。
/root                              //得出在/root 目录中 .
[root@localhost ~]# cd ..          //我们切入/root的上级目录。
[root@localhost /]# pwd            //判断当前用户所处的位置。
/                                  //用户当前位于/(根目录)中。

touch命令:创建新的空文件

[root@localhost test]# touch log2012.log log2013.log
[root@localhost test]# ll
-rw-r–r– 1 root root 0 10-28 16:01 log2012.log
-rw-r–r– 1 root root 0 10-28 16:01 log2013.log

目录结构(目录的含义)

1、/- 根
每一个文件和目录从根目录开始。
只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样

2、/bin中 – 用户二进制文件
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
例如:ps、ls、ping、grep、cp

3、/sbin目录 – 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

4、/etc – 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。

5、/dev – 设备文件
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

6、/proc – 进程信息
包含系统进程的相关信息。
这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。
这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime

7、/var – 变量文件
var代表变量文件。
这个目录下可以找到内容可能增长的文件。
这包括 – 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

8、/tmp – 临时文件
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。

9、/usr – 用户程序
包含二进制文件、库文件、文档和二级程序的源代码。
/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

10、/home – HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita

11、/boot – 引导加载程序文件
包含引导加载程序相关的文件。
内核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

12、/lib – 系统库
包含支持位于/bin和/sbin下的二进制文件的库文件.
库文件名为 ld*或lib*.so.*
例如:ld-2.11.1.so,libncurses.so.5.7

13、/opt – 可选的附加应用程序
opt代表可选的。
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。

14、/mnt – 挂载目录
临时安装目录,系统管理员可以挂载文件系统。

15、/media – 可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

16、/srv – 服务数据
srv代表服务。
包含服务器特定服务相关的数据。
例如,/srv/cvs包含cvs相关的数据。

[root@localhost ~]# ll /
total 40
lrwxrwxrwx.   1 root root    7 Nov 10 16:35 bin -> usr/bin
dr-xr-xr-x.   3 root root 4096 Nov 10 08:48 boot
drwxr-xr-x.  19 root root 3160 Apr 18 04:07 dev
drwxr-xr-x. 134 root root 8192 Apr 17 20:06 etc
drwxr-xr-x.   5 root root   54 Apr 16 11:33 home
lrwxrwxrwx.   1 root root    7 Nov 10 16:35 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 10 16:35 lib64 -> usr/lib64
drwxr-xr-x.   3 root root   18 Feb  9 09:14 media
drwxr-xr-x.   4 root root   34 Feb  8 11:20 mnt
drwxr-xr-x.   3 root root   15 Nov 10 16:42 opt
dr-xr-xr-x. 554 root root    0 Apr 17 20:05 proc
dr-xr-x---.  15 root root 4096 Apr 18 04:08 root
drwxr-xr-x.  37 root root 1200 Apr 18 04:07 run
lrwxrwxrwx.   1 root root    8 Nov 10 16:35 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Mar 13  2014 srv
dr-xr-xr-x.  13 root root    0 Apr 17 20:05 sys
drwxrwxrwt.  87 root root 8192 Apr 18 04:08 tmp
drwxr-xr-x.  14 root root 4096 Nov 30 06:56 usr
drwxr-xr-x.  24 root root 4096 Apr 17 20:05 var
[root@localhost ~]#

文件操作

文件类型 描述
d 表示目录
表示文件
l 链接文件
b 设备文件,提供存储的接口设备
c 设备文件,提供串行的接口设备(鼠标、键盘)
文件操作 单一来源 多来源
创建文件 touch file1 touch file1 file2 file3
复制文件 cp file1 file2 cp file1 file2 file3 dir ⑤
移动文件 mv file1 file2 ① mv file1 file2 file3 dir ④
删除文件 rm file1 rm -f file1 file2 file3 ⑤
创建目录 mkdir dir mkdir -p par1/par2/dir ⑥
复制目录 cp -r dir1 dir2 ② cp -r dir1 dir2 dir3 dir4 ④
移动目录 mv dir1 dir2 ③ mv dir1 dir2 dir3 dir4 ④
删除目录 rm -r dir1 ② rm -rf dir1 dir2 dir3 ⑤
注: 备注:
① 结果为重命名
② 需要使用“递归”选项处理来源目录
③ 如果dir2存在,则结果为移动。如果dir2不存在,则结果为重命名。
④ 最后一个参数必须是目录
⑤ 请谨慎使用“force”选项,系统将不会提示您确认操作
⑥ 使用“创建父级”选项时应小心;无法捕获键入错误。

文件查看

命令 描述
cat 查看文件内容
nl 显示内容的时候,顺便显示行号
tac 从最后一行开始显示
head 显示文件前10行 -n:设置行数
tail 显示文件尾10行 -n:设置行数
wc 显示文件的行数,数字,字节

cat命令:显示文件内容(内容较少的文件)
-A:整合命令-vET
-b:列出行号,但是空白行不标志行号
-E:将结尾的断行字符($)显示出来
-n:列出行号,空白行也会标志行号
-T:将tab按键以^I显示
-v:列出一些看不来的特殊字符

[root@localhost ~]# cat -Ab /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash$
     2	bin:x:1:1:bin:/bin:/sbin/nologin$
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin$
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin$
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
     6	sync:x:5:0:sync:/sbin:/bin/sync$
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$
     8	halt:x:7:0:halt:/sbin:/sbin/halt$
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$
    10	operator:x:11:0:operator:/root:/sbin/nologin$
    11	games:x:12:100:games:/usr/games:/sbin/nologin$
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin$
    .........省略.........
    32	pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin$
    33	gdm:x:42:42::/var/lib/gdm:/sbin/nologin$
    34	gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin$
    35	postfix:x:89:89::/var/spool/postfix:/sbin/nologin$
    36	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin$
    37	tcpdump:x:72:72::/:/sbin/nologin$
[root@localhost ~]# 

more命令:查看文件内容(内容较多的文件,一页一页的翻动)

是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more

空格:向下翻一页
回车:向下翻一页
/字符串:查找字符串
:f:立即显示文件名和行数
b:翻到第一页
q:离开

less命令:查看文件内容

less的功能和more相似,但是使用more无法向前翻页,只能向后翻,而less可以任意切换

空格:向下翻一页
pagedown:向下翻一页
pageup:向上翻一页
?:搜索字符串
n:重复前一个搜索
N:反方向重复前一个搜索
q:离开

head命令:显示文件头几行
tail命令:显示文件尾几行
-n:指定显示几行,默认是10行

日志文件:/var/log/message 我们只需要看尾部的最新的几行即可。

查看用户文件前十行

[root@localhost ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

查看日志文件后5行

[root@localhost ~]# tail -5 /var/log/messages
Apr 18 19:52:03 localhost fprintd: ** (fprintd:3826): WARNING **: fprint init failed with error -99
Apr 18 19:52:03 localhost systemd: Started Fingerprint Authentication Daemon.
Apr 18 19:52:03 localhost systemd: fprintd.service: main process exited, code=exited, status=157/n/a
Apr 18 19:52:03 localhost systemd: Unit fprintd.service entered failed state.
Apr 18 19:52:06 localhost su: (to root) raohenglei on pts/0
[root@localhost ~]#

wc命令:显示文件的行数,字数,字节

-c:只显示字节
-w:只显示字数
-l:只显示行

[root@localhost ~]# wc /var/log/messages
  4349  49307 376145 /var/log/messages
[root@localhost ~]# 

vim编辑器

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是自由软件。Vim编辑器中设置了三种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率。

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。

在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。

Vim编辑器中内置的命令有成百上千种用法,为了能够帮助读者更快地掌握Vim编辑器,在命令模式中最常用的一些命令。

命令 作用
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面

末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。

命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two
:s/one/two/g 将当前光标所在行的所有one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串

软链接和硬链接

简而言之:
软链接相当于windows中的快捷方式
硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外一处数据如果被删除了,不会影响到另一处的数据.

软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接

硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建

硬链接的原理:在存储器中只存储了一份数据,而被链接文件和链接文件其实都是对这一份数据的引用,所以这份数据就会有最小为2的引用计数,所以才会删除两个文件中的任意一个,删除的都是引用计数,不会影响这一份数据,而另外的一个引用照样可以访问这份数据。如果另外一个引用也被删除了,那么引用计数就为0,在Linux中,一旦引用计数为0,则认为该数据被删除了,这时数据就会被彻底清空,从这一点看和cp命令还是有点区别的。

[root@linux00 ~]$ touch f1 #创建一个测试文件f1
[root@linux00 ~]$ ln f1 f2 #创建f1的一个硬连接文件f2
[root@linux00 ~]$ ln -s f1 f3 #创建f1的一个符号连接文件f3

关机操作

关机需要注意的事项:
– 观察系统的使用状态
– 通知在线使用者关机的时间
– 正确的关机指令使用

关机指令
– 数据同步写入磁盘-sync
– 常用的关机指令:shutdown
– 重启、关机:reboot,halt,poweroff

shutdown命令:关机
-t 添加秒数,几秒后关机
-k 不是真关机,而是发出告警信息
-r 在系统服务都停止后,重启
-h 在系统服务都停止后,关机
-f 关闭并且开机以后,强行略过磁盘检查
-F 重启后,强制进行磁盘检查
-c 取消已经在进行的shutdown指令内容

指定现在立即关机:

[root@linux00 ~]$ shutdown -h now

指定5分钟后关机,同时送出警告信息给登入用户:

[root@linux00 ~]$ shutdown +5 “System will shutdown after 5 minutes”

常用关机操作:

[root@linux00 ~]$ shutdown -h now //立即关机
[root@linux00 ~]$ shutdown -h 12:00 //12:00关机
[root@linux00 ~]$ shutdown -h +10 //在10分钟以后进行关机
[root@linux00 ~]$ shutdown -r now //马上重启
[root@linux00 ~]$ shutdown -r +30 ‘the system will reboot’ //告诉使用者30分钟以后重启
[root@linux00 ~]$ shutdown -k now ‘this system will reboot’ //马上告诉使用者马上重启,但是不会重启
[root@linux00 ~]$ shutdown -c //取消关机

帮助命令(man)

在命令行终端中输入man man命令来查看man命令自身的帮助信息,敲击回车键后即可看到的帮助信息。

man命令中常用按键以及用途

按键 用处
空格键 向下翻一页
PaGe down 向下翻一页
PaGe up 向上翻一页
home 直接前往首页
end 直接前往尾页
/ 从上至下搜索某个关键词,如“/linux”
? 从下至上搜索某个关键词,如“?linux”
n 定位到下一个搜索到的关键词
N 定位到上一个搜索到的关键词
q 退出帮助文档

一般来讲,使用man命令查看到的帮助内容信息都会很长很多,如果读者不了解帮助文档信息的目录结构和操作方法,乍一看到这么多信息可能会感到相当困惑。man命令的帮助信息的结构如下所示。

man命令帮助信息的结构以及意义

结构名称 代表意义
NAME 命令的名称
SYNOPSIS 参数的大致使用方法
DESCRIPTION 介绍说明
EXAMPLES 演示(附带简单说明)
OVERVIEW 概述
DEFAULTS 默认的功能
OPTIONS 具体的可用选项(带介绍)
ENVIRONMENT 环境变量
FILES 用到的文件
SEE ALSO 相关的资料
HISTORY 维护历史与联系方式