Linux基础入门和帮助二

Linux基础入门学习笔记

1.常见命令

1.1查看硬件信息

CPUlscpucat /proc/cpuinfo
内存lsmemcat /proc/meminfo
硬盘盒分区lsblkcat /proc/partitions

查看内存,free命令

[root@ubuntu2404 ~]# free
[root@ubuntu2404 ~]# free -h #h,humen
#1秒刷新一次数据
[root@ubuntu2404 ~]# free -hs 1
#刷新2次数据后退出
[root@ubuntu2404 ~]# free -hc 2


1.2查看版本信息

系统架构
[root@ubuntu2404 ~]# arch
x86_64

内核版本
[root@ubuntu2404 ~]# uname -r
6.8.0-39-generic

操作系统发行版本
[root@ubuntu2404 ~]# cat /etc/os-release
PRETTY_NAME=“Ubuntu 24.04 LTS”
[root@rokcy9 ~]# cat /etc/redhat-release红帽系
Rocky Linux release 9.4 (Blue Onyx)

OS 版本
[root@rokcy9 ~]# uname
Linux
[root@rokcy9 ~]# uname -a
Linux rokcy9.4 5.14.0-427.13.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 1 19:11:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux


1.3日期和时间

Linux的两种时钟

  • 系统时钟:由Linux内核通过CPU的工作频率进行的
  • 硬件时钟:主板

date 显示和设置系统时间

[root@rokcy9 ~]# date
Sat Aug 3 05:00:40 PM CST 2024
#显示时区
[root@rokcy9 ~]# date -R
Sat, 03 Aug 2024 17:01:42 +0800
#时间戳
[root@rokcy9 ~]# date +%s date +%s
1722677233

clock,hwclock 显示硬件时钟

-s|--hctosys #以硬件时钟为准,校正系统时钟
-w|--systohc #以系统时钟为准,校正硬件时钟

时区/etc/localtime

查看时区
[root@ubuntu2404 ~]# date -R
Sat, 03 Aug 2024 09:01:29 +0000
[root@ubuntu2404 ~]# timedatectl
修改时区
[root@ubuntu2404 ~]# timedatectl set-timezone Asia

日历 cal

cal [选项] [day moth year]

[root@rokcy9 ~]# cal 10 7 2024
July 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


1.4关机和重启

关机或重启shutdown

shutdown 程序会广播己登录的用户,被看作是安全的关机命令
是一个计划关机任务,可撤销

[root@rokcy9 ~]# shutdown
Shutdown scheduled for Sat 2024-08-03 17:42:47 CST, use ‘shutdown -c’ to cancel.
[root@rokcy9 ~]# 向其他用户广播一分钟后关机
Broadcast message from root@rokcy9.4 on pts/0 (Sat 2024-08-03 17:41:47 CST):
The system will power off at Sat 2024-08-03 17:42:47 CST!

shutdown 01:021点过两分关机
shutdown -r --reboot一分钟后重启
shutdown -r now现在重启
shutdown -h now现在关机
shutdown -c取消关机计划
shutdown -H--halt一分钟后调用halt 关机
shutdown -P--powerof一分钟后调用poweroff 关机

关机

halt
poweroff
init 0

开机

reboot
init 6
#ctrl+alt+delete 三键

init 3 命令行界面
init 5 图形界面


1.5用户登录信息查看命令

  • whoami:显示当前登录有效用户
  • who:系统当前所有的登录会话
  • w:系统当前所有的登录会话及所做的操作

[root@ubuntu2404 ~]# whoami
root
[root@ubuntu2404 ~]# who am i
lyaya pts/1 2024-08-03 13:07 (10.0.0.1)来源IP

who [选项]... [ 文件 | 参数1 参数2 ]
显示当前已登录的用户信息
who 列出在当前主机上所有登录用户
who -u | --users 列出当前主机上所有用户的空闲时间
. 表示最近一分钟还是活跃状态old表示用户己经空闲超过24小时
who -s | --short 列出在当前主机上所有登录用户,等同于who
who -q | --count 登录用户统计
who -b | --boot 上次系统启动时间
who -a | --all 多选项组合
who -m who am i

w [options]
显示当前所有登录用户的具体信息
w root查看特定用户

1.6文本编辑工具

  • nano 工具可以实现文本的编辑,上手容易,适合初学者
  • gedit 工具是图形工具

1.7会话管理

命令行的使用方式,打开一个终端窗口(terminal window),输入命令。
用户与计算机的这种临时交互,称为一次"会话"(session)
会话的重要特点,窗口与进程相连。
打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止。
为了解决这个问题,会话与窗口可以"解绑"‘。窗口关闭时,会话不终止,继续运行,等需要时,再让会话"绑定" 其他窗口。终端复用器软件就是会话与窗口的"解绑"工具

  • 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  • 它可以让新窗口"接入"已经存在的会话。
  • 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  • 它还支持窗口任意的垂直和水平拆分。
  • 类似工具有,screentmux

screen

利用screen 可以实现会话管理,如:新建会话,共享会话等

screen -S [SESSION]创建新screen会话
screen -x [SESSION]加入screen会话
screen -r [SESSION]恢复某screen会话
screen -ls显示所有已经打开的screen会话
Ctrl+a,d剥离当前screen会话
exit退出并关闭screen会话

1.8输出信息echo

echo [-neE] [字符串或$变量名]

  • -n :输出完成后不换行
  • -e :转义特定字符串
  • -E :不转义,原样输出,默认选项

启用命令选项-e,若字符串中出现以下字符,则特别加以处理

\a发出警告声\b退格键
\c最后不加换行符\eescape相当于\033
\n换行且光标移至行首\r回车,即光标移至行首,但不换行
\t#插入tab\\插入\字符
\0nnn插入nnn(八进制)所代表的ASCII字符\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)

#双引号,用变量值替换,弱引用
[root@rokcy9 ~]# echo "$ PATH"
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/lo
#单引号,变量不会替换,强引用
[root@rokcy9 ~]# echo '$PATH'
$PATH

可以显示具有颜色的字符,其格式如下:
"\e[字符背景颜色;字体颜色;特效m字符串\e[0m"
echo -e "\e[32;41;1m1234\e[0m"


2.字符集和编码及语言环境

  • charset(character set)字符集:即二进制和字符的对应关系,不关注最终的存储形式
  • encoding(charset encoding)字符集编码:实现如何将字符转化为实际的二进制进行存储,编码决定了空间的使用的大小

2.1ASCII码

ASCII(American Standard Code for Information Interchange) :美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,即ASCII 码。计算机 二进制,起源于美国。
一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为 0。

2.2Unicode字符集

Unicode字符集规定了世界上所有语言中的所有字符对应的二进制代码。

Unicode编码方案:

  • UTF-8: 变长,1到4个字节
  • UTF-16:变长,2或4个字节
  • UTF-32:固定长度,4个字节

UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储
使用 1- 4 个字节表示一个字符,根据字符的不同变换长度。

2.3语言环境

默认系统为英文环境,可以修改为中文环境,从而查看帮助或提示可以变为中文
临时修改LANG变量实现中文语言提示:

[root@rokcy9 ~]# echo $LANG
en_US.UTF-8
[root@rokcy9 ~]# LANG=zh_CN.UTF-8
[root@rokcy9 ~]# lyaya
bash: lyaya: 未找到命令…
#永久修改
[root@rocky9 ~]# localectl set-locale LANG=zh_CN.utf8


3.命令行扩展和被括起来的集合

3.1命令行扩展``和$()

把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令

[root@rokcy9 ~]$ echo {1..5}
1 2 3 4 5
[root@rokcy9 ~]$ echo echo {1..5}  表示echo 参数 参数
echo 1 2 3 4 5 
[root@rokcy9 ~]$ echo `echo {1..5}`
1 2 3 4 5
[root@rokcy9 ~]$ echo $(echo {1..5})
1 2 3 4 5

3.2变量扩展" "和${}

  • "双引号",弱引用,可以解析内容
  • '单引号',强引用,原样输出

#变量拓展
[root@rokcy9 ~]# echo $HOSTNAME
[root@rokcy9 ~]# echo "$HOSTNAME"
[root@rokcy9 ~]# echo ${HOSTNAME}
[root@rokcy9 ~]# echo "${HOSTNAME}"
rokcy9.4

#输出原样
[root@rokcy9 ~]# echo '$HOSTNAME'
[root@rokcy9 ~]# echo \$HOSTNAME
$ HOSTNAME

3.3比较 “ ” ,‘ ’, ``三者区别

  • 单引号:强引用,变量和命令都不识别,原样输出
  • 双引号:弱引用,不能识别命令,可以识别变量。
  • 反向单引号:内容必须是可执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续。
[root@rokcy9 ~]$ echo "echo $HOSTNAME"
echo rokcy9.4
[root@rokcy9 ~]$ echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@rokcy9 ~]$ echo `echo $HOSTNAME`
rokcy9.4

3.4括号扩展{ }

{} 可以实现打印重复字符串的简化形式

[root@rokcy9 ~]# echo file{1,2,3}
file1 file2 file3
[root@rokcy9 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@rokcy9 ~]# echo {00..10}
00 01 02 03 04 05 06 07 08 09 10
[root@rokcy9 ~]# echo {1..10..2}
1 3 5 7 9 #间隔2

[root@rokcy9 ~]# echo {1..3} {a..e}
1 2 3 a b c d e
[root@rokcy9 ~]# echo {1..3}{a..e}
1a 1b 1c 1d 1e 2a 2b 2c 2d 2e 3a 3b 3c 3d 3e

关闭和启用{}的扩展功能

与环境变量有关

[root@rokcy9 ~]# echo $-
himBHs
[root@rokcy9 ~]# echo {1…5}
1 2 3 4 5
[root@rokcy9 ~]# set +B#关闭
[root@rokcy9 ~]# echo $-
himHs
[root@rokcy9 ~]# echo {1…5}
{1…5}


4.tab 键补全

tab 键可以实现命令及路径等补全,提高输入效率,避免出错

4.1命令补全

用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表

[root@rokcy9 ~]# add
addgnupghome addr2line
addpart adduser

4.2路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全,否则:再次Tab给出列表

[root@rokcy9 ~]# ls /
afs/ dev/ lib/ mnt/ root/ srv/ usr/
bin/ etc/ lib64/ opt/ run/ sys/ var/
boot/ home/ media/ proc/ sbin/ tmp/

  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表,
  • $2Tab 所有变量

5.命令行历史

当执行命令后,系统会在内存中记录下此命令,正常退出终端后,记录下的历史,会保存到用户家目录下的.bash_history文件中。
当用户下次登录,系统会自动将该文件中的内容加载到内存。

被写入命令历史的,包括错误的命令,默认记录最近1000条,配置在 /etc/profile 文件中可修改。

5.1history

[root@rokcy9 ~]# history
113 echo 123
114 echo 456
115 echo 789
116 history
[root@rokcy9 ~]# !114
echo 456
456

-c #清空命令历史
-d offset #删除历史中指定的第offset个命令
n #显示最近的n条历史
-a #追加本次会话新执行的命令历史列表至历史文件
-r #读历史文件附加到历史列表
-w #保存历史列表到指定的历史文件
-n #读历史文件中未读过的行到历史列表
-p #展开历史参数成多行,但不存在历史列表中
-s #展开历史参数成一行,附加在历史列表后

5.2调用命令行历史

重复前一个命令方法

  • 上方向键
  • 按 !!
  • 输入!-1
  • 按 Ctrl+p

!n #执行history命令输出对应序号n的命令
[root@rokcy9 ~]# !114
echo 456
456
!string #重复前一个以“string”开头的命令
[root@ubuntu2404 ~]# !e
echo 567
567
!?string #重复前一个包含string的命令
[root@ubuntu2404 ~]# !?echo
echo 123

5.3命令历史相关环境变量

上变量可以 变量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile或.bashrc

HISTSIZE #命令历史记录的条数
HISTFILE #指定历史文件,默认为~/.bash_history
HISTFILESIZE #命令历史文件记录历史的条数
`HISTTIMEFORMAT="%F %T `whoami` " #显示时间和用户


6.bash的快捷键

Ctrl + l #清屏,相当于clear命令
Ctrl + o #执行当前命令,并重新显示本命令
Ctrl + s #阻止屏幕输出,锁定
Ctrl + q #允许屏幕输出,解锁
Ctrl + c #终止命令
Ctrl + z #挂起命令
Ctrl + a #光标移到命令行首,相当于Home
Ctrl + e #光标移到命令行尾,相当于End


7.登录提示

7.1登录前提示

命令行模式下本地终端(tty1~tty6,ctrl+ail+Fn可切换终端)登录界面,会有几行提示文字,这些文字都保存在/etc/issue文件中,可以自行修改。

[root@ubuntu2404 ~]# cat /etc/issue
Ubuntu 24.04 LTS \n \l
[root@ubuntu2404 ~]# nano /etc/issue

\d #显示当前系统日期
\S #显示操作系统名称
\m #显示硬件体系结构,如i386、i686等
\n #显示主机名
\o #显示域名
\r #显示内核版本
\t #显示当前系统时间
\u #显示当前登录用户的序列号

如果是远程终端ssh 登录,则其登录前信息,可以放在/etc/issue.net 中,但是该文件中的内容不支持转义

7.2登录后提示

motd:message of the day
当用户从终端登录时,此文件的内容将会显示在终端上,如果shell工具支持中文,也可显示。
内容由使用者定制,经常用于通告信息,欢迎提示等。
但是,此文件只适用于命令行界面

/etc/motd
/etc/motd.d/

8.获得帮助

看手册,看日志

  • whatis & whereis 命令
  • command --help 选项
  • man 手册
  • 程序自带文档 /usr/share/doc
  • 项目官网文档
  • 行业网站
  • 搜索引擎

8.1whatis & whereis

whatis 使用数据库来显示命令的简短描述,以及对应的man手册的章节

[root@ubuntu2404 ~]# whatis ls
ls (1) - list directory contents
[root@ubuntu2404 ~]# mandb

whereis 可以列出命令或系统文件路径,以及其对应的man 手册中的文档路径

[root@ubuntu2404 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

8.2查看命令的帮助

2.1 内部命令帮助

help COMMAND
[root@ubuntu2404 ~]# type echo
echo is a shell builtin
[root@ubuntu2404 ~]# help echo
echo: echo [-neE] [arg …]

2.2 外部命令及软件帮助

COMMAND --help|-h
[root@ubuntu2404 ~]# cal -h
[root@ubuntu2404 ~]# cal --help

man COMMAND
info COMMAND
#程序自身的帮助文档:README、INSTALL、ChangeLog 等
#项目官网文档
#行业网站
#搜索引擎

2.3 man 命令

man (manual )是Linux系统中的帮助手册和文档
man 是一个外部命令,基本质就是读取特定文件,进行输出,其读取的文件一般位于/usr/share/man/ 目录下
新安装一个软件或程序后,对应的man手册也会放到/usr/share/man/目录下,几乎每个命令都有man的 “页面。

[root@ubuntu2404 ~]# man ls

man 页面分组

不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man

标准man 手册一般有以下几个章节:

  1. 可执行程序或 shell 命令
  2. 系统调用(内核提供的函数)
  3. 库调用(程序库中的函数)
  4. 特殊文件(通常位于 /dev)
  5. 文件格式和规范,如 /etc/passwd
  6. 游戏
  7. 杂项
  8. 系统管理命令(通常只针对 root 用户)
  9. 内核API

[root@ubuntu2404 ~]# whatis passwd
passwd (1) - change user password
passwd (1ssl) - OpenSSL application comm…
passwd (5) - the password file
[root@ubuntu2404 ~]# man 5 passwd
PA…D(5)File Formats and ConfigurationPA…D(5)

常用快捷键:

  • 1G 回到首行
  • G 跳转至结尾
  • /abc 向下搜索abc 按n向下跳转,按N向上跳转
  • ?abc 向上搜索abc 按n向下跳转,按N向上跳转
  • q 退出

常用关键字及格式:

  • [] 可选项
  • <> 必选项
  • a|b 二选一
  • … 同一内容可出现多次
  • { } 分组

段落说明:

  • NAME #名称及说明
  • DESCRIPTION #详细说明
  • SYNOPSIS #使用格式
  • FILES #相关文件
  • OPTIONS #选项
  • AUTHOR #作者
  • REPORTING BUGS #相关bug信息
  • COPYRIGHT #版权及开源协议信息
  • EXAMPLES #使用示例
  • SEE ALSO #可参考其它部份

2.4 info 命令

info 是自由软件基金会的GNU项目,是GNU的超文本帮助系统,
整个结构类似于一个网站,有导航,支持链接跳转,不带参数,默认进入的是首页

2.5 TLDR 命令

此工具只列出命令的常用选项的帮助。
TLDR: Too Long;Didn’t Read(太长不看),也可以叫作 “偷懒的人

[root@rokcy9 ~]# tldr ls

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值