找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

937

积分

0

好友

120

主题
发表于 5 天前 | 查看: 19| 回复: 0

1. 文件和目录操作

1.1 cd 命令

用于切换当前工作目录,参数可以是绝对路径或相对路径。

  • cd /home 进入 /home 目录。
  • cd .. 返回上一级目录。
  • cd ../.. 返回上两级目录。
  • cd / 返回根目录。
  • cd - 返回上次所在的目录。

1.2 目录创建与删除

  • mkdir <目录名> 创建目录。
  • mkdir dir1 dir2 同时创建两个目录。
  • mkdir -p /tmp/dir1/dir2 递归创建目录树。
  • rm -f file1 删除 ‘file1’ 文件。
  • rmdir dir1 删除 ‘dir1’ 目录(目录需为空)。
  • rm -rf dir1 递归删除 ‘dir1’ 目录及其所有内容。
  • rm -rf dir1 dir2 同时删除两个目录及其内容。

1.3 pwd 命令

  • pwd 显示当前工作目录的绝对路径。

1.4 ls 命令

用于列出目录内容。

  • ls 查看目录中的文件。
  • ls -l 以长格式显示文件和目录的详细信息。
  • ls -a 列出全部文件,包括隐藏文件(以 . 开头)。
  • ls -lh 查看详情列表,文件大小以易读单位(K, M, G)显示。
  • ls -lSR 按文件大小升序查看详情列表。
  • tree 以树形结构查看文件和目录(若未安装,可使用 yum install tree 安装)。
  • ls -R 递归列出子目录的内容。
  • ls -al /proc/pid/exe 通过进程 PID 查询其可执行文件路径。

1.5 cp 命令

用于复制文件或目录。

  • -a 保持文件所有特性,等同于 -dR --preserve=all
  • -p 保持文件属性(如时间戳、权限),常用于备份。
  • -i 覆盖前进行确认提示。
  • -r 递归复制,用于目录复制。
  • -u 仅在源文件比目标文件新或目标文件不存在时才复制。
  • cp dir/* . 复制某目录下的所有文件至当前目录。
  • cp -a dir1 dir2 复制目录及其所有属性。
  • cp -a /temp/dir1 . 复制一个目录至当前目录。
  • ln -s file1 link1 创建指向文件/目录的软链接
  • ln file1 lnk1 创建指向文件/目录的硬链接
  • touch -t 0712250000 file1 修改文件或目录的时间戳 (格式:YYMMDDhhmm)。

1.6 mv 命令

用于移动或重命名文件/目录。

  • -f 强制执行,覆盖时不提示。
  • -i 覆盖前进行确认提示。
  • -u 仅在源文件比目标文件新时才更新。
  • mv old_dir new_dir 重命名或移动目录。

1.7 rm 命令

用于删除文件或目录。

  • -f 强制删除,忽略不存在的文件,不提示。
  • -i 交互模式,删除前确认。
  • -r 递归删除,用于删除目录。此参数非常危险,需谨慎使用

2. 查看文件内容

2.1 基础查看命令

  • cat file1 从首行开始正向查看文件全部内容。
  • cat -n file1 查看文件内容并显示行号。
  • tac file1 从最后一行开始反向查看文件内容。
  • more file1 分页查看长文件内容(可向下翻页)。
  • less file1 类似 more,但支持上下滚动、搜索等更多操作。
  • head -n 2 file1 查看文件前两行。
  • tail -n 2 file1 查看文件最后两行。
  • tail -f /log/msg 实时追踪文件新增内容(常用于查看日志)。
  • tail -n +1000 file1 从第1000行开始显示至文件末尾。
  • cat filename | head -n 3000 | tail -n +1000 显示文件的第1000行到第3000行。
  • cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000行(即3000~3999行)。

2.2 文本搜索与处理

高效的文本处理是Linux系统管理Shell脚本编写的核心技能。

  • grep ss hello.txt 在文件 hello.txt 中查找包含关键词 ss 的行。
  • grep ^s hello.txt 查找以 s 开头的行。
  • grep [0-9] hello.txt 查找包含任意数字的行。
  • sed 's/ss/mm/g' hello.txt 将文件中所有的 ss 替换为 mm
  • sed '/^$/d' hello.txt 删除文件中所有空白行。
  • sed '/ *#/d; /^$/d' hello.txt 删除所有注释(以 # 开头)和空白行。
  • sed -e ‘1d’ hello.txt 输出排除第一行后的内容。
  • sed -n ‘/s1/p’ hello.txt 仅打印包含关键词 s1 的行。
  • sed -e ‘s/ *$//‘ hello.txt 删除每行末尾的空格字符。
  • sed -e ‘s/s1//g’ hello.txt 删除所有 s1 词汇,保留其余部分。
  • sed -n ‘1,5p;5q’ hello.txt 查看第1行到第5行内容。
  • sed -n ‘5p;5q’ hello.txt 查看第5行内容。

2.3 文件比较与合并

  • paste file1 file2 合并两个文件的内容(默认以制表符分隔)。
  • paste -d ‘+’ file1 file2 合并内容,用 + 作为分隔符。
  • sort file1 file2 对两个文件内容合并后排序。
  • sort file1 file2 | uniq 取并集,重复行只保留一份。
  • sort file1 file2 | uniq -u 删除交集,保留只在一个文件中出现的行。
  • sort file1 file2 | uniq -d 取交集,保留同时出现在两个文件中的行。
  • comm -1 file1 file2 比较文件,不显示 file1 独有的内容。
  • comm -2 file1 file2 比较文件,不显示 file2 独有的内容。
  • comm -3 file1 file2 比较文件,不显示两个文件共有的内容。

3. 文件搜索

3.1 find 命令

功能强大的实时文件搜索工具。

  • find / -name file1 从根目录开始搜索名为 file1 的文件或目录。
  • find / -user user1 搜索属于用户 user1 的所有文件/目录。
  • find /dir -name *.bin/dir 目录中搜索后缀为 .bin 的文件。
  • find /usr/bin -type f -atime +100 搜索过去100天内未被访问过的可执行文件。
  • find /usr/bin -type f -mtime -10 搜索10天内被创建或修改过的文件。
  • find . -regex ‘.*\(net\|comm\).*’ 使用正则表达式,匹配路径中包含 netcomm 的文件。

3.2 快速定位命令

  • locate *.mp4 利用数据库快速寻找 .mp4 结尾的文件(需先运行 updatedb)。
  • whereis <关键词> 定位二进制文件、源码和手册页的位置(如 whereis halt)。
  • which <关键词>$PATH 环境变量指定的路径中,查找某个命令的完整路径(如 which halt)。

4. 文件权限管理

权限表示r(读,4)、w(写,2)、x(执行,1)。使用 + 添加权限,- 移除权限。

4.1 chmod 命令

修改文件或目录的权限。

  • ls -lh 以易读格式显示当前目录文件的详细权限。
  • chmod ugo+rwx dir1 为所有者(u)、所属组(g)、其他人(o)添加读、写、执行权限。
  • chmod go-rwx dir1 移除所属组(g)和其他人(o)的读、写、执行权限。
  • chmod 777 filename 赋予最高权限(数字法)。
  • chmod u+s /bin/file1 设置 SUID:执行该文件的用户将拥有文件所有者的权限。
  • chmod g+s /home/public 设置 SGID:在此目录下创建的新文件将继承目录的所属组。
  • chmod o+t /home/public 设置 Sticky Bit:仅文件所有者或root可删除该目录下的文件。
  • chmod +x file_path 为所有用户添加执行权限。
  • chmod ug=wx file_path 为所有者和所属组设置写、执行权限,取消读权限。

4.2 chown 命令

改变文件的所有者和所属组。

  • chown user1 file1file1 的所有者改为 user1
  • chown -R user1 dir1 递归更改 dir1 目录及其下所有文件的所有者。
  • chown user1:group1 file1 同时更改所有者为 user1,所属组为 group1

4.3 chgrp 命令

改变文件的所属组。

  • chgrp group1 file1file1 的所属组改为 group1

5. 打包与压缩

5.1 tar 命令

主流打包工具,可结合gzip或bzip2进行压缩。

  • -c:创建打包文件。
  • -x:解包/解压。
  • -t:查看包内文件列表。
  • -z:使用gzip压缩/解压(后缀 .tar.gz.tgz)。
  • -j:使用bzip2压缩/解压(后缀 .tar.bz2)。
  • -v:显示详细过程。
  • -f:指定文件名。
  • -C:指定解压目录。
  • 压缩tar -zcv -f filename.tar.gz file_to_compress
  • 查看tar -ztv -f filename.tar.gz
  • 解压tar -zxv -f filename.tar.gz -C /target_dir

5.2 其他压缩格式

  • gzip file1 / gunzip file1.gz:压缩/解压 .gz 文件。
  • bzip2 file1 / bunzip2 file1.bz2:压缩/解压 .bz2 文件。
  • zip file1.zip file1 / unzip file1.zip:创建/解压zip文件。
  • zip -r file1.zip file1 file2 dir1:将多个文件和目录打包为zip。
  • rar a file1.rar test_file / rar x file1.rar:创建/解压rar文件。

6. 进程管理

6.1 ps 命令

查看进程快照。

  • ps -ef 显示所有进程的完整信息。
  • ps aux 以BSD格式显示所有进程的详细信息(包括CPU、内存占用)。
  • ps -lA 以长格式显示所有进程。
  • pstree -aup 以树状图显示进程间关系,包含PID和用户。
  • netstat -lntpss -tnl 查看监听端口及对应进程。

6.2 kill 命令

终止进程。

  • kill -9 PID 强制终止指定PID的进程。
  • killall 程序名 / pkill 程序名 根据程序名终止进程。

6.3 Vim 常用操作

  • 删除x(删光标后字符), X(删光标前字符), dd(删整行), ndd(删n行)。
  • 复制粘贴yy(复制行), nyy(复制n行), p(粘贴到下一行), P(粘贴到上一行)。
  • 撤销重做u(撤销), Ctrl + r(重做)。
  • 显示行号:set number
  • 块操作:n1,n2 co n3 复制n1到n2行到n3行下;:n1,n2 d 删除n1到n2行。

7. 系统信息与性能

7.1 开关机与注销

  • shutdown -h now 立即关机。
  • shutdown -r +10 10分钟后重启。
  • reboot 重启。
  • poweroff / halt 关机。
  • logout 注销当前Shell会话。

7.2 系统信息查看

  • uname -a 查看内核/操作系统/CPU信息。
  • cat /proc/version 查看内核版本等详细信息。
  • hostname 查看主机名。
  • cat /proc/cpuinfo 查看CPU信息。
  • free -h 查看内存使用情况(易读格式)。
  • df -h 查看磁盘空间使用情况。
  • du -sh /dir 查看指定目录大小。
  • uptime 查看系统运行时间及平均负载。
  • top / htop 动态实时查看系统资源占用和进程信息。
  • vmstat 1 5 每1秒采样一次系统状态,共5次。

7.3 用户与组管理

  • useradd username 创建用户。
  • userdel -r username 删除用户及其主目录。
  • passwd username 修改用户密码。
  • usermod -aG groupname username 将用户添加到附加组。
  • groups username 查看用户所属组。
  • id username 查看用户UID、GID信息。

7.4 网络管理

  • ifconfigip addr 查看网络接口信息。
  • netstat -lntp 查看所有TCP监听端口及进程。
  • netstat -antp 查看所有TCP连接状态。
  • route -n 查看路由表。
  • nslookup www.example.com 查询域名解析。
  • ss -tnl 查看监听端口(netstat的现代替代)。

7.5 服务管理 (CentOS 7+)

  • systemctl list-unit-files --type=service | grep enabled 查看开机自启服务。
  • systemctl start/stop/restart/status service_name 启/停/重启/查看服务状态。
  • systemctl enable/disable service_name 设置/取消服务开机自启。



上一篇:Nginx SSL证书签发与HTTPS加密传输配置实践
下一篇:Spring官方gRPC框架深度解析:简化配置,与MVC无缝兼容
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 23:13 , Processed in 0.263000 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表