Linux介绍
Linux 是一种自由和开放源码的类 UNIX 操作系统。
Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux 的发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个大包。
- 其他知名的发行版:CentOS、Ubuntu、RedHat、Debian、SolusOS、Fedora、SuSE、Arch Linux、OpenSUSE 等。
Linux命令
优点:
- 一切都是一个文件。(包括硬件,文本,二进制,源代码)
- 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
- 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
- 避免令人困惑的用户界面就是没有复杂的图形界面。
- 连配置文件都存储在文本中,方便增删改查。
- 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
基础知识:
root #表示用户
localhost #主机名
~ #家目录
# #管理员用户
$ #普通用户
root #root的家目录
opt #opt目录
[root@localhost ~]#
[zhangsan@localhost root]$
[zhangsan@localhost root]$ hostname
localhost.localdomain
[zhangsan@localhost 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\]'
1、 shell
1.1什么是shell(壳),怎么在硬件和用户之间翻译
1.1.1shell的定义
shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。 用户使用应用程序发布指令比如 (使用浏览器访问网页)
shell去通知操作系统需要进行什么样的操作(相当于解释层)
内核相当于操作系统去指挥硬件
硬件才能工作,否则无法交互。
1.1.2 不同的shell环境
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-}]
1.1.3 shell与内、外部命令
(1) shell 分为内部命令 和外部命令,一般先执行内部命令,再执行外部命令(别名最大)
- - 优先级:内部命令>hash>外部命令
| 内部命令 | 外部命令 |
|---|---|
| 集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
| 属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
| 没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
| 自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
(2)help命令可以查看内部命令
[root@localhost opt]# help
GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
这些 shell 命令是内部定义的。请输入 `help' 以获取一个列表.
输入 `help 名称' 以得到有关函数`名称'的更多信息.
使用 `info bash' 来获得关于 shell 的更多一般性信息
使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息.
(3)可以使用type 命令来区分内外部命令
cd 是 shell 内嵌 //内嵌代表内部命令
[root@test1 /]# type -a ls
ls 是 `ls --color=auto' 的别名 //别名代表外部命令
ls 是 /usr/bin/ls //外部命令会有程序路径
(5)hash缓存空间
hash -d 加缓存里的命令 单独删除
hash -r 删除所有
将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉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
2、命令行格式
- 在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都 可以称为命令。
- 严格来说,命令通常只代表实现某一类功能的程序的名称。
格式
命令字 空格 [选项] 空格 [参数]
解释命令字 选项 参数各自的意思及具体使用方法
- 命令字 是整条命令中最关键的一部分 唯一确定
- 选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“--”符号引导 通常完整的单词
- 参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个
;可以隔开命令,执行多个命令
编辑Linux命令行的辅助操作
| 快捷键 | 功能 |
|---|---|
| Tab 键 | 自动补齐(两次可以显示所有选项) |
| 反斜杠“\” | 强制换行或转义 |
| Ctrl+a | 光标移到最前 |
| Ctrl+e end 键 | 光标移到最后 |
| Ctrl+U | 清空至行首不包括当前光标处的 字符 |
| Ctrl+K | 清空至行尾包括当前光标处的字符 |
| Ctrl+w | 从当前光标删除到开头 |
| ALT+d | 从当前光标删除末尾 |
| Ctrl+l | 清屏 |
| Ctrl+c | 取消本次命令编辑 |
| Ctrl+s/Ctrl+q | 锁屏/解锁 |
| 向上下箭头 | 回看执行过的命令 |
3、获取命令帮助
3.1 help
格式说明
- []表示可选项
- CAPS或<>表示可变化的数据
- ...表示一个列表可加多个
- x|y|z 表示或的意思
- -abc 是-a -b -c (有些命令选项有先后顺序)
只能查看内部命令的 使用方法 tar -zxvf tar zxfv
[root@localhost ~]# help echo
#内部命令查看帮助
echo: echo [-neE] [参数 ...]
将参数写到标准输出。
在标准输出上显示 ARG 参数后跟一个换行。
选项:
-n 不要追加换行
-e 启用下列反斜杠转义的解释
-E 显式地抑制对于反斜杠转义的解释
`echo' 对下列反斜杠字符进行转义:
\a 警告(响铃)
\b 退格
\c 抑制更多的输出
\e 转义字符
\f 格式提供
\n 换行
\r 回车
\t 横向制表符
\v 纵向制表符
\\ 反斜杠
\0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
0到3个八进制数字
\xHH 以 HH (十六进制)为值的八比特字符。HH可以是
一个或两个十六进制数字
退出状态:
返回成功除非有写错误发生。
# -n 不换行显示
[root@localhost ~]# echo -n " 1 2 3"
1 2 3[root@localhost ~]#
[root@localhost ~]# echo -n "123456";echo "123456"
123456123456
# \b 删除前一个字符
[root@localhost ~]# echo -e " 1 2\b 3"
1 3
#\n换行
[root@localhost ~]# echo -e " 1\n 2\n 3"
1
2
3
#tab键叫制表符
[root@localhost ~]# echo -e " 1\t 2\t 3" tab键叫制表符
1 2 3
3.2 --help
查看外部命令帮助
[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
3.3 man
man分九个章节默认打开第一章节
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指令
3.4 info
info也可以查看相关的帮助信息
[root@localhost dev]# info ls
总结
1.Linux系统相对于Winodws系统比较简洁明了,只有指令
3.- 优先级:内部命令>hash>外部命令
2.如果忘记命令可以使用帮助命令进行查看命令,如果实在不行,可以借助百度!