# Liunx
Linux 是一个通用的操作系统,操作系统通常由内核(运行其他程序,管理像磁盘、打印机等硬件设备的核心程序)和系统程序(设备驱动,底层库,shell,服务程序等)两部分组成。
# 基础命令
linux系统的命令通常都是如下所示的格式:
命令名称 [命令参数] [命令对象]
1、获取登录信息- w / who / last / lastb
2、查看自己使用的shell- ps
3、查看命令的说明和位置- whatis / which / whereis
另外还有查看命令的位置,例如:command -v php 如果是符号链接,查看指向哪里,例如:ls -l /usr/bin/php
4、清除屏幕上线上的内容- clear
5、查看帮助文档- man / info / --help / apropos
6、查看系统和主机名- uname / hostname
另外还有查看操作系统详细信息:cat /etc/os-release
7、时间和日期- date / cal
8、重启和关机- reboot / shutdown
9、退出登录- exit / logout
10、查看历史命令- history
# 实用程序
# 文件和文件夹操作
# 创建/删除空目录
mkdir -p abc/xyz
rmdir -p zbc/xyz
# 创建/删除文件
touch a.txt
rm a.txt
rm -rf xyz
# 切换和查看当前工作目录
cd abc
cd -
pwd
# 查看目录内容
ls
# 查看文件内容
cat a.txt
tac a.txt
head -10 a.txt
tail -20 a.txt
more a.txt
less a.txt
rev a.txt
od a.txt
# 拷贝和移动文件
cp abc xyz/
mv a.txt xyz/
# 查找文件和查找内容
find . -name *.txt
grep "<script>" sohu.html -n
# 创建链接和查看链接,链接分为硬链接和软连接
ln source_file link_name # 硬链接,硬链接是指向同一文件索引的不同文件名
ln -s source_file link_name # 软链接,软链接是一个特殊的文件,它包含一个指向另一个文件的路径
ls -li filename # 查看链接
# 压缩与解压缩
tar -czvf archive.tar.gz directory_or_file # 打包
tar -xzvf archive.tar.gz # 解压
# 管道和重定向
# ps -ef 列出所有进程,然后通过 grep "process_name" 过滤出包含特定进程名的行,最后 wc -l 计算这些行的数量
ps -ef | grep "process_name" | wc -l
在Linux中,重定向是一种强大的功能,它允许用户将命令的输出或输入从一个位置转移到另一个位置,而不是使用默认的屏幕或键盘。重定向主要分为输出重定向和输入重定向两种。
输出重定向是将命令的标准输出(stdout)或标准错误(stderr)重新定向到文件或其他命令中
# 标准输出重定向(覆盖):使用 > 符号
command > file.txt
# 标准输出重定向(追加):使用 >> 符号
command >> file.txt
# 标准错误重定向:使用 2> 符号。它将命令的标准错误重定向到指定的文件中,而标准输出仍然显示在屏幕上
command 2> err.txt
# 标准错误重定向(追加):使用 2>> 符号
command 2>> error.txt
# 同时重定向标准输出和标准错误
command &> output.txt
command > output.txt 2>&1
# 输入重定向,是将命令的标准输入(stdin)从文件或其他命令中读取,而不是从键盘读取
command < file.txt
# 别名
# 别名的定义
alias 别名='命令或命令序列'
alias cls="clear"
alias my_sequence='cd /path/to/directory && ls -l'
默认情况下,通过alias命令定义的别名仅在当前会话中有效。如果你希望别名在每次登录时都能自动生效,可以将别名定义添加到适当的配置文件中。常用的配置文件包括:
~/.bashrc
:用于个人用户的Bash配置~/.bash_profile
:用于个人用户的Bash登录配置/etc/bash.bashrc
:用于全局Bash配置/etc/profile
:用于全局登录配置
为了使更改立即生效,可以使用 source
命令。
# 用户管理
# 添加用户并创建家目录
useradd -m username
# 删除用户
userdel -r username
# 修改用户密码
passwd username
# 修改用户信息
usermod
# 切换用户身份
su username
# 列出所有用户信息
cat /etc/passwd
# 创建用户组
groupadd
# 删除用户组
groupdel
# 以管理员身份执行命令
sudo
# 查看sudoers文件
cat /etc/sudoers
# 显示用户与用户组的信息
id
id username
# 访问权限
# 改变权限
chmod 777 file
# 改变文件的所有者
chown username file
# 更改文件的所属组
chgrp groupname file
# 软件的安装和配置
# 使用包管理工具
# yum
yum使用软件仓库来检索和安装软件包。用户可以通过编辑/etc/yum.repos.d/目录下的.repo文件来添加、修改或删除软件仓库。
# 搜索软件包
yum search nginx
# 列出已经安装的软件包
yum list installed
# 安装软件包
yum install nginx
# 删除软件包
yum remove nginx
# 更新软件包
yum update # 更新所有软件包
yum update tar # 只会更新 tar
# 检查那些可以更新的软件包
yum check-update
# 显示软件包的信息
yum info nginx
# rpm
rpm 允许用户直接以二进制方式安装软件包,并自动处理依赖关系
# 安装软件包
rpm -ivh <packagename>.rpm
# 移除软件包
rpm -e <packagename>
# 查询指定软件包是否已经安装
rpm -q package_name
# 列出系统上所有已安装的软件包
rpm -qa
# apt
# 更新本地的软件包列表
sudo apt update
# 安装软件包
sudo apt install git
# 卸载软件包
sudo apt remove git
# 注意,apt remove只会删除软件包本身,而不会删除其配置文件。如果你还想删除配置文件,可以使用apt purge命令
sudo apt pruge git
# 搜索软件包
sudo apt search git
# 源代码安装
# 配置服务
Linux下的大多数服务都被设置为守护进程,所以我们安装的服务通常名字后面都有一个字母d
,它是英文单词daemon
的缩写。比如防火墙服务firewalld,mysql服务mysqld,Apache服务httpd等。在安装好服务之后,可以使用systemctl
命令或servcie
命令来完成对服务的启动,停止等操作。
# 启动防火墙服务
systemctl start firewalld
# 终止防火墙服务
systemctl stop firewalld
# 重启防火墙服务
systemctl restart firewalld
# 查看防火墙服务状态
systemctl status firewalld
# 设置防火墙服务开机自启
systemctl enable firewalld
在linux中,如何设置服务开机自启?
- 使用systemctl
创建一个新的服务单元文件,例如/etc/systemd/system/myservice.service
。
编辑文件并定义你的服务。例如:
[Unit]
Description=My Custom Service
After=network.target
[Service]
ExecStart=/path/to/your/service
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存文件后,重新加载systemd配置:sudo systemctl daemon-reload
启用服务以使其在开机时启动:sudo systemctl enable myservice
现在你可以使用sudo systemctl start/stop/restart myservice
来手动控制服务。
- 使用SysVinit脚本
可以将启动脚本放在/etc/init.d/目录中,并使用update-rc.d或chkconfig(取决于你的发行版)来链接到适当的运行级别。
# 网络访问和管理
- 安全连接 ssh
ssh root@192.168.2.56
通过网络获取资源 wget
发送和接收邮件 mail
网络配置工具 ifconfig 或者 ip address
网络可达性检查 ping
显示网络服务和端口 netstat 或者 ss
网络监听抓包 tcpdump
文件同步工具 rsync
安全文件传输 sftp
# 进程管理
查看进程 ps
显示进程树 pstree
查找与指定条件匹配的进程 pgrep
通过进程号终止进程 kill
通过进程名终止进程 pkill / killall
将进程置于后台运行
Ctrl + Z
快捷键用于停止进程并置于后台,&
将进程置于后台运行。查询后台进程 jobs
用户登出后进程继续工作 nohup
nohup ping www.baidu.com > result.txt &
跟踪进程系统调用情况 strace
实时监控进程占用资源状况 top