怎样在Linux下编程?需要什么技术?
由于某些特殊的历史原因,国内开发者还是以Windows系统为主,这跟国外在Unix哲学下成长起来的开发者群体不一样。
不过这两年Linux在国内开发者群体中的欢迎程度越爱越高,要知道连Windows10都有了Ubuntu/Debian/fedora等Linux发行版作为Windows10的Linux子系统,那么想要在Linux下编程,需要掌握哪些知识呢?
为什么要在Linux下开发?二十年前你在Linux上学习的编程知识,基本上现在还能用,不过五年前你在windows上学习的编程知识,也许大部分现在已经用不了了。
绝大多数服务器环境都是运行Linux操作系统,大部分开发者写的程序,最终都是要在Linux服务器上运行的;绝大多数的开源软件会优先适配Linu台;很大比例的第三方库只会登陆Linu台。Linux开源、免费、高效,Linux能够给你最大的可能性,Linux给了你一大堆最为原始的工具,你可以用这些工具组合成专属于你自己的高效工具库。
Linux下各种开源环境应有尽有,各种shell拿来就可以用,跟Unix保持了很好的血缘关系,Lisp/Python/Java/C/C/PHP/Ruby等各种各样的环境拿来就可以用。
visualstudio是银河系最好的继承开发环境,但是Windows却没有因此成为最强的开发者生态。
Linux编程需要掌握哪些知识想要在Linux下熟练编程,你必须要学很多专业技能。
熟悉Linux命令
Linux的精华是命令行,你必须熟练使用命令行进行日常的工作、学习,Linux上有各种各样的shell命令,bash、sh等命令应有尽有。
你还得熟悉在Linux上通过命令行安装软件、搭建开发环境、完成文件管理,对于代码调试、编译等等。
熟练使用vim/emacs
在Linux编程世界里,不会使用emacs和vim是可怕的。
emacs号称是“神之编辑器”,vim则被称为“编辑器之神”,这两款文本编辑器都是Linux下开发者的重要编程工具,丰富的插件让这两款编辑器非常强大。
看一些Linux的书籍
《鸟哥Linux私房菜》、《深入理解Linux内核》、《Unix环境高级编程》、《Unix网络编程》、《Linux程序设计》、《深入理解Linux内核》等,这些都是Linux/Unix下的经典书籍。
你最常用的一个linux命令是什么?为什么?
1、显示目录和文件的命令
Ls:用于查看所有文件夹的命令。
Dir:用于显示指定文件夹和目录的命令Tree:以树状图列出目录内容
Du:显示目录或文件大小
2、修改目录,文件权限和属主及数组命令
Chmod:用于改变指定文件的权限命令。
Chown:用于改变文件拥有属性的命令。
3、创建和删除目录的命令
Mkdir:用于创建目录
Touch:创建一个新的文件
Vi:创建一个新的文件
Rm:删除文件或目录
Cp:复制命令
4、显示文件内容的命令
Cat:用于显示指定文件的全部内容
More:用分页的形式显示指定文件的内容
Less:用分页的形式显示指定文件的内容,区别是more和less翻页使用的操作键不同。
Head:用于显示文件的前n行内容。
Tail:用于显示文件的后n行内容。
Tail-f:用于自动刷新的显示文件后n行数据内容。
5、查找命令
Find:查找指定的文件。
Which:用于查询命令或别名的位置。
Locate:快速查找系统数据库中指定的内容。
Grep:查找文件里符合条件的字符串。
6、关机和重启计算机的命令
Shutdown:-r关机后立即重启
Poweroff:用于关机和关闭电源
Reboot:用于计算机重启
7、压缩和打包命令
Tar:用于多个文件或目录进行打包,但不压缩,同时也用命令进行解包
Gzip:用于文件进行压缩和解压缩命令,文件扩展名为.gz结尾。
Gunzip:用于对gzip压缩文档进行解压缩。
Bzip2:用于对文件或目录进行压缩和解压缩
Compress/uncompr:压缩解压缩.zip文件
8、用户操作命令
Su:切换用户命令
Sudo:一系统管理员的身份执行命令
Passwd:用于修改用户的密码
9、改变目录和查看当前目录命令
Cd:进入工作目录
Cd..:会退到上一级命令
Pwd:显示当前用户所在工作目录位置
10、vi编辑器
首先用vi命令打开一个文件
末行模式命令:
:n,mwpath/fil:q!对文件做过修改后,强制退出
:q没有对文件做过修改退出
Wq或x保存退出
dd删除光标所在行
:s:s/t:逐行显示且列出详细属性
-a:列出所有文件包括以.开头的隐藏文件
cat读取文本内容
-n:显示行号
-b:显示行号且忽略空行
cat-n1.txt
wc计数
-l:行数
-w:字数
-c:字符数
wc-lfile1file2......可以统计多个文件
cp拷贝文件目录
-i:交互模式,如果目标文件存在,则询问是否覆盖
-r:拷贝目录
cpfile1file2file3....dir表示将file1,file2...拷贝到dir
cp-rdir1dir2dir3...dirn将dir1,dir2,dir3...拷贝到dirn
fil:交互模式,如果目标文件存在,则询问是否覆盖
-r:移动目录,跟改目录名
rm删除文件
-i:交互模式,询问是否删除
rm-rdir1dir2dir3...可删除多个
mkdir创建目录
-p:parent,父目录不存在,则创建父目录
mkdir-ptest/test
rmdir删除目录
等同与rm-r
rmdirdir1dir2dir3....
rm-rdir1dir2dir3....
chmod更改权限
chmod-R777DIR改变目录下所有文件权限为777,必须是-R
权限-rwxrwxrwx
421421421第一位-表示文件类型为普通文件,后三位表示所有者权限,后三位表示组权限,后三位表示其他用户权限。如果一项权利未被分配,则用-。-rwxr-rwx表示该组没有写入和执行文件的权限,但它表示是否允许在该目录中找到文件kill-9以强制结束更多的显示文本内容,一次一屏。按空格键继续查找/-name*。sh|Moretail显示指定位置tail-fserver.log中的以下内容,用于查看在服务器tail-10上运行时的日志,并查看最后10行。头尾对应压缩-f压缩文件-v显示压缩比compressed-VF。project.tar将生成项目。t.Ar。z和project.tar被删除。uncompress-f解压后的文件uncompressproject.tar.Z会生成project.tar,project.tar.Z会被删除。