目录
一、Linux哲学思想
1. 一切都是一个文件。(包括硬件,文本,二进制,源代 码)
2. 系统中拥有小型,单一用途的程序。(一个程序只负责 做好自己的本职工作)
3. 当遇到复杂任务,通过不同功能用途的程序组合起来 完成。 轻量级,一台服务 dhcp ip 数据库 服务网页
4. 避免令人困惑的用户界面就是没有复杂的图形界面。
5. 连配置文件都存储在文本中,方便增删改查。
6. 不在乎后缀名,有没有都无所谓,不是通过后缀名来 定义文件的类型。
二、shell定义
shell是Linux系统中后台运行的一种特殊程序也可以理解 成一种特殊的软件,提供了用户与内核进行交互操作的 一种接口。
用户使用应用程序发布指令比如 (使用浏览器访问网 页) shell去通知操作系统需要进行什么样的操作(相当于解 释层) 内核相当于操作系统去指挥硬件 硬件才能工作,否则无法交互。
三、shell内外部命令
shell 分为内部命令 和外部命令,一般先执行内 部命令,hash 再执行外部命令(别名最大)
内部命令 | 外部命令 |
集成于Shell解释器程序内部 的一些特殊指令,也称为内 建(Built-in)指令 | Linux系统中能够完成 特定功能的脚本文件 或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序 之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了 系统中的一个文件 |
自动载入内存,可以直接使 用 | 必须知道其对应的文 件位置,由Shell加载 后才能执行 |
四、基础知识
[root@localhost ~]#
[zhangsan@localhost root]$
[zhangsan@localhost root]$ hostname
localhost.localdomain
[zhangsan@localhost opt]$
root //表示用户
localhost //主机名
~ //家目录
# //管理员用户
$ //普通用户
root //root的家目录
opt //opt目录
#关机命令:
1、halt //立刻关机
2、poweroff //立刻关机
3、shutdown -h now //立刻关机(root用户使用)
4、shutdown -h 10 //10分钟后自动关机
#重启:
reboot
init6
shutdown -r now
#修改语言
修改LANG变量实现中文语言提示
[root@localhost ~]# LANG=zh_CN.UTF-8
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# LANG=en_US.UTF-8
[root@localhost ~]# echo $LANG
en_US.UTF-8
#修改颜色
[root@localhost ~]#vim .bashrc
PS1='[\e[1;34m][\u@\h \W]$[\e[0m]'
五、不同的shell环境
(1)bash是linux里面默认的shell程序,位于/bin/bash。csh、ksh 语言不同,比如中文英文都是交流的语言。
[root@localhost ~]# echo $SHELL //显示当前shell
/bin/bash
[root@localhost ~]# cat /etc/shells //显示当前系统所有使用的shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost mnt]# sh //切换shell环境
sh-4.2#
[root@localhost mnt]# pstree //查看使用过的shell环境
├─sshd───sshd───bash───csh───bash───tcsh───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
├─upowerd───2*[{upowerd}]
├─vmtoolsd───{vmtoolsd}
├─wpa_supplicant
└─xdg-permission-───2*[{xdg-permission-}]
(2)help命令可以查看内部命令
(3)可以使用 type 命令来区分内外部命令
[root@localhost /]# type cd //内嵌代表内部命令
cd 是 shell 内嵌
[root@test1 /]# type -a ls //别名代表外部命令,外部命令会有程序路径
ls 是 `ls --color=auto' 的别名
ls 是 /usr/bin/ls
[root@localhost /]# whereis ls //whereis 可以查找命令具体的位置所在
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# type -a echo
echo 是 shell 内嵌
echo 是 /usr/bin/echo
(4)hash缓存空间
[root@localhost mnt]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root:/root/bin
[root@localhost mnt]# mv /usr/bin/ls /usr/local/bin
[root@localhost mnt]# ls
-bash: /usr/bin/ls: 没有那个文件或目录
[root@localhost mnt]# hash
命中 命令
1 /usr/bin/mv
2 /usr/bin/ls
6 /usr/bin/cd
[root@localhost mnt]# hash -d ls
[root@localhost mnt]# ls
1.5.txt f15..txt f1.txt f3.txt f5.txt
15..txt f15...txt f2.txt f4.txt
[root@localhost mnt]# hash
命中 命令
1 /usr/bin/mv
1 /usr/local/bin/ls
6 /usr/bin/cd
(5)编辑Linux命令行的基本操作
快捷键 | 功能 |
Tab 键 | 自动补齐(两次可以显示所有选项) |
反斜杠“\” | 强制换行或转义 |
Ctrl+a | 光标移到最前 |
Ctrl+e | 光标移到最后 |
Ctrl+U | 清空至行首不包括当前光标处的 字符 |
Ctrl+K | 清空至行尾包括当前光标处的字符 |
Ctrl+w | 从当前光标删除到开头 |
ALT+d | 从当前光标删除末尾 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
向上下箭头 | 回看执行过的命令 |
(6)man
man分九个章节默认打开第一章节。
查看命令:man 1 命令/可执行程序 (1可以省略不写,因为默认打开第一章节)
[root@localhost ~]# whatis ls
ls (1) - 列目录内容
1代表第一章手册
ls (1p) - list directory contents
1p 代表开发程序使用
[root@localhost ~]# whatis passwd //可以查看命令的章节
passwd (5) - (未知的主题)
sslpasswd (1ssl) - compute password hashes
passwd (1) - update user's authentication tokens
[root@localhost ~]# man 5 passwd //查看第五章内容,第5章一般是配置文件格式详细解释
[root@localhost ~]# man 7 ascii
[root@localhost ~]# man 7 UTF-8
[root@localhost ~]# mandb //生成man数据库,man命令无效时
正在删除 /usr/share/man 里的旧数据库条目...
mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略错误的文件名
正在处理 /usr/share/man 下的手册页...
正在删除 /usr/share/man/hu 里的旧数据库条目...
正在删除 /usr/share/man/pl 里的旧数据库条目...
[root@localhost ~]# man man
该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖 MANSECT 环境变量。
有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区 段,你可以在此指定 man
查找区段的顺序。具体区段划分如下所示:
区段1:用户指令
区段2:系统调用
区段3:程序库调用
区段4:设备
区段5:文件格式 shadow passwd fstab
区段6:游戏
区段7:杂项
区段8:系统指令
区段9:内核内部指令
区段n:Tcl或Tk指令