Linux 命令入门指南:快速掌握基础命令
作为程序员,我们在日常的工作中或多或少都会接触 Linux ,掌握其基本命令也是必不可少的。网上很多人都会推荐去看《鸟哥的私房菜—基础篇》,作为 Linux 编程的爱好者的我,还是不建议初学者一上来就看这本书,感觉对初学者不太友好,当手册去查还是可以的。
为了让更多想学习 Linux 的朋友快速入门,我这里专门给大家提供一个系统性学习 Linux 命令的详细指南,该指南主要是介绍要掌握的 Linux 基本命令有哪些,以及提供一些基础的示例,更加详细的命令参数大家可以在这个网站上查询,很方便的。https://man.niaoge.com/
先来大致浏览下我们本篇文章要讲解的命令:
文件和目录操作命令
ls:列出目录内容,想看看当前目录下有什么?简单!
1 | ls |
cd:更改当前目录,
想跳转到桌面目录?试试这个:
1 | cd ~/Desktop |
touch: 创建新文件,
快速创建一个新文件 note.txt:
1 | touch note.txt |
pwd:显示当前目录的完整路径,
确认你现在在哪个目录?只需一条命令:
1 | pwd |
mkdir:创建新目录,
需要一个新的项目目录 project?轻松搞定:
1 | mkdir project |
rm:删除文件或目录,
要小心使用!彻底删除一个目录 project:
1 | # -f 或 --force 选项强制删除文件或目录 |
cp:复制文件或目录,
将文件 example.txt 复制到目录 backup 中:
1 | cp example.txt backup/ |
mv:移动或重命名文件或目录,
更改文件名 old_name.txt 为 new_name.txt:
1 | mv old_name.txt new_name.txt |
将文件 report.txt 移动到另一个目录:
1 | mv report.txt ~/Documents/ |
tree : 树形结构显示目录,首先确保已安装 tree
1 | # 安装 tree |
ln : 创建链接文件,
创建 source.txt 的硬链接 hard_link.txt:
1 | ln source.txt hard_link.txt |
或者创建符号链接(软链接):
1 | ln -s source.txt soft_link.txt |
权限管理命令
chown:更改文件或目录的所有者和群组,
文件归谁?chown说了算:
1 | chown newowner filename |
chmod:更改文件或目录权限,
谁能看?谁能改?chmod让你决定:
1 | chmod 755 filename |
chgrp:专门用于更改文件或目录的群组归属,
改变文件或文件夹的所属群组,轻松管理访问权限:
1 | chgrp newgroup filename |
软件包管理命令
Debian/Ubuntu系统
apt-get:一键管理软件。安装、更新或删除软件包
装软件、升级都不是问题,apt-get帮你忙:
1 | sudo apt-get install packagename |
CentOS/RHEL系统
yum:包管理器,包管理器让软件安装更简单,安装、更新或删除软件包
1 | yum install packagename |
压缩和解压命令
tar:文件打包工具,
把一堆文件或文件夹打包成一个文件,超方便的备份方式:
1 | tar -cvf myfiles.tar /path/to/directory |
gzip:压缩文件,
想让文件小一点,传输快一点?gzip来帮忙:
1 | gzip filename |
bzip2:另一压缩选择,
寻找比gzip还要压得更紧的?试试 bzip2:
1 | bzip2 filename |
文本处理命令
cat:查看和合并文件,
想快速查看文件内容或把几个文件拼成一个?用 cat:
1 | # 查看文件内容 |
more/less:分页浏览文本,
文件太长,一屏看不完?试试 more 和 less:
1 | more longfile.txt |
grep:文本中的搜寻高手,
在文本文件中查找某个字符串,如:找出文件中包含”error”的所有行:
1 | grep 'error' logfile.txt |
sed:流编辑器,
把文本中的”old”全部替换成”new”:
1 | sed 's/old/new/g' file.txt |
awk:文本处理小能手,
打印文件的第一列:
1 | awk '{print $1}' file.txt |
sort:给你的文本排排队,
对文件的内容按行排序:
1 | sort file.txt |
uniq:重复行不见了,
过滤掉重复行,记得先sort:
1 | sort file.txt | uniq |
cut:文本的“剪刀手“ ,
只看每行的前5个字符:
1 | cut -c1-5 file.txt |
wc:数数大师,
数一数文件里有多少行、词、字符:
1 | wc file.txt |
find:文件搜查官,
搜索某文件,在目录中搜索所有.txt文件:
1 | find /path/to/search -name "*.txt" |
head/tail:文件的头和尾,
看文件的开头10行或结尾10行:
1 | head file.txt |
系统管理命令
top:实时监控系统状态,
想知道你的电脑现在在忙什么?top就像电脑的健康监测器:
1 | top |
ps:查看运行中的进程,
想找出所有正在运行的程序?ps 给你全视角:
1 | ps aux |
kill:结束进程,
有个进程不听话,要“礼貌地”让它停止?用 kill:
1 | kill PID |
useradd/userdel:用户账号管理,
新来了个同事,需要账号?或者有人离开了?
1 | useradd newuser |
df:检查磁盘空间,
硬盘还有空间吗?df一目了然:
1 | df -h |
du:分析文件夹大小,
这个文件夹占了多少空间?du告诉你答案:
1 | du -sh /path/to/directory |
hostname:查看或设置主机名,
这台机器叫什么?或者想给它起个新名字?
1 | # 查看主机名 |
uname:获取系统信息,
这台机器上跑的是什么操作系统?
1 | uname -a |
man:手册页,
忘记了某个命令的参数?man命令是你的救星:
1 | man command |
passwd:更改密码,
需要更改密码或重置别人的密码?
1 | passwd username |
su:切换用户 ,
需要临时变身为另一个用户?
1 | su username |
fdisk/gdisk:分区大师,
用于管理磁盘分区的工具,硬盘需要新分区或调整?
1 | fdisk /dev/sdx |
mount/unmount:挂载与卸载文件系统,
把新的硬盘或USB挂载上去,或者安全地移除它:
1 | mount /dev/sdx /mnt |
网络操作命令
ping:检查网络连接,
想确认你的电脑能不能访问互联网上的某个地址?ping是你的朋友:
1 | ping google.com |
ifconfig:配置和显示网络接口,
查看或设置网络接口的 IP 地址等信息:
1 | ifconfig |
ssh:安全地远程登录,
远程登录到另一台电脑上,安全又方便:
1 | ssh username@remotehost |
scp:安全地远程复制文件,
从一台电脑安全地传输文件到另一台电脑:
1 | scp localfile.txt username@remotehost:/remote/directory |
wget:从网上下载文件,
需要下载网上的文件?wget就搞定:
1 | wget http://example.com/file.zip |
curl:与网站交互,
发送请求到网站,可以用来下载文件或测试API:
1 | curl http://example.com |
netstat/ss:查看网络连接,
查看你的机器上的网络连接信息:
1 | netstat |
或者使用ss,一个更现代的替代:
1 | ss |
traceroute:追踪数据包的路径,
查看数据包从你的电脑到目标地址经过了哪些路由器:
1 | traceroute example.com |
dig:DNS查询,
查找域名的IP地址等DNS信息:
1 | dig example.com |
tcpdump:网络抓包工具,
监听并打印想要的数据包:例如,如果你想要捕获从特定IP地址和端口443的数据包,可以使用:
1 | tcpdump -i eth0 src host 192.168.1.1 and port 443 -w https_traffic_from_192.168.1.1.pcap |
telnet:远程访问工具,
测试远程服务的连接性,虽然现在多用ssh替代:
1 | telnet remotehost port |
lsof:查看打开的文件和套接字,
列出哪些进程正在使用网络套接字:
1 | lsof -i |
nc:网络连接小工具,
建立TCP/UDP连接,进行数据监听和传输:
1 | nc -l 1234 # 监听端口1234 |
其他常用命令
echo:输出文字到终端,也能写入文件,
1 | echo "This is a test." > test.txt |
history:显示历史命令,
看看你都敲过什么:
1 | history |
crontab:定时运行命令,自动化管理
1 | # crontab -e 命令用于编辑当前用户的cron作业列表。 |
cron 是 Linux 和 Unix 系统中用来定时执行任务的工具。
通过crontab -e命令,你可以为当前用户添加、编辑或删除计划任务。
总结:
至此,你已经系统地学习了 Linux 常见的基本命令,覆盖了文件和目录的操作、权限管理、软件包处理、压缩与解压、文本处理、系统管理以及网络操作等多个方面。这些命令是Linux 开发必须掌握的。
通过本篇文章的指南,希望初学者能够对 Linux 命令有了清晰的认识和实际操作的能力。记住,掌握这些命令只是开始,真正的精通还需要你在实践中不断探索和应用。遇到问题时,不要忘记利用 man 命令或在线资源寻求帮助,持续地学习和实践,你才能更加自如地驾驭 Linux 系统。
最后:
掌握了基本的 Linux 命令,接下来就是如何在 Linux 环境下进行编程,想要深入学习 Linux 编程的朋友们可以先关注我的公众号「跟着小康学编程」,这里不仅有持续更新的计算机基础相关的文章,还有如何系统学习 C、C++,Linux 系统编程以及网络编程的文章等。后续也会持续新增关于 Go微服务 、docker、k8s等云原生领域的内容。
感兴趣的朋友可以关注我的公众号,扫描下方二维码即可关注。
另外,小康最近创建了一个技术交流群,专门用来探讨技术相关或者解答读者的问题。大家在阅读这篇文章的时候,如果觉得有问题的或者有不理解的知识点,欢迎大家加群或者评论区询问。我能够解决的,尽量给大家回复。