前言
Linux 历史
Linux 应用领域
1. 嵌入式开发
2. 服务器端
3. 个人 PC 桌面
FSF
自由软件基金会
GNU 项目 (GNU is not Unix)
- bash gcc Emacs hurd gawk
- GPL
通用公共许可协议
1. 开源的, 可自由传播的
2. 可任意修改, 必须把修改之后的源代码发布出来
Linux 发行版本
- RedHat
- CentOS
- Ubuntu
- Fedora
- SUSE
- FreeBSD
- Debian
CentOS 版本
5 系列
6 系列
7 系列 7.6
网卡命令规则
net.ifnames=0
分区规则
- /boot #引导分区 500-1024MB
- swap #虚拟内存分区物理内存的 1-2 倍, 峰值 16G
- / #主分区, 剩余多少给多少
快照和克隆
开机状态
挂起状态
关机状态
都可以做快照, 克隆只能克隆关机转态的快照
克隆
链接克隆 占有磁盘空间小, 基于宿主机
完整克隆 占用磁盘空间大, 完全独立
远程连接工具
- Xshell
- secureCRT
- putty
- iTerm2
xshell 5 安装
注册码 : 690313-111999-999313
插件 xmanager 注册码: 101210-450789-147200
bash shell
什么是 bash shell
把用户输入的命令翻译成内核, 把执行的结果输出到屏幕上面
执行方式
命令
shell scripts
特性
tab 命令补全
选项补全
参数补全
历史命令
history 查看历史命令的记录
-c 清空所有历史命令
-w 把历史命令放在文件中 ~/.bash_history
-d 指定删除历史的 id 号
别名
alias
临时设置别名
$ alias ip_addr="ip a s eth0 |awk'NR==5 {print $2}'|awk -F'/''{print $1}'"
取消别名
$ unalias ip_addr
永久设置别名
在 ~/.bashrc 或者~/.bashrc 中设置
命令行结构
- [email protected]: ~ #
- root # 当前登录的用户名
- @ #分隔符
- test1 #主机名
- ~ #位置标示当前路径, 本身标示当前用户的家目录
- # # 超级管理员的命令行提示符
- $ # 普通用户的命令行提示符
设置命令行结构
- # 全局设置 /etc/bashrc
- VIM /etc/bashrc
- export PS1='\[\e[01;33m\]\[\e[01;32m\]\u\[\e[01;33m\]@\[\e[01;35m\]\h:\[\e[01;33m\] \[\e[01;36m\]\w \[\e[01;32m\]\$'
- # 局部设置 (设置当前用户的命令行结构)
- VIM .bash_profile
- export PS1='\[\e[01;33m\]\[\e[01;32m\]\u\[\e[01;33m\]@\[\e[01;35m\]\h:\[\e[01;33m\] \[\e[01;36m\]\w \[\e[01;32m\]\$'
命令行结构
- [[email protected] ~]#
- root #当前登录的用户名
- @ #分隔符
- qls #主机名
- ~ #位置表示当前路径, 本身表示当前用户的家目录
- # #超级管理员的命令行提示符
- $ #普通用户的命令行提示符
- [[email protected] ~]$
命令的语法结构
ls [OPTION]... [FILE]...
ls 命令
[OPTION] 选项
[FILE] 参数, 一般参数都是文件的绝对路径或者相对路径
- $ ls-l
- -bash: ls-l: command not found #命令找不到
1. 命令和选项和参数之间至少要有一个空格.
2. 选项前面有短横杠和长横杠
报错和命令总结
command not found
命令找不到
解决:
1. 命令写错了, 从新写入正确的命令
2. 系统没有安装此命令, 需要下载安装才能使用, yum
No such file or directory
没有这个文件或目录
解决:
1. 参数或者路径写错了
2. 写对了, 说明这个文件或者目录被删除
3. 路径不对
查看命令的帮助信息
man
可以查看所有命令的详细帮助信息
>>> 查看命令的详细信息
$ man cd
>>> 模糊搜索包含 cd 字段的命令的描述
- $ man -k cd
- cd (1) - bash built-in commands, see bash(1)
- perlebcdic (1) - Considerations for running Perl on EBCDIC platforms
- rsyncd.conf (5) - configuration file for rsync in daemon mode
- Unicode::UCD (3pm) - Unicode character database
- utf8 (3pm) - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code
>>> 搜索 cd 命令的描述
- $ man -f cd
- cd (1) - bash built-in commands, see bash(1)
- help
只能看内置命令的帮助信息, help 命令可以查看所有的内置命令
使用选项查看帮助信息
- $ ss --help
- Usage: ss [ OPTIONS ]
- ss [ OPTIONS ] [ FILTER ]
- -h, --help this message
- -V, --version output version information
- info
- $ info cd
查看命令帮助信息的网站
Linux 命令大全 https://man.linuxde.net/ (推荐)
Linux http://liunx.web3.xin/item/
Linux 命令手册 http://linux.51yip.com/
常用快捷键
移动光标类
快捷键 | 功能 |
---|---|
ctrl+a | 光标回到命令行首 |
ctrl+e | 光标回到命令行尾 |
ctrl+f | 光标向右移动一个字符(相当于方向键右键) |
ctrl+b | 光标向左移动一个字符(相当于方向左键) |
剪切, 粘贴, 清除快捷键类
快捷键 | 功能 |
---|---|
ctrl+k | 剪贴(删除)光标处到行尾的字符 |
ctrl+u | 剪贴(删除)光标处到行首的字符 |
ctrl+w | 剪贴(删除)光标前的一个单词,在 Linux 系统中每个单词间以空格间隔 |
ctrl+y | 粘贴 ctrl+u/ctrl+k/ctrl+w 删除的文本 |
ctrl+h | 删除光标所在处的前一个字符(相当于退格键) |
操作终端类
快捷键 | 功能 |
---|---|
ctrl+c | 退出当前命令行 |
ctrl+d | 退出当前终端 |
ctrl+r | 搜索命令行使用过的命令记录 |
ctrl+g | 从 ctrl+r 的模式中退出 |
ctrl+l/clear | 清屏,在屏幕最上方开始一个新行 |
ctrl+z | 暂停执行在终端运行在终端运行的任务 |
ctrl+s | 锁定终端,无法输入(mac 键盘可能无法识别) |
ctrl+q | 解锁 ctrl+s 运行的锁定状态 (mac 键盘可能无法识别) |
- >>> ctrl+c
- $ systemctl restart^C
- $ systemctl restart sshd^C
- >>> ctrl+d
- $
$ 登出
- Connection to cjw_test closed.
- >>> ctrl+r
- $
- (reverse-i-search)`system': systemctl restart sshd
- >>> ctrl+g
- (reverse-i-search)`system': systemctl restart sshd
- $
其他类
快捷键 | 功能 |
---|---|
!! | 执行上一条命令 |
!$ | 获取上一条命令的最后一个参数 |
esc+. | 获取上一条命令的最后一个参数 |
esc+b | 移动到当前单词的开头 |
esc+f | 移动到当前单词的结尾 |
基础命令
字符集相关
- $ cat /etc/locale.conf
- LANG=en_US.UTF-8
- $ echo $LANG
- zh_CN.UTF-8
- $ set |grep LANG
- LANG=zh_CN.UTF-8
关机和重启命令
重启命令
命令 | 说明 |
---|---|
reboot | 立即重启 |
Shutdown -r now | 立即重启 |
Shutodown -r +1 | 1 分钟后重启 |
init 6 | 切换得到运行级别 6,运行级别 6 表示重启 |
关机命令
命令 | 说明 |
---|---|
shutdown -h now | 立刻关机 |
Shutdown -h +1 | 1 分钟后关机,1 可以是别的数字或时间点,例如:11:00 |
halt | 立即停止系统,需要人工关闭电源 |
init 0 | 切换到运行级别 0 , 0 表示关机 |
poweroff | 立即停止系统并关闭电源 |
注销命令
命令 | 说明 |
---|---|
logout | 注销退出当前终端 |
exit | 注销退出当前终端, 快捷键 ctrl+d |
显示 ip 地址命令
- ip
- $ ip a s ens33
- 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
- link/ether 00:0c:29:15:7a:ec brd ff:ff:ff:ff:ff:ff
- .NET 192.168.142.23/24 brd 192.168.142.255 scope global noprefixroute ens33
- valid_lft forever preferred_lft forever
- inet6 fe80::cb5e:c3d7:eec:4dad/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
- ifconfig
- $ ifconfig
-bash: ifconfig: 未找到命令
$ yum provides */ifconfig
已加载插件: fastestmirror
- Loading mirror speeds from cached hostfile
- * base: ftp.sjtu.edu.cn
- * extras: ftp.sjtu.edu.cn
- * updates: ftp.sjtu.edu.cn
- net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源 :base
- $ yum -y install.NET-tools-2.0-0.25.20131004git.el7.x86_64
- $ ifconfig ens33
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- .NET 192.168.142.23 netmask 255.255.255.0 broadcast 192.168.142.255
- inet6 fe80::cb5e:c3d7:eec:4dad prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:15:7a:ec txqueuelen 1000 (Ethernet)
- RX packets 16797 bytes 18216200 (17.3 MiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 3949 bytes 842933 (823.1 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- hostname
- $ hostname -I
- 192.168.142.23
来源: http://www.bubuko.com/infodetail-3218492.html