Linux

文件与目录操作命令

相对路径和绝对路径

绝对路径:以根目录做起点,描述路径的方式,路径以/开头 。

相对路径:以当前目录做起点,描述路径的方式,路径不需以/开头。

ls:列出当前目录下的文件和目录。

参数:

​ -l:显示详细信息(权限、所有者、大小、创建时间等)。

​ 第一个字符(’d’,’-‘)表示文件类型,d为文件夹,-为文件;

​ 此后三个字符为一组表示权限,分别为文件所有者,文件所属组用户,其他用户的权限,r可读,w 可写,x可执行;

​ 数字代表链接数;

​ 后面为文件所有者和文件所属组;

​ 然后是文件大小(字节);

​ 接下来为创建时间;

​ 最后为文件名。

​ -lh:以人类易读的方式列出文件大小。

​ -a:显示隐藏文件(以.开头的文件)。

cd:更改当前工作目录。

示例:

cd /home/user 进入 /home/user 目录。

cd .. 返回上一级目录。

pwd:显示当前工作目录的完整路径。

mkdir:创建新目录。make direction

参数:-p:自动创建不存在的父目录。

示例:

mkdir newfolder 创建名为 newfolder 的新目录。

mkdir -p test1/test2/test3

touch:创建文件。

示例:touch test.txt

rmdir:删除空目录。

rm:删除文件或目录。

参数:

​ -r:递归删除目录及其内容。

​ -f:强制删除文件。

示例:rm -rf /path/to/directory 强制递归删除一个目录及其内容。

cp:复制文件或目录。

参数:-r 递归复制目录。

示例:cp file1 file2 复制 file1 为 file2。

mv:移动或重命名文件或目录。

示例:mv oldfile newfile 将 oldfile 重命名为 newfile。

文件内容查看命令

cat:显示文件内容。

示例:cat file.txt 查看 file.txt 的内容。

more:分页显示文件内容,按页阅读长文件(空格翻页)。

示例:more file.txt

less:类似 more,但支持更灵活的分页查看。

示例:ess file.txt

head:查看文件的前几行。

参数(可选):-n 显示匹配的行的行号。

示例:head -n 10 file.txt 查看文件前10行。

tail:查看文件的最后几行。

tail [-f -num] 文件路径

参数:

​ -f 持续跟踪

​ -num 尾部多少行,不填默认10行

示例:tail -f -5 file.txt 查看文件最后5行并持续跟踪。

管道符|:将管道符左边命令的结果作为右边命令的输入

示例:cat test.txt | grep flag 从test.txt文件中输出包含flag的内容。

查找与搜索命令

find:在指定目录下查找文件或目录。

find 起始路径 -name “查找的文件名”

find 起始路径 -size +|-n[kMG]

​ +、-表示大于和小于;n表示大小;k(小写)、M、G为文件大小。

示例:

find /home -name "*.txt" 在 /home 目录下查找所有.txt 文件。*为通配符,进行模糊匹配。

find /home/-size -10k 在/home目录下查找所有小于10kb的文件

which:查看使用的一系列命令的程序文件路径

grep:在文件中搜索指定字符串。

grep -n 关键字 文件路径(可作为输入端口)

参数(可选):-n 显示匹配的行的行号。

示例:grep -n "hello" file.txt 在 file.txt 中搜索 hello 字符串。

locate:快速查找文件路径。

示例:locate file.txt

wc:统计

wc [-c -m -l -w] 文件路径

默认输出行数,单词数,字节数,文件名

参数:

​ -c 统计bytes数量

​ -m 统计字符数量

​ -l 统计行数

​ -w 统计单词数

示例:

wc flag.txt

wc -w flag.txt

用户与权限管理命令

sudo:以超级用户身份执行命令。

示例:sudo command 以管理员权限运行命令。

chmod:修改文件或目录的权限。

参数:

​ u:文件所有者

​ g:文件所属组

​ o:其他用户

​ a:所有用户

​ +:添加权限

​ -:去除权限

​ =:设置权限,会覆盖原来的权限

​ r:读,数值为4

​ w:写,数值为2

​ x:执行,数字为1

​ -R或–recursive:递归地更改指定目录及其所有子目录和文件的权限

示例:

chmod 755 file.sh 赋予文件 file.sh 可读、可写、可执行权限(所有者有完全权限,组和其他用户有读和执行权限)。

chmod u+x file.sh 给文件所有者添加执行权限。

chown:更改文件或目录的所有者。

示例:chown user:group file.txt 修改 file.txt 的所有者为 user,所属组为 group。

passwd:更改用户密码。

示例:passwd username 修改指定用户的密码。

系统管理命令

top:实时显示系统的资源使用情况,包括CPU、内存占用,进程信息。

ps:显示当前系统的进程状态。

示例:ps aux 显示所有进程及其详细信息。

kill:终止进程。

示例:kill PID 终止进程号为 PID 的进程。

shutdown:关闭系统。

示例:

shutdown -h now 立即关闭系统。

shutdown -r now 立即重启系统。

reboot:重启系统。

磁盘管理命令

df:查看文件系统的磁盘空间使用情况。

参数:-h 以人类可读的形式显示。

示例:df -h

du:查看文件或目录的磁盘空间使用情况。

参数:-h 以人类可读的形式显示。

示例:du -sh folder_name 查看目录 folder_name 的总大小。

fdisk:用于磁盘分区管理。

示例:fdisk /dev/sda

mount:挂载文件系统。

示例:mount /dev/sda1 /mnt 将设备 /dev/sda1 挂载到 /mnt 目录。

umount:卸载文件系统。

示例:umount /mnt 卸载 /mnt 下的文件系统。

软件包管理

根据不同的Linux发行版,软件包管理工具有所不同。

apt(适用于Debian系如Ubuntu):管理软件包的工具。

apt update:更新软件包列表。

apt upgrade:升级系统中已安装的软件包。

apt install package_name:安装软件包。

apt remove package_name:卸载软件包。

yum(适用于Red Hat/CentOS):用于软件包管理。

示例:yum install package_name

dnf:Fedora等较新版本的Red Hat系使用。

示例:dnf install package_name

网络操作命令

ping:检查主机网络连通性。

示例:ping google.com

ifconfig:查看和配置网络接口。

示例:ifconfig eth0 查看 eth0 网络接口的配置信息(较老命令,较新系统使用 ip 命令)。

ip:查看和管理网络接口。

示例:ip addr show 查看所有网络接口的IP地址。

netstat:显示网络连接、路由表等信息。

示例:netstat -an 显示所有活动的网络连接。

curl:从服务器获取数据,支持多种协议(HTTP、FTP等)。

示例:curl http://example.com 下载 example.com 的页面内容。

压缩与解压命令

tar:打包和解压缩文件。

示例:

tar -cvf archive.tar file1 file2 打包。

tar -xvf archive.tar 解压

tar -czvf archive.tar.gz file1 file2 压缩

tar -xzvf archive.tar.gz 解压缩

zip / unzip:压缩与解压缩ZIP文件。

示例:

zip archive.zip file1 file2 压缩

unzip archive.zip 解压。

时间管理命令

date:显示或设置系统日期和时间。

示例:date 显示当前系统时间。

cal:显示当前月的日历。

示例:cal 显示本月日历。

其他

ln:创建链接

参数:-s 创建符号链接(软链接)。不加-s则创建硬链接。

​ -f 强制创建链接,如果目标文件已存在,则先删除目标文件再创建链接。

​ -n 如果链接的目标是一个目录,将在该目录内创建链接,而不是链接到该目录。

示例:ln [选项] 源文件 目标文件

ln -s 源文件 目标文件

`:反引号,包围的内容作为命令执行

>和>>:重定向符

> :左侧命令的结果,覆盖写入到符号右侧指定的文件中。

>>:左侧命令的结果,追加写入到符号右侧指定的文件中。

echo:输出命令

echo 输出的内容

示例:

echo "hello Linux" 输出”hello Linux”

echo "flag" >> flag.txt 将flag写入到flag.txt文件

​ echo `pwd` 执行pwd命令