02Linux基础入门
02Linux基础入门
1 用户类型
-
root用户
Linux下超级用户,除非必要,不要登录为root
-
普通用户(非特权)
权限有限,造成损害的能力比较有限
2 终端Terminal
2.1 终端类型
控制台终端:/dev/console
串行终端:/dev/ttyS#
虚拟终端:tty
伪终端:pty:/dev/pts SSH终端
图形终端:startx,xwindows
2.2 查看当前的终端设备
tty
3 交互式接口
-
GUI:Graphic User Interface X protocol,windows manager,desktop
GNOME(C,图形库gtk)
KDE(C++,图形库qt)
XFCE(轻量级桌面)
-
CLI:Command Line Interface
shell程序
shell是用户和程序交互的接口
shell是命令解释器
shell是一种编程语言
3.1 各种shell
- sh
- bash
- csh
- tcsh
- ksh
- zsh:MacOS默认shell
3.2 bash shell
显示当前使用的shell
echo $SHELL
显示当前系统使用的所有shell
cat /etc/shells
4 设置主机名
hostnamectl hostname
5 命令提示符
echo "PS1='\e[31;1m[\u@\h \w]\\$ \e[0m'" > /etc/profile.d/env/sh
上述为rocky Linux,ubuntu大差不差
6 执行命令
- 内部命令:shell自带,通过某命令形式提供,用户登录后自动加载并常驻内存中,在硬盘上没有对应的可执行文件
- 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除
例如:
type echo
echo 是 shell 内建
某些命令既是内部命令,也是外部命令,主要是为了防止shell的差异导致的命令执行失效
6.1 内部命令相关
help #查看所有内部命令及帮助
enable #查看所有启用的内部命令
enable cmd #启用CMD命令
enable -n cmd #禁用内部cmd命令
enable -n #查看所有禁用的内部命令
6.2 执行外部命令
which -a echo #ubuntu不显示别名
whereis
6.3 命令别名
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
alias #显示当前shell进程所有可用的命令别名
alias name #查看指定别名
alias NAME='VALUE' #定义别名NAME,其相当于执行命令VALUE
unalias #撤销别名
在命令行中定义的别名,仅对当前shell进程有效
- 仅对当前用户:~/.bashrc
- 对所有用户有效:/etc/bashrc,/etc/bash.bashrc(ubuntu)
6.4 命令格式
COMMOND [OPTIONS...][ARGUMENTS...]
COMMOND #命令
OPTIONS #选项,用于启用或关闭命令的某个或某些功能
ARGUMENTS #参数,命令的作用对象,比如:文件名,用户名等
[] #表示里面的内容是可选项
... #表示可以有多个值或多个参数
7 常见命令
7.1 硬件方面
lscpu #查看CPU相关信息
cat /proc/cpuinfo
free #查看内存信息
cat /proc/meminfo
lsblk #查看硬盘信息
cat /proc/partitions
#以root账户登录,并且输入下列指令
init 3 #关闭图形界面
7.2 系统信息
7.2.1 架构
arch
7.2.2 内核版本
uname -r
7.2.3 发行版本
cat /etc/os-release
7.3 日期和时间
date -R #显示时区信息
hwclock
timedatectl set-timezone #设置时区
cal|ncal #查看日历
7.4 关机和重启
#关机
halt
poweroff
init 0
shutdown -h now
#重启
reboot
init 6
shutdown -r now
#ctrl+alt+del 三键热重启
shutdown程序会广播已登录的用户,被看作是安全的关机命令,是一个计划关机任务,可撤销
shutdown [OPTION]... [TIME] [MESSAGE]
shutdown #1分钟后关机
shutdown +10 #10分钟后关机
shutdown 01:02 #1点02分关机
shutdown -r |--reboot #1分钟后重启
shutdown -r now #现在重启
shutdown -H |--halt #一分钟后调用halt关机
shutdown -P |--poweroff #一分钟后调用poweroff关机
shutdown -c #取消关机计划
7.5 用户登录信息查看命令
- whoami:显示当前登录有效用户
- who:系统当前所有的会话
- w:系统当前所有的登录会话及所做的操作
7.6 文本编辑工具
- nano -----shell界面,适宜初学者
- gedit -----UI界面
登录提示文本存放于:/etc/motd
7.7 会话管理
打开一个终端窗口就可以称为一次会话(session)
screen
screen -S [SESSION] #创建新screen会话
screen -x [SESSION] #加入screen会话
screen -r [SESSION] #恢复某screen会话
screen -ls #显示所有已经打开的screen会话
exit #退出并关闭screen会话
可以镜像会话
7.8 输出信息echo
help echo #查看echo相关的命令
8 字符集和编码及语言环境
8.1 ASCII编码
ASCII是英语字符与二进制位之间的关系
8.2 Unicode
Uniconde编码方案:
- UTF-8:变长,1到4个字节
- UTF-16:变长,2到4个字节
- UTF-32:固定长度,4个字节
8.3 语言环境
修改语言环境
localectl set-locale LANG=zh_CN.utf8
9 命令行扩展
括号扩展{}
{} 可以实现打印重复字符串的简化形式
{元素1,元素2,元素3}
{元素1..元素3..步长}
echo{1..10} #输出结果为1,2,3,4,5,6,7,8,9,10
echo{1..10..2} #输出结果为1,3,5,7,9
关闭和启用扩展功能
test@test-VirtualBox:~$ echo $-
himBHs
test@test-VirtualBox:~$ set +B
test@test-VirtualBox:~$ echo $-
himHs
test@test-VirtualBox:~$ echo {1..10}
{1..10}
test@test-VirtualBox:~$ set -B
test@test-VirtualBox:~$ echo $-
himBHs
test@test-VirtualBox:~$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
10 Tab键补全
Tab可以补全命令,提高效率,避免出错,同时也可以补全路径,方便命令的输入
11 命令行历史
history --help #默认记录1000条,可修改/etc/profile文件中的HISTSIZE字段,增加或缩减记录条数
12 登录提示
12.1 登录前提示
#登录提示的内容是在一个文件当中的,可以更改
/etc/issue
#但只在本地终端生效
#远程终端生效,需要在其他的地方更改
vim /etc/ssh/sshd_config
#Banner none 将此处的banner指向对应的文件即可
Banner /etc/issue.net
#重启sshd服务
service sshd restart
12.2 登陆后提示
文件位于/etc/motd或/etc/motd.d/中,该文件仅适用于命令行界面
ubuntu在/etc/update-motd.d
13 获得帮助
看帮助 -------- 命令怎么用,有哪些选项,哪些参数
看日志 -------- 定位问题,排错
- whatis & whereis 命令
- command --help选项
- man手册
- 程序自带文档/usr/share/doc
- 项目官网文档
- 行业网站
- 搜索引擎
- AI助手
浙公网安备 33010602011771号