这是我整理的关于Linux基础知识的笔记,主要为了方便在长期不用Linux的情况下,突然需要使用时可以快速查找。我最初有些犹豫是否应该写成文章,但我认为对于处于相似境遇的人来说,能够方便地复制和使用这些知识会很有帮助,所以决定将其分享出来。
虽然MacOS不是Linux,而是BSD系系统,但我在文中简要介绍了一些与包管理相关的内容。由于不包括CentOS7等系统的相关内容,如果有人能提供编辑建议或请求修改,将不胜感激。
个人设置文件
这些配置文件位于主目录中。
位置 | 意义 |
.bash_profile | 登录时加载,仅在用户登录时被读取和执行。 |
.bashrc | 每次启动新的shell时加载 |
二进制文件和库文件的位置参考
位置 | 意义 |
---|---|
/bin | 存放基本的系统命令的二进制文件,这些命令是系统启动和修复所需的基础工具 |
/sbin | 存放基本的系统管理和维护命令的二进制文件,这些命令主要用于系统管理员进行系统维护和配置 |
/lib | 包含系统基本库文件,这些库文件是 /bin 和 /sbin 中的二进制文件运行所必需的。 |
/usr/bin | 包含用户程序所需的库文件,支持 /usr/bin 中的程序运行。 |
/usr/sbin | 存放非基本的系统管理和维护命令的二进制文件。这些命令通常用于系统管理员执行更高级的系统管理任务 |
/usr/lib | 包含与 /lib 中的库文件功能相同,但主要用于用户空间的程序和应用程序。这些库文件支持 /usr/bin 中的程序运行。 |
/usr/include | C语言的包含头文件 |
/usr/libexec | 内部调用的辅助命令 |
/usr/local | 自己编译的程序文件存放的位置(以下同样适用) |
/usr/local/bin | |
/usr/local/lib | |
/usr/local/include | |
/usr/local/opt | |
/usr/src/ | 内核源代码和头文件 |
/opt/local/bin | 通常用于软件包(主要是二进制blob)的安装位置。 |
/opt/local/lib | 通常用于安装软件包(主要是二进制blob)的目录。 |
/etc | 各种应用程序的配置文件 |
/var/log | 应用程序日志输出的位置 |
/var/www/html | 通常用作Web服务器的文档根目录。 |
包管理命令
发行版 | 命令 |
---|---|
RedHat系 | yum |
Mac | brew |
Debian系 | apt-get |
所有软件包更新
apt-get update && apt-get dist-upgrade
yum update
brew upgrade
软件包安装的位置
因软件包而异。
发行版 | 调查方法 |
---|---|
ubuntu | dpkg -L package名 |
redhat(yum也是相同的) | rpm -ql package名 |
MacOSX | 安装在“/usr/local/Cellar”并链接到“/usr/bin” |
自己编译源代码
从网上获取并解压后进行编译的情况
wget http://目标源代码.tar.gz
tar -xvf 目标源代码.tar.gz
cd 目标源代码
./configure
make
sudo make install
如果要自定义安装位置,可以使用:
./configure --prefix=安装位置
使用 gcc
自行编译
编译 test.cc
时:
gcc -L库路径 -I包含文件路径 -l库名 -o 输出二进制名 test.cc
共享库通常命名为 lib~.a
,因此在使用 -l
指定时,只需使用 ~
部分即可。
安装软件包时
默认情况下,`/usr/bin` 会被优先搜索,因此可以通过设置 `${PATH}` 使其优先搜索 `/usr/local/bin`。
为了保持系统的整洁,最好将自行编译的源代码安装到通过 `./configure --prefix=安装位置` 指定的目录中,并在每次安装后更新路径。
检查共享库的依赖关系
共享库的扩展名是 .so
文件。 可以使用 ldd
命令来检查程序的依赖库。
ldd /bin/cp
libc.so.6 => /lib/libc.so.6
/lib/ld-linux.so.2 => /lib/ld-linux.so.2
MacOSX的情况
otool -L
查看环境变量列表
printenv
指定路径
变量名 | 意义 |
---|---|
$PATH | 二进制文件的搜索路径 |
$LD_LIBRARY_PATH | 库文件的搜索路径 |
$C_INCLUDE_PATH | C语言的包含路径 |
按照书写顺序优先搜索并执行。 用 :
分隔,以 ;
结尾。 例如,将 =/usr/local/lib
设置为优先搜索的路径并使其生效。
$ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib;
export LD_LIBRARY_PATH
上述方法是暂时生效的。 要永久生效,请将设置写入 .bash_profile
或 .bashrc
中,然后使用 source
命令使其生效。
vi ~/.bashrc
写入
source ~/.bashrc
解压文件
.tar.gz
tar zxvf filename.tar.gz
.bz2
tar xvfj filename.bz2
vi
编辑器的基本命令
命令 | 意义 |
---|---|
i | 插入模式 |
a | 在光标后插入 |
x | 删除光标所在的字符 |
D | 删除当前行 |
q | 退出 |
q! | 强制退出 |
w | 保存 |
wq | 保存后退出 |
gg | 移动到文件开头 |
:数字 | 移动到指定行 |
G | 移动到文件末尾 |
Ctrl + f | 移动到下一画面 |
Ctrl + b | 移动到上一画面 |
0 | 移动到行首 |
$ | 移动到行尾 |
w | 移动到下一单词 |
b | 移动到上一单词 |
W | 移动到下一空白处 |
B | 移动到上一空白处 |
yy | 复制(指定要复制的行数前加上数字) |
p | 粘贴(当前行) |
P | 粘贴(光标下方) |
dd | 删除(前面加上数字以指定删除的行数) |
u | 撤销操作 |
/[文字列] | 向前搜索 |
?[文字列] | 向后搜索 |
n | 下一个匹配项 |
N | 上一个匹配项 |
:%s/替换前字符串/替换后字符串/g | 置換 |
:set number | 行番号表示 |
:syntax off | 去除颜色 |
使用 Git 克隆并提交的步骤
git clone URL
git add index.html
git commit -m "comment"
git push
重做
将工作区和索引(暂存区)恢复到上一个提交状态。
git reset --hard
获取远程更改
git pull
服务启动和停止
/etc/init.d/服务名 start
/etc/init.d/服务名 stop
或者
service 服务名 start
重启动
/etc/init.d/服务名 restart
始终保持启动
chkconfig 服务名 on
将文件复制到远程机器
scp [选项] 源文件 目标位置
要将当前目录下的 testfile
文件传输到 192.168.1.10
的 user1
用户的主目录,可以使用以下 scp
命令:
scp ./testfile [email protected]:~/
如果更改路径的顺序,也可以从远程获取文件。
文件搜索
$ find / -name doc.txt
创建自签名证书
过程中会询问的 CommonName 中输入主机名,其他字段可以随意填写。
# openssl genrsa 2048 > server.key
# openssl req -new -key server.key > server.csr
# openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
host名変更
#vi /etc/hosts
127.0.0.1 xxxx localhost 这里进行追記
#vi etc/sysconfig/network
NETWORKING=yes
HOSTNAME=写到这里
GATEWAY=192.168.0.1
生效变更内容
# /etc/rc.d/init.d/network restart
检查正在使用的端口
sudo netstat -anp
检查容量
按分区
df -h
从当前目录递归检查
du -h
调查服务器负载情况
CPU負荷
top
内存
vmstat
其他方式
# uptime
13:35 up 30 mins, 2 users, load averages: 0.07 0.16 0.19
在 load averages
后面,会显示 1 分钟、5 分钟和 15 分钟的负载平均值。这些数值表示处理的等待时间。处理等待时间可能是由于“CPU 使用率”或“I/O 处理等待”造成的。
如果负载平均值较低但性能未改善,网络可能是一个因素,可以使用 netstat
等工具进行调查。
检查 CPU 使用率和 I/O 等待时间
# sar -u 3 10
13:40:16 %usr %nice %sys %idle
13:40:19 1 0 2 98
13:40:22 1 0 1 98
13:40:25 0 0 1 98
13:40:28 0 0 1 99
13:40:31 1 0 1 98
13:40:34 0 0 1 99
13:40:37 0 0 1 99
13:40:40 0 0 1 99
13:40:43 0 0 1 99
13:40:46 0 0 1 99
Average: 0 0 1 98
- %user:用户空间的 CPU 使用率。
- %nice:由调整优先级的进程在用户空间中使用的 CPU 使用率。
- %system:内核空间的 CPU 使用率。
- %iowait:显示 CPU 等待 I/O 处理的时间比例。
- %idle:CPU 在磁盘 I/O 等待中处于空闲状态的时间比例。
服务器构建时进行的安全设置
LPIC 标准教科书的目录:
- 检查软件更新信息
- 定期更新正在使用的包
- 不安装不必要的软件
- 禁用或删除不必要的用户
- 根据需要为用户密码设置有效期限
- 限制能够获得 root 权限或使用 sudo 的用户
- 适当设置文件和目录的访问权限
- 适当配置运行级别,避免启动不必要的守护进程
- 删除不必要的 SUID 和 SGID
- 准确记录日志
- 启用数据包过滤(如 iptables),避免接收不必要的数据包
- 关闭不必要的端口
cron的設定
crontab -e
格式
# 注释
分 时 日 月 星期 命令或脚本
标签:文件,13,lib,常用命令,40,基础知识,usr,Linux,local
From: https://blog.csdn.net/rralucard123/article/details/140663200