作者:CSDN学院
链接:https://www.zhihu.com/question/397371213/answer/1312468610
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构、算法、数学、编程语言等等。
其实,每一个程序员都应该掌握的技能就是:Linux。
如果你不会Linxu,那么你几乎100%会遇到以下的问题:
1、好不容易学会了Linux的安装,但是使用起来发现指令繁多、参数复杂,查资料又发现答案却五花八门
2、面试开发,编程语言熟练掌握,却因为不会Linux的一个操作指令而被拒
3、到了新公司,别的开发都用Linux,只有自己在用Windows,协同起来非常麻烦
4、想用Linux解决问题,直接网上复制粘贴命令,但因对参数不了解,结果并不能用 总的来说就是:不会Linux,根本做不好程序员
如果你掌握了Linxu这项工具,可想而知,你在面试、工作中将会有多吃香!
Linux的用途
linux主要应用于网络服务器(各种各样的网络服务解决方案),科学运算(各种各样的科研项目解决方案)、软件开发平台,嵌入式系统(日常生活中各种各样的智能电器)。
相对于windows操作系统,Linux显得难学很多。
在很多时候我们的网站都是部署在Linux服务器上的,也就是说我们日常生活中大部分网络服务,都是跑在Linux系统上,像大家耳熟的抖音,微信等他们要正常的工作都需要依靠Linux作为服务器。也就是说你日常生活中所有的网络服务,其实都是基于Linux系统的,学好了Linux,你就可以通过管理服务器或者破坏服务器,拥有干豫生活,影响地球运转的能力,这样想想都兴奋!
常见的Linux指令- history显示历史命令,可使用!命令序号再次执行
- ctrl+a/e让光标移动到首尾部
- pwd查看当前目录
- ls列出当前目录文件
- -l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- -r将文件以相反次序显示
- -t将文件依建立时间之先后次序列出
- -a显示所有文件及目录,开头为"."的视为隐藏档
5.vim编辑器的使用- vim test编辑名为test的文档,如果不存在则创建
- a/i进入插入模式开始编辑
- ESC键返回到命令行模式
- 在命令模式下:
- :q/:q!不保存退出/强制退出
- :wq保存并退出
- :set nu显示行号 set nonu不显示行号
- gg回到首行
- G跳到尾行
- dd删除光标所在行
- yy复制光标所在行 p粘贴在下一行,4yy向下复制四行
- wc即word count命令,可以查阅脚本的行数字节数等信息,可以使用wc --help查看具体命令
6.文件管理命令- cat test1 test2 > test3将文件拼接到另一个文件中
- cat -n test3带行号打印显示
- touch新建文件touch newFile 更改文件编辑时间为当前touch test3
- chmod更改文件操作权限,可以使用ll命令查看当前目录下的个文件权限,依次是文件拥有者、群组、其他,权限级别分为w可写、r可读、x可执行,可分别用数字4 2 1代表,例如chmod 777 test3
- chown更改文件拥有者,文件拥有者分为用户和组
- 注:在root用户权限下才可执行上述两条命令 su root
- find查找命令,find -name '*.txt'查找txt文件,通常可以配合管道命令查询
- more类似cat,但一页一页展示,使用ctrl+f向下翻页
- less类似more,但是可以向上翻页ctrl+b
- head -n 5 test3查看test3文件的前5行,tail -n 5 test3查看后五行
- mv重命名文件mv test1 test4 移动文件或目录mv test4 /opt即剪切功能
- cp复制文件或目录,参数-r表示递归复制
- mkdir创建目录 mkdir -p a/b/c递归创建目录a/b/c
- tar解压缩文件
- -f<备份文件>或–file=<备份文件> 指定备份文件
- -v或–verbose 显示指令执行过程
- -x或–extract或–get 从备份文件中还原文件
- -z或–gzip或–ungzip 通过gzip指令处理备份文件
- -C<目的目录>或–directory=<目的目录> 切换到指定的目录
- 一般我们使用tar -zxvf XXXX -C /usr/即可
7.磁盘管理- df -h磁盘使用情况
- mount挂载Linux系统外的文件 ,umount卸除文件系统,一般系统外文件挂载在/mnt下
8.用户管理- useradd建立用户账号
- -m自动建立用户的登录目录
- -g指定用户所属的群组
- -d指定用户登入时的家目录
- -u 600 在0——499之间表示系统用户,500——232之间表示普通用户
- passwd更改使用者的密码
- kill杀死执行中的程序或工作,使用kill -l查看所有进程,kill -9 pid强制杀死此pid的进程
9.ssh操作为后面的集群搭建做准备,需要掌握虚拟机之间通过ssh登录的方法,准备两台虚拟机操作系统。
- 使用ifconfig命令查看IP地址
- 使用ping命令查看是否连通
- 使用ssh root@IP登录,root为登录时的用户名,由于没有使用免密操作需要输入密码,可以使用exit退出
免密操作
- 打开ssh功能 systemctl start sshd.service,一般默认是打开的
- 启动root用户su root
- 使用命令ssh-keygen -t rsa,一路回车,会创建公钥和私钥文件
- 将私钥文件拷给另一个虚拟机即可:ssh-copy-id -i ~/.ssh/id_rsa.pub 目标IP
- 现在可以直接使用ssh 'IP'登录另一台虚拟机
注:由于我们刚才切换到root用户进行操作,所以免密登录对root用户有效,同理可切换到其他用户创建密钥链接。
10.scp远程拷贝scp命令用于Linux之间复制文件和目录。
使用scp -r 本地路径 目标路径即可,例如:scp -r test3 '192.168.154.11':/tmp,-r表示递归。
为什么Linux在企业计算,大数据和科学中是与众不同的。主要原因如下:
你不需要为使用Linux而付费,你可以自由查看,编辑和分发源代码。当你购买装有Windows或macOS的计算机时,这些操作系统的费用其实已包含在价格中。 Linux被用于许多不同类型的计算机中,包括智能烤面包机和冰箱,其他物联网设备,互联网路由器,Android智能手机等,简直不胜枚举。
Linux操作系统被设计为既可以简单地完成一项工作又能使用功能更完善的工具来完成工作。
你可以组装一个适用于你的设备并针对你的需求进行过优化的Linux版本。
Unix哲学
Linux是一个“类Unix”操作系统,这意味着它的大部分功能派生自Unix操作系统,并且通常遵循Unix的设计原则。理想的Unix程序是简单,模块化和可扩展的。
Unix程序确实能很好地完成一些任务,并且被设计为可以与其他程序很好地协同工作,而不必依赖太多其他程序。
该系统通过利用程序的协作而变得强大,而不是因为程序本身超级强大。
于Linux的一切都是文件。
你在终端中运行的命令和程序被抽象成文件。用来快速打开自己喜欢的应用程序的桌面图标也被抽象成文件。系统检查应用程序更新的代码库如何处理?当然也是写在文件里。所有可能导致混乱的都可以用文件解决。 Linux就是这么透明、富有动力和优雅。你可以想象一下,你可以随心设置自己的Linux安装程序,同时拥有对系统的完全控制权,只要你想要的,完全甩掉你不想要的,这非常酷炫!
这些原则如实地说明了Linux的灵活性。怪不得它被用于许多应用中
有相同爱好的可以进来一起讨论哦:企鹅群号:1046795523
|