Linux基础
计算机系统
- 硬件系统:主机,外部设备
- 软件系统:系统软件,应用软件
冯·诺依曼理论的要点
- 数字计算机的数制采用二进制,bit 位, byte 字节 1 byte =8 bit
- 计算机应该按照程序顺序执行
- 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成
二进制和十进制转换
2^0=1=1
2^1=2=10
2^3=8=1000
2^4=16=10000
2^5=32
2^6=64
2^7=128=10000000
2^8=256=100000000
2^9=512
2^10=1024
2^11=2048
2^12=4096
常见单位
10的18次方 E
10的15次方 P
10的12次方 T 二进制 2^40
10的 9次方 G 二进制 2^30
10的 6次方 M 二进制 2^20
10的 3次方 K 二进制 2^10=1024
10的 2次方 百
10的 1次方 十
10的-1次方 分 d
10的-2次方 厘 c
10的-3次方 m
10的-6次方 μ
10的-9次方 n
计算机划分(按规模)
- 超级计算机
- 大型计算机
- 小型计算机
- 微型计算机
操作系统的演变
- 单用户系统
- 批处理系统
- 多道程序系统
- 分时系统
- 个人计算机
- 分布式计算机
Linux的哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
用户类型
root 用户
- 一个特殊的管理帐户也被称为超级用户
- root已接近完整的系统控制
- 对系统损害几乎有无限的能力
- 除非必要,不要登录为 root
普通( 非特权 )用户
- 权限有限
- 造成损害的能力比较有限
终端类型
- 控制台终端: /dev/console
- 串行终端:/dev/ttyS#
- 虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
- 图形终端:startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端 - 伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接
Linux基础命令
显示提示符格式
[root@localhost ~]#echo $PS1
修改提示符格式
PS1="[e[1;5;41;33m][u@h W]\$[e[0m]" PS1="[e[1;32m][[e[0m] [e[1;33m]u[e[36m]@h[e[1;31m] W[e[1;32m]][e[0m]\$"
- e 控制符 33
- u 当前用户
- h 主机名简称
- H 主机名
- w 当前工作目录
- W 当前工作目录基名
- 24小时时间格式
- T 12小时时间格式
- ! 命令历史数
- # 开机后命令历史数
执行命令
在shell中可执行的命令有两类
-
内部命令:由shell自带的,而且通过某命令形式提供
-
help 内部命令列表
-
enable cmd 启用内部命令
-
-
enable –n cmd 禁用内部命令
- enable –n 查看所有禁用的内部命令
-
外部命令:在文件系统路径下有对应的可执行程序文件
-
查看路径:
- **which -a |--skip-alias **
- whereis
区别指定的命令是内部或外部命令
- type COMMAND
执行外部命令
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率
hash常见用法
- hash 显示hash缓存
- hash –l 显示hash缓存,可作为输入使用
- hash –p path name 将命令全路径path起别名为name
- hash –t name 打印缓存中name的路径
- hash –d name 清除name缓存
- hash –r 清除缓存
命令别名
alias
-
定义别名NAME,其相当于执行命令VALUE
-
alias NAME='VALUE'
-
在命令行中定义的别名,仅对当前shell进程有效
-
如果想永久有效,要定义在配置文件中
- 仅对当前用户:~/.bashrc
- 对所有用户有效:/etc/bashrc
-
编辑配置给出的新配置不会立即生效
-
bash进程重新读取配置文件
-
source /path/to/config_file
-
. /path/to/config_file
撤销别名
unalias [-a] name [name ...]
- -a 取消所有别名
如果别名同原命令同名,如果要执行原命令,可使用
- ALIASNAME
- "ALIASNAME"
- 'ALIASNAME'
- command ALIASNAME
- /path/commmand #只适用于外部命令
命令格式
COMMAND [OPTTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能
- 短选项:UNIX 风格选项,-c 例如:-l, -h
- 长选项:GNU风格选项,--word 例如:--all, --human
- BSD风格选项: 一个字母,例如:a,使用相对较少
参数:命令的作用对象,比如:文件名,用户名等
注意:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用 ";" 符号分开
- 一个命令可以用分成多行
常见命令
查看硬件信息
查看cpu
[root@centos7 ~]# lscpu [root@centos7 ~]# cat /proccpuinfo
查看内存
[root@centos7 ~]# free [root@centos7 ~]# cat /proc/meminfo
查看硬盘和分区
[root@centos7 ~]# lsblk [root@centos7 ~]# cat /proc/partitions
查看系统版本信息
查看内核版本
[root@centos7 ~]# uname -r #ubuntu系统一样
查看操作系统发行版本
[root@centos7 ~]# cat /etc/redhat-release [root@centos7 ~]# cat /etc/os-release [root@Ccentos8 ~]# lsb_release -a #centos7不可以用,centos8需要安装'redhat-lsb-core' root@ubuntu18:~# cat /etc/os-release root@ubuntu18:~# cat /etc/issue root@ubuntu18:~# lsb_release -a
日期和时间
Linux的两种时钟
- 系统时钟:由Linux内核通过CPU的工作频率进行的
- 硬件时钟:主板
相关命令
- date 显示和设置系统时间
- date +%s
- date -d @1509536033
- hwclock,clock: 显示硬件时钟
- -s, --hctosys 以硬件时钟为准,校正系统时钟
- -w, --systohc 以系统时钟为准,校正硬件时钟
- 时区:/etc/localtime
- 显示日历:cal –y
关机和重启
关机
- halt
- poweroff
重启
- reboot
- -f 强制,不调用shutdown
- -p 切断电源
关机或重启
shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-
-r = reboot
-
-h = halt
-
-c cancel TIME: 无指定,默认相当于+1(centos7)
now:立刻,相当于+0
+#:相对时间表示法,几分钟之后;例如+3 hh:mm:绝对时间表示,指具体时间
用户登录信息查看命令
- whoami: 显示当前登录有效用户
- who: 系统当前所有的登录会话
- w: 系统当前所有的登录会话及所做的操作
screen命令
- 创建新screen会话:screen –S [SESSION]
- 加入screen会话:screen –x [SESSION]
- 退出并关闭screen会话:exit
- 剥离当前screen会话:Ctrl+a,d
- 显示所有已经打开的screen会话:screen -ls
- 恢复某screen会话:screen -r [SESSION]
tmux命令
- 新建指定名称会话:tmux new -s
<session-name>
- 查看当前所有会话:tmux ls ,tmus list-session;ctrl+b,s
- 分离会话:tmux datach;ctrl+b,d
- 接入会话:tmux attach -t
<session-name>
- 杀死会话:tmux kill-session -t
<session-name>
- 切换会话:tmux switch -t
<session-name>
- 列出所有快捷键:tmux list-keys
- 列出所有命令及参数:tmux list-commands
echo
选项
- -E (默认)不支持 解释功能
- -n 不自动换行
- -e 启用 字符的解释功能
显示变量
-
echo "$VAR_NAME” 变量会替换,弱引用
-
echo '$VAR_NAME’ 变量不会替换,强引用
-
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
-
a 发出警告声
-
退格键
-
c 最后不加上换行符号
-
e escape,相当于 33
-
换行且光标移至行首
-
回车,即光标移至行首,但不换行
-
插入tab
-
插入字符
-
-