15.1.2.linux常见操作用例
15.1.2.1.系统设置
15.1.2.1.1.设置系统时间
1)查看当前时间:date
2)设定系统时间:sudo date -s "YYYY-MM-DD HH:MM:SS"
4)按增量设定系统时间:sudo date -s "+2 hours"
15.1.2.2.文件与目录操作
15.1.2.2.1.查看目录内容
1)ls -l # 详细列表(权限/大小/时间)
2)ls -a # 显示隐藏文件(如 .bashrc)
3)ls -lh # 人类可读的文件大小(如 KB/MB)
15.1.2.2.2.创建和删除目录
1)mkdir demo # 创建目录
2)touch file.txt # 创建空文件
3)rm file.txt # 删除文件
4)rm -r demo # 递归删除目录**(慎用!)**
15.1.2.2.3.文件复制、移动、命名
1)cp file.txt backup/ # 复制文件到目录
2)mv file.txt new_name.txt # 重命名
3)mv file.txt ~/Documents # 移动文件
15.1.2.2.4.查找文件
1)find /home -name "*.log" # 按名称查找
2)find /var -size +10M # 查找大于10MB的文件
15.1.2.2.5.分割文件
基本语法:split [options] [input_file] [prefix]
1)input_file:需要被分割的文件。如果不指定,split 会从标准输入读取数据。
2)prefix: 输出文件的前缀。分割后的文件会被命名为 prefixaa, prefixab, prefixac 等。
3)options常用选项:
-b SIZE: 按照指定的字节数来分割文件。例如,-b 10M 会将文件按 10MB 来分割。
-l NUM: 按照行数来分割文件。例如,-l 1000 会将文件每1000 行分割一次。
-d: 使用数字后缀而不是字母。
-a LENGTH: 设置输出文件名的后缀长度,默认是 2。
--additional-suffix=SFX: 为每个输出文件附加一个后缀,SFX 是要添加的后缀。
示例:
|----------------------------------------|
| split -b 10M largefile.txt prefix_ |
15.1.2.3.文件内容操作
15.1.2.3.1.查看文件内容
1)cat file.txt # 显示全部内容
2)head -n 5 file.txt # 显示前5行
3)tail -f log.log # 实时追踪日志更新
15.1.2.3.2.文本处理
1)grep "error" log.txt # 搜索包含"error"的行
2)sed 's/foo/bar/g' file.txt # 替换文本中的foo为bar
3)awk '{print $1}' data.txt # 提取第一列数据
15.1.2.3.3.压缩与解压
1)tar -czvf archive.tar.gz dir/ # 压缩目录
2)tar -xzvf archive.tar.gz # 解压
3)zip -r backup.zip dir/ # ZIP压缩
4)unzip backup.zip # ZIP解压
15.1.2.3.4.文件合并
在 Linux 中,合并文件的常用命令是 cat,它可以将多个文件的内容连接起来,并输出到标准输出或其他文件中。以下是常见的文件合并方法:
1**)使用 cat** 命令合并多个文件
假设有两个文件 file1.txt 和 file2.txt,想将它们合并为一个新的文件 merged.txt,可以使用以下命令:
cat file1.txt file2.txt > merged.txt
这个命令将 file1.txt 和 file2.txt 的内容按顺序合并,并将合并后的内容保存到 merged.txt 中。
2**)将文件内容追加到已有文件**
如果想将 file2.txt 的内容追加到 file1.txt 的末尾,可以使用 >>:
cat file2.txt >> file1.txt
3)合并多个文件并分页显示
如果想查看多个文件的合并内容并分页显示,可以结合 cat 和 less 命令:
cat file1.txt file2.txt | less
4)使用 find 和 cat 合并多个文件
如果需要合并符合某些条件的文件(例如,所有 .txt 文件),可以通过 find 命令与 cat 配合使用:
find . -name "*.txt" -exec cat {} + > merged.txt
这将会将当前目录及其子目录下所有 .txt 文件的内容合并到 merged.txt 中。
5**)合并并去重内容(去除重复行)**
如果想在合并文件时去除重复的行,可以使用 sort 和 uniq:
cat file1.txt file2.txt | sort | uniq > merged.txt
这样可以确保合并后的文件不包含重复行。
15.1.2.4.权限与用户管理
15.1.2.4.1.修改文件权限
1)chmod 755 script.sh # 设置权限为rwxr-xr-x
2)chown user:group file # 修改文件所有者
15.1.2.4.2.用户与组操作
1)sudo adduser new_user # 添加用户
2)sudo passwd new_user # 修改密码
3)sudo usermod -aG sudo new_user # 赋予sudo权限
4)groups username # 查看用户所属组
15.1.2.5.系统设置
15.1.2.5.1.查看进程
1)ps aux | grep nginx # 查找nginx进程
2)top # 动态查看资源占用
3)htop # 增强版top(需安装)
15.1.2.5.2.中止进程
1)kill -9 PID # 强制终止进程
2)pkill nginx # 按名称终止
15.1.2.5.3.后台运行
1)nohup ./script.sh & # 后台运行并忽略挂断
2)jobs # 查看后台任务
3)fg %1 # 将任务1切换到前台
15.1.2.6.网络操作
15.1.2.6.1.查看网络信息
1)ifconfig # 查看IP(旧版)
2)ip addr # 新版IP查看
3)ping google.com # 测试连通性
4)netstat -tulnp # 查看监听端口
15.1.2.6.2.远程连接
1)ssh user@192.168.1.100 # SSH远程登录
2)scp file.txt user@host:/path # 远程复制文件
15.1.2.6.3.防火墙管理
1)sudo ufw allow 22 # 开放SSH端口(Ubuntu)
2)sudo firewall-cmd --add-port=80/tcp --permanent # CentOS
3)sudo systemctl restart firewalld
15.1.2.7.包管理(依赖系统)
15.1.2.7.1.Debian/Ubuntu (APT)
1)sudo apt update # 更新软件列表
2)sudo apt install nginx # 安装软件
3)sudo apt remove nginx # 卸载
15.1.2.7.2.CentOS/RHEL (YUM/DNF)
1)sudo yum install httpd # 安装
2)sudo dnf remove httpd # 卸载(CentOS 8+)
15.1.2.7.3.Arch Linux (Pacman)
1)sudo pacman -Syu # 更新系统
2)sudo pacman -S vim # 安装
15.1.2.8.磁盘管理
15.1.2.8.1.查看磁盘空间
1)df -h # 查看磁盘使用情况
2)du -sh /var/log # 查看目录大小
15.1.2.8.1.2.挂载磁盘
1)sudo mount /dev/sdb1 /mnt/data # 挂载
2)sudo umount /mnt/data # 卸载
15.1.2.9.定时任务
crontab -e # 编辑定时任务
示例:每天凌晨备份
0 0 * * * /path/to/backup.sh
15.1.2.10.Shell快捷操作
1)!! # 重复上一条命令
2)!$ # 上一条命令的最后一个参数
3)Ctrl + R # 搜索历史命令
4)Ctrl + C # 终止当前命令
15.1.2.11.系统服务管理(Systemd)
1)sudo systemctl start nginx # 启动服务
2)sudo systemctl enable nginx # 开机自启
3)sudo journalctl -u nginx # 查看日志
4)shutdown -r now
#-r表示重启(reboot),now表示立即执行。这是标准的重启命令。
5)halt
该命令的作用是停止系统运行并关闭电源(相当于关机),不会触发重启。虽然某些系统可能通过配置关联到重启,但默认行为是关机。
6)reboot
直接调用系统重启功能,等同于shutdown -r now。
7)init 6
通过切换系统运行级别(runlevel)到6,表示重启。这是传统的SysV初始化系统的重启方式,在大多数Linux发行版中仍兼容。
15.1.2.12.查询历史命令
history | grep 关键字