Linux 必备基础知识与常用命令大汇总

这是我整理的关于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/includeC语言的包含头文件
/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
Macbrew
Debian系apt-get

所有软件包更新

apt-get update && apt-get dist-upgrade

yum update

brew upgrade

软件包安装的位置

因软件包而异。

发行版调查方法
ubuntudpkg -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_PATHC语言的包含路径

按照书写顺序优先搜索并执行。 用 : 分隔,以 ; 结尾。 例如,将 =/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.10user1 用户的主目录,可以使用以下 scp 命令:

scp ./testfile user1@192.168.1.10:~/

如果更改路径的顺序,也可以从远程获取文件。

文件搜索

$ 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 标准教科书的目录:

  1. 检查软件更新信息
  2. 定期更新正在使用的包
  3. 不安装不必要的软件
  4. 禁用或删除不必要的用户
  5. 根据需要为用户密码设置有效期限
  6. 限制能够获得 root 权限或使用 sudo 的用户
  7. 适当设置文件和目录的访问权限
  8. 适当配置运行级别,避免启动不必要的守护进程
  9. 删除不必要的 SUID 和 SGID
  10. 准确记录日志
  11. 启用数据包过滤(如 iptables),避免接收不必要的数据包
  12. 关闭不必要的端口

cron的設定

crontab -e

格式

# 注释
分 时 日 月 星期 命令或脚本

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值