为什么企业喜欢选择Linux系统搭建服务器?
Linux系统的优势:多用户多任务的系统,安全性更高 ,开源免费。
一、文件和目录的基本概念
1.1 Linux的目录结构
1
| 在 Linux 系统中,将所有的目录和文件数据组织为一个树型的目录结构,整个系统中,只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。
|

1.2 命令提示符
1 2 3 4 5 6 7
| root:当前登录的用户名 localhost:本机的主机名 ~:用户当前所在目录,~代表家目录 root用户的家目录是:/root 普通用户的家目录是:/home #:当前登录的用户为管理员用户 $:当前登录的用户为普通用户
|
1.3 用户之间的切换
1 2 3
| #注意: 1.由 root用户切换到普通用户不需要输入密码 2.由普通用户切换到其他用户就必须输入密码
|
1.4 显示当前目录所在的完整路径
1.5 目录的切换命令
1 2 3 4 5 6 7 8 9
| #比如: cd /etc 切换到/etc/目录 cd .. 返回到上一级目录 cd 返回到家目录 cd ~ 返回到家目录 cd - 返回到上一次所在目录 #注: 根目录:/ 家目录:普通用户的家目录在/home下面,root 的家目录是:/root
|
1.6 绝对路径和相对路径
1 2 3
| 相对路径:是当前目录下的某个文件或路径
绝对路径:是指目录或文件的完整路径
|
1.7 命令行编辑的几个常用辅助操作
1 2 3 4 5 6 7 8 9
| Tab键:自动补齐 分号“;”:在同一行中输入多个命令,中间用;隔开 反斜杠“\”:在一行命令后加上\,表示另起一行继续输入 上下方向键:找出曾经执行过的历史命令 查看历史命令:history 快捷键 Ctrl+U:清空至行首 快捷键 Ctrl+K:清空至行尾 快捷键 Ctrl+L:清屏 快捷键 Ctrl+C:终止命令的执行
|
1.8 关机命令——shutdown
1 2 3 4 5 6 7 8 9 10 11 12 13
| #shutdown命令,用于安全地将系统关机 shutdown 参数说明: [-t] 在改变到其它 runlevel之前﹐告诉 init多久以后关机。 [-r] 重启计算器。 [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 [-h] 关机后关闭电源〔halt〕。 [-n] 不用 init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后 果往往不总是你所预期得到的。 [-c] cancel current process 取消目前正在执行的关机程序。所以这个选项当然 没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。 [-f] 在重启计算器〔reboot〕时忽略 fsck。 [-F] 在重启计算器〔reboot〕时强迫 fsck。 [-time] 设定关机〔shutdown〕前的时间。
|
1 2 3 4 5 6 7 8 9
| #例子: /sbin/shutdown -h now-----立即关机; /sbin/shutdown -h 20:49----20:49分关机 /sbin/shutdown -h +10-----10分钟后关机 /sbin/shutdown -r now -----立即重启 /sbin/shutdown -r +10 ‘The system will reboot'----10分钟后系统,重启并给每个登录用户发通知 /sbin/shutdown -k now ‘The system will reboot'----仅给每个登录用户发通知并不真关机 reboot ----重启 init 6 ----重启
|
二、常用 shell 命令介绍
1
| shell 命令格式:命令名 [选项] [参数]
|
2.1 文件管理命令
1 2 3 4 5
| #命令ls,用于显示目录内容 选项说明: -a 显示所有文件,包括隐藏文件(以.号开头的文件)。 -l 以长格式(内容更详细)显示文件或目录的详细信息。 -h 以 K、M、G等单位显示文件大小(默认为字节),提高可读性
|
1 2 3 4 5 6
| #ls显示结果以不同的颜色来区分文件类别。 蓝色代表目录(文件夹) 灰色代表普通文件 绿色代表可执行文件 红色代表压缩文件 浅绿色代表链接文件(快捷方式)
|
2.2 通配符的使用
1 2 3
| “?”可以匹配文件名中的一个任意字符。
“*”可以匹配文件名中的任意多个字符。
|
1 2 3 4 5 6
| #例子 显示/etc目录下文件名以 ns开头,扩展名是 conf的文件的详细信息 ls –l /etc/ns*.conf
显示/etc目录下文件名以 v 开头,文件名一共是 4 个字符的文件的详细信息 ls –l /etc/v???
|
2.3 创建目录(就是新建文件夹):要考虑权限问题
1 2 3 4
| #命令mkdir,用于创建文件夹 选项说明: -p 用于递归创建文件夹 -m 后面接表示权限的数字,用于指定文件夹的权限
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| #例子 例 1:在目录mnt中创建名为 test的子目录 [root@localhost /]:#mkdir /mnt/test 例 2:在根目录中创建名为 public的子目录 [root@localhost /]:#mkdir /public 例 3:在当前目录中同时创建 3 个子目录 [root@localhost /]:#mkdir mp3 mp4 mp5 例 4:当前目录为/,此时在/mnt目录下同时创建 2个子目录 y1 y2 [root@localhost /]:#mkdir /mnt/{y1,y2} 例 5:创建连续目录 [root@localhost /]:#mkdir - p /media/cdrom 例 6:创建目录,同时设置权限 [root@localhost /]:#mkdir - m 775 test
|
2.4 删除目录或文件
1 2 3
| #命令rmdir,用于删除空目录 选项说明: -p 用于递归删除空文件夹
|
1 2 3 4
| 例 1:删除当前目录下的空目录 mytest [root@localhost /]:#rmdir mytest 例 2:删除连续目录 [root@localhost /]:#rmdir - p /media/cdrom/aa
|
1 2 3 4
| #命令rm,用于删除文件或目录 选项说明: -r 用于删除文件夹 -f 表示强制删除,不出现提示信息
|
1 2 3 4 5
| 例 1:删除当前目录下文件 1.txt [root@localhost /]:#rm 1.txt 有提示,确认删除请输入 y [root@localhost /]:#rm -f 1.txt 无提示,直接删除 例 2:删除当前目录下的 student目录 [root@localhost /]:#rm -rf /student
|
2.5 复制文件或目录
1 2 3
| #命令cp,用于复制文件或目录 选项说明: -R 用于复制递归复制目录,和目录下的子目录
|
1 2 3 4 5 6
| #例子: 复制文件 [root@localhost ~]# cp /bin/touch /root/test/toch1 [root@localhost ~]# cp /etc/inittab /etc/inittab.bat 将文件进行备份 复制目录 [root@localhost ~]# cp –R /tmp /root/mnt
|
2.6 移动(剪切–粘贴)文件或目录
1
| #命令mv,用于移动文件或目录,或者用于为文件或目录重命名
|
1 2 3
| #例子 [root@localhost ~]# mv /root/test/test1.txt /root/test/test2.txt 重命名 [root@localhost ~]# mv /root/test/test2.txt /tmp/ 移动
|
2.7 新建文件
1
| #命令touch,用于创建文件,并可设置文件的创建时间
|
1 2 3
| #例子 在/目录下新建一个 1.txt 文件 [root@localhost /]# touch /1.txt
|
三、查看文件内容
3.1 cat–显示文件的内容
1 2
| cat –n 显示行号 cat在显示文本文件的内容时不进行停顿,因此不适合查看长文件。
|
3.2 more/less–分页显示文件内容
1 2
| 采用全屏的方式分页显示文件内容,当内容满屏时便会暂停,按空格键 继续显示下一画面,或按 q 键跳离,适于阅读长文件。
|
1 2 3 4
| #more与less的区别: 当文件内容显示到文件尾时,more命令会自动退出阅读环境,而 less 命令不自动退出,需在提示符“:”后按 q键退出。 PgUp/PgDn:用于less命令翻页
|
3.3 head 和 tail–查看文件开头或末尾的部分内容
1 2 3
| 默认情况下,head显示前 10行内容,tail显示后 10行内容。 举例:查看/etc/inittab文件的前 3 行内容 查看/etc/inittab文件的后 5行内容
|
3.4 wc 命令——文件内容统计
1 2 3 4 5 6
| #命令wc,用于统计指定文件中的行数、单词数、字节数。 语法:wc(选项)(参数) 常用选项: -l 统计行数 -w 统计单词数 -c 统计字节数
|
四、查找命令
4.1 find 命令:搜索文件与目录
1 2 3 4 5 6 7 8 9 10 11 12
| 作用:是在某个指定的路径下找我们需要的文件或目录,目标是文件或目录。 类似于在 Windows系统中执行的“搜索”操作。
语法:find [查找范围] [查找条件表达式]
常用选项: -name 按名称查找,允许使用通配符。 -type 按文件类型查找文件类型包括:普通文件(f)、目录(d)、块设备 文件(b)、字符设备文件(c) -user 按文件所有者查找,根据文件是否属于某个目标用户进行查找。 -size 按文件大小查找,使用“+”、“-”号设置超过或小于指定的大小 作为查找条件。常用的容量单位包括 k(注意是小写)、M、G
|
1 2 3
| #例子 find /etc -size +1024k -name "init*" find /etc -name 1.txt
|
4.2 grep 命令:查找文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 作用:是在某个文件中找我们所需要的某部分内容,目标是字符串。则类似于在 WORD中执行的“查找”操作。
语法:grep [选项] 查找条件 目标文件
常用选项: -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! --color=auto :可以将找到的关键词部分加上颜色的显示!
注意:grep 不支持通配符,而是使用正则表达式: ^ 表示以什么字符开头 $ 表示以什么字符结尾 如:“^word”表示以“word”开头 “word$”表示以“word”结尾 “^$”表示空行
|
五、其他辅助命令
5.1 查看历史命令:history
1 2 3 4 5 6 7
| 作用:linux 的 history命令的作用是,记录执行过的命令。 用法:history [n] n为数字,列出最近的 n条命令
使用! 执行历史命令。 ! number 执行第几条命令 ! command 从最近的命令查到以 command开头的命令执行 !! 执行上一条
|
5.2 help命令:只能查看内部命令的帮助信息
1 2 3 4 5
| 举例:查看 pwd命令的帮助信息 pwd --help 如果使用 help命令查看外部命令的帮助信息时则会报错
使用--help选项查以查看外部命令的帮助信息
|
5.3 man命令:查看命令的帮助手册
1 2 3
| 使用“↑ ”、“↓ ”方向键滚动文本 使用 Page Up 和 Page Down键翻页 按 Q 或 q 键退出阅读环境、按“/”键后查找内容
|
5.4 输入输出重定向
1 2
| #什么是重定向: Linux系统中标准的输入设备为键盘,标准输出设备为屏幕,但在某些情况下,我们希望能从键盘以外的其他输入设备读取数据,或者将数据送到屏幕外的其他输出设备,这种情况称为重定向。
|
1 2 3 4 5 6 7
| 输入重定向:< 输出重定向:>或>> 输出重定向是将命令的输出结果重定向到一个文件中,而不是显示在屏幕上。 “>”后面指定的文件如果不存在,将先建立该文件,再保存命令结果到文件中。 “>”后面指定的文件如果存在,将先清空文件的内容,再保存命令结果到文件中。 “>>”可以将命令结果重定向并q追加到指定文件的末尾保存,而不覆盖文件中原有的内容。 为区分标准输出重定向和标准错误重定向,在标准错误重定向前添加2
|
1 2 3 4 5 6 7 8 9
| 举例:将 1.txt的内容输出重定向到 a.txt Cat 1.txt > a.txt 将 1.txt的内容追加到 a.txt
将错误信息输出到文件 ls /etc/hhh 2> erro cat > newfile ls > newfile cat > newfile < 1.txt
|
5.5 管道符“|”
1 2
| 通过管道符“|”,可以把多个简单的命令连接起来实现更加复杂的功能。 管道符用于将“|”左边命令的执行结果作为“|”右边命令的输入。
|
1 2 3 4 5 6 7 8 9
| #例子 [root@localhost ~]# ls -lh /etc | more 分页显示/etc目录下所有文件和子目录的详细信息。 [root@localhost ~]# ls -lh /etc | grep net 显示/etc目录下包含有“net”关键字的所有文件和子目录的详细信息。 [root@localhost ~]# ls -l /etc/*.conf | wc –l 统计/etc目录下所有以“.conf”结尾的文件的个数。 [root@localhost~]#grep-v “^#” /etc/httpd/conf/httpd.conf| gerp –v “^$” 查看/etc/httpd/conf/httpd.conf文件中除了以“#”开头的行和空行以外的内容。
|
5.6 clear命令–清屏
六、文件权限
6.1 文件属性说明

1 2 3 4 5 6 7 8 9 10 11
| 第 1 组:文件类型,其中第一个字符代表文件的类别。 - 普通文件 d 目录 l 符号链接 c 字符设备 b 块设备 文件的权限 r:可读 w:可写 x:可执行 -:没有权限 第 2 组:文件件的连接数 第 3 组:文件所有者 第 4 组:文件属组 第 5 组:文件大小,默认单位为字节 第 6 组:文件创建时间 第 7 组:文件名称
|
6.2 修改文件的权限:chmod
6.2.1 字母方式修改权限
1 2 3 4
| 文件所有者权限(u) 所属组权限(g) 其他用户权限(o) 所有用户(a)
|
1 2 3 4 5
| 举例:/mnt 的权限是 drwxr-x--- chmod u-w /mnt 权限变为:dr-xr-x--- chmod o+rx /mnt 权限变为:dr-xr-xr-x chmod g+w /mnt 权限变为:dr-xrwxr-x chmod a+w /mnt 权限变为:drwxrwxrwx
|
6.2.2 数字方式修改权限
6.3 修改文件的所有者与所属组:chown
1 2 3
| 举例:chown teacher:teacher /test1 同时修改所有者与所属组 chown root /test1 修改所有者 chown :student /test1 修改所属组
|
6.4 特殊权限
6.4.1 ACL
1
| ACL:访问控制【针对其他用户当中的部份或个别用户设置特殊权限】
|
1 2 3 4 5 6 7
| setfacl -m u:stu1:rwx A 创建一个 ACL规则,使 stu1 用户对 A 目录具有 rwx 权限 getfacl A 查看 ACL规则 setfacl -x u:stu3 A 删除 stu3 对 A 目录的 ACL权限,只删除了一条规则 setfacl -b A 删除 A目录的所有 ACL规则
|
6.4.2 SBIT
1
| 粘滞位权限(强制位权限)【针对其他用户,只能删除自己的文件,不能删除其他的用户的文件】
|
6.4.3 SUID
6.4.4 SGID
七、链接文件
7.1 软连接
1
| 概念:软连接,是链接文件本身,可以理解为快捷方式,软链接对象指向源文件的地址,源文件再指向具体的物理地址,因此可以在不同的分区中创建软链接。当删除软连接对象时,不影响源文件的使用,当删除源文件时,链接对象失去作用。
|
1 2 3
| 创建软连接: ln -s 源文件 链接文件 如:ln -s /root/test.txt testlink
|
7.2 硬链接
1
| 概念:硬链接,使用inode链接,可以理解为硬链接对象和源文件指向同一块物理地址,因此只能在同一个分区使用。删除一处文件,不影响另外一处文件的使用。
|
1 2 3
| 创建硬链接: ln 源文件 链接文件 如:ln /root/test.txt testlink
|
八、命令别名
1 2 3
| 为什么会有命令别名? 因为有时一些常用的命令比较长,导致使用不方便,这个时候就可以使用命令别名,简化使用。 如:ll命令其实就是'ls -l --color=auto'的别名,执行ll,就相当于执行ls -l --color=auto
|
8.1 定义命令别名
1 2 3
| alias 别名='命令' 如: alias li='cat /etc/passwd'
|
8.2 删除命令别名
1 2 3
| unalias 别名 如: unalias li
|
8.3 查看系统中存在的命令别名
九、sudo提权
1
| sudo提权,指sudo根据指定的安全策略,让一个用户以其他用户的身份执行某个命令
|
9.1 sudo的配置文件
9.2 sudo配置
1 2 3
| 格式: 用户 主机=(身份) NOPASSWD:能执行的命令列表 含义: 某个用户可以以那些身份在那些主机上通过sudo提权的方式执行某些命令,NOPASSWD表示不需要输入其他身份的密码
|
1 2 3 4 5 6
| Cmd Alias NETADMINCMD=/usr/bin/passwd,/usr/sbin/useradd
root ALL=(ALL) ALL user1 ALL=(ALL) /usr/bin/passwd,/usr/sbin/useradd user2 ALL=(ALL) NOPASSWD:/usr/bin/passwd,/usr/sbin/useradd user3 ALL=(ALL) NETADMINCMD
|
9.3 如何提权
十、VI/VIM
参考菜鸟教程中的教程