Linux命令行简介
前言
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号
- history 查看历史命令的记录
-
别名
-
alias
- 临时设置别名
$ alias ip_addr="ip a s eth0 |awk 'NR==5 {print $2}' |awk -F '/' '{print $1}'"
- 取消别名
$ unalias ip_addr
-
永久设置别名
在
~/.bashrc
或者~/.bashrc
中设置
-
命令行结构
root@test1: ~ #
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\]\$ '
命令行结构
[root@qls ~]#
root #当前登录的用户名
@ #分隔符
qls #主机名
~ #位置表示当前路径,本身表示当前用户的家目录
# #超级管理员的命令行提示符
$ #普通用户的命令行提示符
[oldboy@qls ~]$
命令的语法结构
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
常用快捷键
移动光标类
快捷键 | 功能 |
---|---|
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
inet 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
匹配来源:
文件名 :/sbin/ifconfig
$ yum -y install net-tools-2.0-0.25.20131004git.el7.x86_64
$ ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 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