linux基本命令
Linux的一些基本指令
一.ls -l命令
ls基本为列出当前目录的文件和文件夹,也可添加-a,-h,-l选项(三者可搭配使用)
- -a:列出目录内所有内容(包括隐藏文件和文件夹)
- -l:以列表形式展示内容,并显示更多信息
- -h: 以易于阅读的形式列出文件大小,如K,M,G(-h选项必须要搭配-l使用)

二.touch创建文件
如果文件不存在,touch 文件名 ,创建一个空文件。如果文件已存在,touch 更新文件的访问和修改时间为当前时间。
示例:touch newfile.txt 创建空文件newfile.txt,touch -t 202503151200 file.txt 将file.txt的时间戳设为2025年3月15日12:00
三.管道符 | 的应用
管道符将前一个命令的标准输出作为后一个命令的标准输入。
示例:
- ls -l | grep “flag”:列出当前目录所有文件,然后过滤出包含”txt”的行。
- · cat /var/log/syslog | tail -n 20:显示日志文件最后20行。
- · echo “hello” | wc -c:统计字符串的字符数。

四.mv指令
mv 用于移动文件或重命名。
- 重命名:mv 原文件名 新文件名
- 示例:mv old.txt new.txt 将old.txt重命名为new.txt。
- 移动:mv 文件名 目标目录/
- 示例:mv file.txt /home/user/docs/ 将file.txt移动到docs目录。
- 同时移动并重命名:mv 文件名 目标目录/新文件名
- 示例:mv report.txt /backup/report_20250315.txt。
注意:如果目标已存在,mv 会直接覆盖(可用 -i 选项提示确认)。
示例:mv -i source.txt dest.txt 若dest.txt存在则询问是否覆盖。
五.软链接
软连接(符号链接)类似于Windows的快捷方式,指向另一个文件或目录。
- 创建:ln -s 目标文件 链接名
- 示例:ln -s /home/user/data.txt link.txt 创建指向data.txt的软连接link.txt。
- 使用:通过链接名访问,如同访问原文件一样。例如 cat link.txt 会显示data.txt的内容。
- 查看链接指向:ls -l link.txt 会显示 link.txt -> /home/user/data.txt。
- 注意事项:
- 如果原文件被删除或移动,链接会失效(“断链”)。
- 链接可跨文件系统。示例:为目录创建软连接 ln -s /var/log logs,然后可以通过 cd logs 进入/var/log目录。

六.用cp指令复制文件到指定位置
复制文件到目录:cp 源文件 目标目录/
- 示例:cp file.txt /backup/ 将file.txt复制到/backup目录。
复制并重命名:cp 源文件 目标目录/新文件名
- 示例:cp report.doc /archive/report_20250315.doc。
复制目录:需要 -r(递归)选项。
- 示例:cp -r /home/user/docs /backup/ 将docs目录及其内容复制到/backup。
常用选项:
- -i:覆盖前提示。
- -v:显示复制过程。
- 示例:cp -iv file1.txt file2.txt /target/ 复制两个文件到/target,并显示过程,覆盖前询问。
七.绝对路径与相对路径
绝对路径:从根目录 / 开始的完整路径,唯一确定文件或目录的位置。
- 示例:/home/user/docs/report.txt
相对路径:相对于当前工作目录的路径。
- 示例:假设当前目录是 /home/user,则 docs/report.txt 表示 /home/user/docs/report.txt。
. 表示当前目录,.. 表示上级目录。
../pics/photo.jpg 表示从当前目录的上级目录进入pics目录找到photo.jpg。
识别:以 / 开头的是绝对路径,否则是相对路径。
八.设置用户密码和root用户密码,切换用户
设置当前用户密码:
- 直接输入 passwd,按提示输入当前密码,然后输入新密码两次。
设置root密码(需要root权限):
- 方法1:sudo passwd root(输入当前用户密码后,设置root密码)。
- 方法2:先切换到root(su -),然后输入passwd。
切换用户:
- su 用户名:切换到指定用户,需要输入该用户密码。环境变量可能不完全加载。
- su - 用户名:切换到指定用户,并加载该用户的环境变量(相当于重新登录)。
- sudo -i:以root身份运行交互式shell(需要当前用户在sudo组)。
九.使用文本编辑器
常用命令行编辑器有 nano 和 vim。
- nano
- 打开文件:nano 文件名
- 编辑:直接输入内容。
- 保存:按 Ctrl+O,然后回车确认文件名。
- 退出:按 Ctrl+X。如果文件未保存,会提示保存。
- 示例:nano myfile.txt 创建/编辑myfile.txt。
- vim
- 打开文件:vim 文件名
- 进入插入模式:按 i,此时可输入内容。
- 退出插入模式:按 Esc。
- 保存并退出:输入 :wq 然后回车。
- 不保存退出:输入 :q!。
- 示例:vim /etc/hosts 编辑hosts文件。
十.打包文件和压缩文件
打包与压缩通常结合使用,主要用 tar 命令。
创建tar包(不压缩):tar -cvf 包名.tar 文件/目录…
- 示例:tar -cvf backup.tar /home/user/docs 将docs目录打包成backup.tar。
创建并压缩(gzip):tar -czvf 包名.tar.gz 文件/目录…
- 示例:tar -czvf project.tar.gz project/ 将project目录打包并用gzip压缩。
解包/解压:
- 解压tar包:tar -xvf 包名.tar
- 解压tar.gz:tar -zxvf 包名.tar.gz
- 可指定解压目录:tar -zxvf 包名.tar.gz -C /目标路径

单独压缩:
- zip -r 压缩包.zip 目录 打包成zip(压缩目录时用)。
- unzip 压缩包.zip 解压zip。
十一.查看基本的日志文件
日志文件通常位于 /var/log/ 目录下。常用查看方法:
- 直接查看:
- cat /var/log/syslog 显示全部。
- less /var/log/syslog 分页查看(按空格翻页,按q退出)。
- tail -n 50 /var/log/syslog 显示最后50行。
- tail -f /var/log/syslog 实时跟踪日志更新(按 Ctrl+C 停止)。
- head -n 20 /var/log/syslog 显示前20行。
- 过滤特定内容:
- grep “error” /var/log/syslog 查找包含”error”的行(不区分大小写加 -i)。
- grep -E “error|fail” /var/log/syslog 同时搜索多个关键词。
- 常用日志文件:
- /var/log/syslog 或 /var/log/messages:系统总日志。
- /var/log/auth.log:认证日志(登录、sudo等)。
- /var/log/kern.log:内核日志。
- /var/log/dmesg:内核环缓冲区信息(可用 dmesg 命令查看)。
- /var/log/boot.log:系统启动日志。
- 应用日志如 /var/log/nginx/access.log、/var/log/mysql/error.log。
- 使用 journalctl(systemd系统):
- journalctl -xe 查看最近系统日志及解释。
- journalctl -u ssh.service 查看ssh服务日志。
- journalctl –since “1 hour ago” 查看最近1小时日志。
十二. 常用二进制文件目录
- /bin:基本命令(ls, cp等)。
- /sbin:系统管理命令(fdisk, ifconfig等)。
- /usr/bin:大多数用户命令。
- /usr/sbin:系统管理命令(许多属于root)。
- /usr/local/bin:本地安装的程序。
- /opt:可选软件包。
- 这些目录通常包含在环境变量 PATH 中,可直接执行其中的程序。
十三. 给文件赋权(修改权限)
使用 chmod 命令。
- 符号方式:chmod [u/g/o][+/-/=][r/w/x] 文件
1
2
3
4
5
6示例:
. chmod u=rwx,g=rx,o=rx 给每个用户设置具体的权限。
· chmod u+x script.txt 给所有者加执行权限。
· chmod g-w file.txt 移除组的写权限。
· chmod o=r file.txt 设置其他用户只有读权限。
· chmod a+x script.txt 给所有用户(所有者、组、其他)加执行权限。 - 数字方式:用三位八进制数表示权限(r=4, w=2, x=1)。
1
2
3
4示例:
- chmod 755 script.txt 设置权限 rwxr-xr-x(所有者读写执行,组和其他读执行)。
- chmod 644 file.txt 设置 rw-r--r--。
- 递归修改目录权限:chmod -R 755 directory/ 将目录及其内部文件都设为755。
十四.运行可执行文件
运行可执行文件:
- 如果文件在当前目录:./可执行文件名(需要执行权限)。
- 示例:./hello 运行当前目录下的hello程序。
- 如果文件在PATH环境变量包含的目录中(如/bin、/usr/bin),直接输入文件名即可。
- 示例:ls、python3。
- 使用绝对路径或相对路径执行。
- 示例:/home/user/bin/myapp。
- 如果没有执行权限,先赋予:chmod +x 文件名,再运行。
- 对于脚本(如Python、Shell),也可用解释器运行:python3 script.py 或 bash script.sh。
- 如果文件在当前目录:./可执行文件名(需要执行权限)。
十五. 递归删除
rm -r 目录名 删除目录及其所有内容(递归)。
示例:rm -r old_project/ 删除old_project目录。rm -rf 目录名 强制递归删除,不提示确认。
示例:rm -rf /tmp/cache/ 强制删除/tmp/cache目录。删除文件:rm 文件名。
安全选项:rm -i 删除前逐个询问,rm -v 显示删除过程。
危险命令:绝对避免 rm -rf / 或 rm -rf /*,会删除系统所有文件。
十六.使用 find、grep 查找flag
find 查找文件中flag
- 按文件名:find 起始路径 -name “文件名模式”
- 示例:find /home -name “flag.txt” 在/home下查找名为flag.txt的文件。
- 使用通配符:find / -name “flag*” 查找所有以flag开头的文件。
- 忽略大小写:-iname。
- 按文件类型:-type f(普通文件)、-type d(目录)。
- 示例:find /var/log -type f -name “*.log” 查找所有.log文件。
- 按大小:-size +100M 查找大于100M的文件。
- 按时间:-mtime -7 7天内修改过的文件。
- 执行操作:-exec 对找到的文件执行命令。
- 示例:find . -name “*.tmp” -exec rm {} ; 删除所有.tmp文件
grep 搜索文件内容
- 基本搜索:grep “要查找的字符串” 文件
- 示例:grep “flag{“ secret.txt ( 在secret.txt中搜索flag{ )。
- 递归搜索目录:grep -r “flag” /home/user/ 在/home/user/下所有文件中递归搜索。
- 常用选项:
- -i 忽略大小写。
- -l 只显示包含匹配内容的文件名。
- -n 显示行号。
- -v 显示不匹配的行。
- -c 统计匹配行数。
组合使用 find 和 grep:
- 方法1:find / -type f -name “*.txt” -exec grep -l “flag” {} ; 查找所有txt文件中包含flag的文件名。
- 方法2:grep -r –include=”*.txt” “flag” / 用grep的–include限制文件类型。
十七.查看当前登录用户的用户名:
1 | whoami |
十八.查看网络配置信息
1 | ip addr |
十九.查看进程
1 | ps aux |
输出第一列数据
1 | ps aux | awk "{print $1}" |
二十.查找进程中USER为root的进程
1 | ps -u root |
二十一.创建新目录
1 | mkdir 文件名 |
二十二.添加用户
1 | sudo useradd 用户名 |
二十三.主机ssh虚拟机
1 | ssh 用户名@虚拟机IP |
二十四.定时任务cron,每分钟执行新建的shell脚本,结果追加到/test.txt
1 | crontab -e |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hello World!
