鲜为人知而又实用的 Linux 命令大全
鲜为人知而又实用的 Linux 命令大全
Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务。Linux命令和它们的转换对于Linux用户、Shell脚本程序员和管理员来说是最有价值的宝藏。有些Linux命令很少人知道,但不管你是新手还是高级用户,它们都非常方便有用。 这篇文章的目的是介绍一些少有人知的Linux命令,它们一定会高效地帮你管理你的桌面/服务器。 1. sudo !!命令没有特定输入sudo命令而运行,将给出没有权限的错误。那么,你不需要重写整个命令,仅仅输入'!!'就可以抓取最后的命令。
·········10········20········30········40········50········60········
1. $ apt-get update
2.
3. E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
4. E: Unable to lock directory /var/lib/apt/lists/
5. E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
6. E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
-
·········10········20········30········40········50········60········
01. $ sudo !!
02.
03. sudo apt-get update
04. [ sudo ] password for server:
05. …
06. ..
07. Fetched 474 kB in 16s (28.0 kB/s)
08. Reading package lists... Done
09. server@localhost:~$
2. python命令下面的命令生产一个通过HTTP显示文件夹结构树的简单网页,可以通过浏览器在端口8000访问,直到发出中断信号。 # python -m SimpleHTTPServer 3. mtr命令我们大多数都熟悉ping和traceroute。那对于把两个命令的功能合二为一的mtr命令呢。如果mtr没在你的机子上安装,apt或者yum需要的包。 $ sudo apt-get install mtr (On Debian based Systems) # yum install mtr (On Red Hat based Systems) 现在运行mtr命令,开始查看mtr运行的主机和google.com直接的网络连接。 # mtr google.com 4. Ctrl+x+e命令这个命令对于管理员和开发者非常有用。为了使每天的任务自动化,管理员需要通过输入vi、vim、nano等打开编辑器。 仅仅从命令行快速的敲击“Ctrl-x-e”,就可以在编辑器中开始工作了。 5. nl命令“nl命令”添加文件的行数。一个叫做'one.txt'的文件,其每行的内容是(Fedora、Debian、Arch、Slack和Suse),给每行添加行号。首先使用cat命令显示“one.txt”的文件内容。
·········10········20········30········40········50········60········
1. # cat one.txt
2.
3. fedora
4. debian
5. arch
6. slack
7. suse
现在运行“nl命令”,以添加行号的方式来显示。
·········10········20········30········40········50········60········
1. # nl one.txt
2.
3. 1 fedora
4. 2 debian
5. 3 arch
6. 4 slack
7. 5 suse
6. shuf命令“Shut”命令随机从一个文件或文件夹中选择行/文件/文件夹。首先使用ls命令来显示文件夹的内容。
·········10········20········30········40········50········60········
01. # ls
02. Desktop Documents Downloads Music Pictures Public Templates Videos
03.
04. # ls | shuf (shuffle Input)
05. Music
06. Documents
07. Templates
08. Pictures
09. Public
10. Desktop
11. Downloads
12. Videos
13.
14. # ls | shuf -n1 # 随机选择一个
15. Public
16.
17. # ls | shuf -n1
18. Videos
19.
20. # ls | shuf -n1
21. Templates
22.
23. # ls | shuf -n1
24. Downloads
注意:你可以把‘ n1’替换成‘ n2’来输出两个随机选择或者使用 n3、 n4等数字输出其他任意的随机选择。 7. ss命令“ss”表示socket统计。这个命令调查socket,显示类似netstat命令的信息。它可以比其他工具显示更多的TCP和状态信息。
·········10········20········30········40········50········60········
01. # ss
02.
03. State Recv-Q Send-Q Local Address:Port Peer Address:Port
04. ESTAB 0 0 192.168.1.198:41250 *.*.*.*:http
05. CLOSE-WAIT 1 0 127.0.0.1:8000 127.0.0.1:41393
06. ESTAB 0 0 192.168.1.198:36239 *.*.*.*:http
07. ESTAB 310 0 127.0.0.1:8000 127.0.0.1:41384
08. ESTAB 0 0 192.168.1.198:41002 *.*.*.*:http
09. ESTAB 0 0 127.0.0.1:41384 127.0.0.1:8000
8. last命令“last”命令显示的是上次登录用户的历史信息。这个命令通过搜索文件“/var/log/wtmp”,显示logged-in和logged-out及其tty‘s的用户列表。
·········10········20········30········40········50········60········
01. # last
02. server pts/0 :0 Tue Oct 22 12:03 still logged in
03. server tty8 :0 Tue Oct 22 12:02 still logged in
04. …
05. ...
06. (unknown tty8 :0 Tue Oct 22 12:02 - 12:02 (00:00)
07. server pts/0 :0 Tue Oct 22 10:33 - 12:02 (01:29)
08. server tty7 :0 Tue Oct 22 10:05 - 12:02 (01:56)
09. (unknown tty7 :0 Tue Oct 22 10:04 - 10:05 (00:00)
10. reboot system boot 3.2.0-4-686-pae Tue Oct 22 10:04 - 12:44 (02:39)
11.
12. wtmp begins Fri Oct 4 14:43:17 2007
9. curl ifconfig.me那么如何得到你的外部IP地址呢?使用google?那么这个命令就在你的终端输出你的外部IP地址。 # curl ifconfig.me 注意:你可能没有按照curl包,你需要 apt/yum来按照包。 10. tree命令以树式的格式得到当前文件夹的结构。
·········10········20········30········40········50········60········
01. # tree
02. .
03. |-- Desktop
04. |-- Documents
05. | `-- 37.odt
06. |-- Downloads
07. | |-- attachments.zip
08. | |-- ttf-indic-fonts_0.5.11_all.deb
09. | |-- ttf-indic-fonts_1.1_all.deb
10. | `-- wheezy-nv- install .sh
11. |-- Music
12. |-- Pictures
13. | |-- Screenshot from 2013-10-22 12:03:49.png
14. | `-- Screenshot from 2013-10-22 12:12:38.png
15. |-- Public
16. |-- Templates
17. `-- Videos
18.
19. 10 directories, 23 files
11. pstree这个命令显示当前运行的所有进程及其相关的子进程,输出的是类似‘tree’命令的树状格式。
·········10········20········30········40········50········60········
01. # pstree
02. init─┬─NetworkManager───{NetworkManager}
03. ├─accounts-daemon───{accounts-daemon}
04. ├─acpi_fakekeyd
05. ├─acpid
06. ├─apache2───10*[apache2]
07. ├─at-spi-bus-laun───2*[{at-spi-bus-laun}]
08. ├─atd
09. ├─avahi-daemon───avahi-daemon
10. ├─bluetoothd
11. ├─colord───{colord}
12. ├─colord-sane───2*[{colord-sane}]
13. ├─console-kit-dae───64*[{console-kit-dae}]
14. ├─ cron
15. ├─cupsd
16. ├─2*[dbus-daemon]
17. ├─dbus-launch
18. ├─dconf-service───2*[{dconf-service}]
19. ├─dovecot─┬─anvil
20. │ ├─config
21. │ └─log
22. ├─exim4
23. ├─gconfd-2
24. ├─gdm3─┬─gdm-simple-slav─┬─Xorg
25. │ │ ├─gdm-session-wor─┬─x-session-manag─┬─evolution-a+
26. │ │ │ │ ├─gdu-notific+
27. │ │ │ │ ├─gnome-scree+
28. │ │ │ │ ├─gnome-setti+
29. │ │ │ │ ├─gnome-shell+++
30. │ │ │ │ ├─nm-applet──+++
31. │ │ │ │ ├─ ssh -agent
32. │ │ │ │ ├─tracker-min+
33. │ │ │ │ ├─tracker-sto+
34. │ │ │ │ └─3*[{x-sessi+
35. │ │ │ └─2*[{gdm-session-wor}]
36. │ │ └─{gdm-simple-slav}
37. │ └─{gdm3}
38. ├─6*[getty]
39. ├─gnome-keyring-d───9*[{gnome-keyring-d}]
40. ├─gnome-shell- cal ───2*[{gnome-shell- cal }]
41. ├─goa-daemon───{goa-daemon}
42. ├─gsd-printer───{gsd-printer}
43. ├─gvfs-afc-volume───{gvfs-afc-volume}
目前为止就这么多。在下篇文章中,我将涉及一些其他很少有人知道的有趣的Linux命令。到那时连接 Tecmint保持收看。喜欢和分享将有助于我们传播。 12. <空格> 命令你在终端上键入的每个命令都会记录到history,也能用history命令重新调用。 如何骗过history 命令呢?呵呵,你可以轻而易举地做到。在终端,只需要在键入命令之前输入一个或多个空格,这样你的命令就不会被记录了。 让我们体验一下吧,先在终端尝试五个常见的 Linux 命令并在命令之前留个空(例如** ls, pwd, uname, echo “hi”** 和 who),然后检查这些命令是不是记录在历史中。 avi@localhost:~$ ls avi@localhost:~$ pwd avi@localhost:~$ uname avi@localhost:~$ echo “hi” avi@localhost:~$ who 现在运行 avi@localhost:~$ history40 cd /dev/ 41 ls 42 dd if=/dev/cdrom1 of=/home/avi/Desktop/squeeze.iso 43 ping www.google.com 44 su 你看到没有最后执行的命令没有被记录。我们也可以用另一个命令 13. stat 命令Linux中的stat命令用来显示文件或文件系统的状态信息。当用文件名作为参数时,stat将会展示文件的全部信息。状态信息包括文件 大小、块、权限、访问时间、修改时间、状态改变时间等。 avi@localhost:~$ stat 34.odt File: `34.odt'Size: 28822 Blocks: 64 IO Block: 4096 regular file Device: 801h/2049d Inode: 5030293 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ avi) Gid: ( 1000/ avi) Access: 2013-10-14 00:17:40.000000000 +0530 Modify: 2013-10-01 15:20:17.000000000 +0530 Change: 2013-10-01 15:20:17.000000000 +0530 14. + . 和 + .上面的组合键事实上不是一个命令,而是传递最后一个命令参数到提示符后的快捷键,以输入命令的倒序方式传递命令。按住 Alt或Esc再按一下 “.”。 15. pv 命令在电影里尤其是好莱坞电影你可能已经看见过模拟文本了,像是在实时输入文字,你可以用pv命令仿照任何类型模拟风的文本输出,包括流水线输出。pv可能没有在你的系统上安装,你需要用apt或yum获取安装包,然后安装pv到你的机器。 root@localhost:# echo "Tecmint [dot] com is the world's best website for qualitative Linux article" | pv -qL 20 输出样式 Tecmint [dot] com is the world''s best website for qualitative Linux article 16. mount | colum -t上面的命令用一个很不错的格式与规范列出了所有挂载文件系统。 avi@localhost:~$ mount | column -t 输出样式 /dev/sda1on / type ext3 (rw,errors=remount-ro) tmpfson /lib/init/rw type tmpfs(rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfson /sys type sysfs(rw,noexec,nosuid,nodev) udev on /dev type tmpfs(rw,mode=0755) tmpfson /dev/shm type tmpfs(rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) fusectl on /sys/fs/fuse/connections type fusectl (rw) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) nfsd on /proc/fs/nfsd type nfsd (rw) 17. Ctr+l 命令在进行下一步之前,我先问一下,你是如何清理你的终端?呵呵,你会在提示符后键入 “clear”。好的。用上面的命令执行清理终端都将成为过去。你只需要按下Ctr+l,看看它如何立即清理你的终端。 18. curl 命令在命令行下如何检查你的未读邮件?这个命令对于工作在没有图形界面的服务器的人佷有用。它会在运行期间再次要求输入密码,你不需要在上面一行硬编码你的密码,否则会有其它安全风险。 avi@localhost:~$ curl -u avishek1210@gmail.com --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print \t if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;' 输出样式 Enter host password for user 'avishek1210@gmail.com': Gmail - Inbox for avishek1210@gmail.com People offering cars in Delhi - Oct 26 Quikr Alerts another dependency question Chris Bannister Ralf Mardorf Reco Brian François Patte Curt Siard berenger.morel Hi Avishek - Download your Free MBA Brochure Now... Diya ★Top Best Sellers Of The Week, Take Your Pick★ Timesdeal aptitude misconfigure? Glenn English Choosing Debian version or derivative to run Wine when resource poor Chris Bannister Zenaan Harkness Curt Tom H Richard Owlett Ralf Mardorf Rob Owens 19.screen 命令screen命令能断开一个会话下的一个长时间运行的进程并能再次连接,如有需要,也提供了灵活的命令选项 要运行一个长时间的进程,我们通常执行 avi@localhost:~$ ./long-unix-script.sh 缺乏灵活性,需要用户持续当前的会话,但是如果我们执行上面的命令是: avi@localhost:~$ screen ./long-unix-script.sh 它能在不同会话间断开或重连。当一个命令正在执行时按“Ctrl + A”然后再按“d”来断开。 重新连接运行: avi@localhost:~$ screen -r 4980.pts-0.localhost 注解:在这里,这个命令的稍后的部分是screen id,你能用‘screen -ls’命令查看。欲了解更多关于screen命令和它们的用法,请阅读我们的一些帮助文章:10 个screen命令的示例。 20. fileNo!写上面的命令不是笔误. ‘file’是一个能提供关于文件类型信息的命令。 avi@localhost:~$ file 34.odt 34.odt: OpenDocument Text 21. id上面的命令会打印真正的和有效的用户和组的id。 avi@localhost:~$ id 输出样式 uid=1000(avi) gid=1000(avi) groups=1000(avi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(ne 22. ^foo^bar 命令在一个实例中运行修改后的最后一个命令。假设我需要运行一个命令‘ls -l‘来详细列出‘Desktop’目录下的内容。意外地,你打了‘lls -l‘。所以你需要重新打整个命令或者使用导航键编辑前面的命令。当你的命令很长时这个很痛苦。 avi@localhost:~/Desktop$ lls -l bash: lls: command not foundavi@localhost:~/Desktop$ ^lls^ls ls -l total 7489440 drwxr-xr-x 2 avi avi 36864 Nov 13 2012 101MSDCF -rw-r--r-- 1 avi avi 206833 Nov 5 15:27 1.jpg -rw-r--r-- 1 avi avi 158951 Nov 5 15:27 2.jpg -rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc 注意:在上面的替换中我们使用“typo(被替换的)original_command(原始命令)”。警告!这个命令可能会非常危险!如果你有意或者无意地打错了系统命令或者任何像rm -rf那样的风险命令的话! 23. > file.txt 命令这个命令会刷新文件的内容而不需删除然后创建相同的文件。当我们需要反复输出,或者在相同的文件上记录日志时,这个命令就非常有用。 我有一个有很多文字的‘test.txt’文件在我的‘Desktop‘上。 avi@localhost:~/Desktop$ cat test.txt Linux GNU Debian Fedora kali ubuntu git Linus Torvaldsavi@localhost:~/Desktop$ > test.txt avi@localhost:~/Desktop$ cat test.txt 注意:再说一次,这个命令可能很危险!永远不要尝试刷新系统文件或者某篇日志文件的内容。如果你这么做了,你可能会遭遇严重的问题! 24. at 命令‘at‘命令与cron 命令相似也可用于安排一个任务或者在某个特定时刻执行命令。 avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012 或 avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM 示例输出 -rw-r--r-- 1 avi avi 220492 Nov 1 13:49 Screenshot-1.png -rw-r--r-- 1 root root 358 Oct 17 10:11 sources.list -rw-r--r-- 1 avi avi 4695982080 Oct 10 20:29 squeeze.iso .. .. -rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc -rw-r--r-- 1 avi avi 96206 Nov 5 12:56 Untitled 1.odt -rw-r--r-- 1 avi avi 9405 Nov 12 23:22 Untitled.png 注意:echo “ls -l”的意思是,将这串命令(这里是 ls -l)输出在标准终端上。你可以用你需要或者选择的命令替代‘ls -l‘。 > :重定向输出 /dev/pts/0: 这是输出设备和/或文件,输出到指定的地方,这里输出在终端(/dev/pts/0)。 就我而言,此时我的tty在/dev/pts/0。你可以用tty命令检查你的tty。 avi@localhost:~/Desktop$ tty /dev/pts/0 注意: ‘at‘会在系统时间匹配到特定时间时会尽快执行。 25. du -h –max-depth=1 命令下面的命令以人类可读的形式输出当前目录的子目录的大小。 avi@localhost:/home/avi/Desktop# du -h --max-depth=1 38M ./test 1.1G ./shivji 42M ./drupal 6.9G ./101MSDCF 16G . 注意:上面的命令在检查系统使用率是非常有用。 26. expr 命令‘expr‘不是那么鲜为人知的命令。这个命令在终端中计算简单的算数时非常有用。 avi@localhost:/home/avi/Desktop# expr 2 + 3 5avi@localhost:/home/avi/Desktop# expr 6 – 3 3avi@localhost:/home/avi/Desktop# expr 12 / 3 4avi@localhost:/home/avi/Desktop# expr 2 \* 9 18 27. look 命令在终端上从英文字典上查单词以防混淆。比如说,我记不清了是该拼成carrier还是carieer。 avi@localhost:/home/avi/Documents# look car Cara Cara's … ... carps carpus carpus's carrel carrel's carrels carriage carriage's carriages carriageway carriageway's carried carrier carrier's carriers carries … ... caryatids 上面的命令会显示字典上所有以'car'开头的单词。我得到了我想找的。 28. yes 命令另外一个命令在通常基础上并不会经常使用,但是在脚本语言和系统管理时非常有用。 这个命令会持续地输出给定的字符串,直到由你的中断命令打断。 avi@localhost:~/Desktop$ yes "Tecmint is one of the best site dedicated to Linux, how to" Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to … … ... Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to 29. factor 命令factor实际是一个源于数学的命令。这个命令会输出所有给定数字的因数。 avi@localhost:~/Desktop$ factor 22 22: 2 11avi@localhost:~/Desktop$ factor 21 21: 3 7avi@localhost:~/Desktop$ factor 11 11: 11 30. ping -i 60 -a IP_address我们都用ping命令检测服务器是否连通。我通常ping google,来检测我是否连接到了因特网。 当你等待或者持续盯着你的终端等待命令的回应或者等待服务器的连接时,有时是很气人的。 一旦服务器连通就有一个声音如何(译注:下面命令是等60秒PING一次)? avi@localhost:~/Desktop$ ping -i 60 -a www.google.com PING www.google.com (74.125.200.103) 56(84) bytes of data. 64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms 64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms 注意,当你发现命令不会返回声音时。请确保你的系统不是静音的,声音已经在‘sound preferences(声音选项)‘ 中启用并确保勾选了‘Enable window and window sound‘。 31. tac 命令这个命令很有趣,他会以倒序输出文本文件的内容。也就是从最后一行到第一行。 在home目录下,我的Documents目录下有一个35.txt文件。用cat 命令检查内容。 avi@localhost:~/Documents$ cat 35.txt 示例输出
现在用tac命令反转文件内容(译注:当然,我们知道cat反转过来就是tac)。
示例输出
|
鲜为人知而又实用的 Linux 命令大全相关推荐
- debian查看ip地址命令_鲜为人知而又实用的 Linux 命令大全
点击"Cisco思科CCIE俱乐部"→点击右上角"..."→"设为星标" 资讯丨干货丨入群 联系小E微信:SPOTO123456 Li ...
- 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...
- 实验楼linux命令,GitHub - encorechow/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...
- spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...
- linux编辑搜索命令,Linux 命令大全提供 500 多个 Linux 命令搜索
Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的命令,生成了静态HTML并提供预览以及索引搜索. 文件传输 b ...
- Linux命令大全总结(看这一篇就够了)
Linux命令大全总结 1.操作系统基础知识 1.1.操作系统 在了解linux命令之前,我们先了解一点基本概念. 1.1.1.概念 操作系统(operating system 简称OS)是一 ...
- linux查看msf安装目录,Ubuntu下安装Metasploit和Linux命令大全
①下载Metasploit下的Linux安装包,拷贝至Ubunto的/opt目录. ②在Terminal下运行命令"chmod +x /opt/framework-linux-4.0.0.r ...
- Linux命令篇 linux命令大全简洁明了 linux学习笔记
Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...
- Linux命令大全【整理汇集】
Linux命令大全[整理&汇集] 标签(空格分隔): 文章目录 Linux命令大全[整理&汇集] 系统管理 文件系统管理 常用工具命令 Shell內建命令 系统安全 进程和作业管理 用 ...
最新文章
- python最适合做什么生意-面试了57位数据分析师,我发现牛逼的人都有这4个特质...
- python是不是特别垃圾-谈谈python垃圾回收机制
- 使用图形工具管理Server Core上的账号和组
- Delphi 2010 refactor / refactoring 重构不能使用的原因以及解决
- 计算机网络 --- 传输层UDP协议
- C#设计模式之3-建造者模式
- Tomcat优化实践——网站运维
- 调参心得:超参数优化之旅
- 一 新开博客第一天,很开心哦!就写点简单的好了,那就数据类型、常量和运算符(c语言的)...
- Python 数学建模算法与应用(持续更新)
- word文件退出只读模式
- easy_ui之搭建后台界面(一)
- 干货!基于信息瓶颈理论的神经元竞争初始化策略
- Vue使用Upload上传图片报错:TypeError: Cannot create property 'xxx' on string 'xxxx'
- 30岁之后想转行,可行吗?这20条建议让你少走弯路!
- 在职场中Java工程师通宵都要看完这几本阿里P8小编都强烈推荐的Java电子书
- linux桌面 任务栏,状态栏消失恢复
- 如果配置计算机硬件设备,客户端医保定点计算机设备硬件配置要求
- Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(四)安装Delivery Controller和许可证服务器
- python结束运行快捷键_汇总学习Python必备的42个快捷键,看完收获满满