在绝大多数人眼里,linux操作系统一定是个另类的操作系统,即便是对于程序员来说,也有很多人认为旁激御,linux仅仅是作为服务器端的一种操作系统而已,对于个人日常使用,还是算了铅枯吧,然而,linux是一个完全运岩可以作为日常使用的操作系统来使用的。只不过,在没有大平台推广的前提下,它只能作为一个小众产品来使用而已。
㈡ 日常生活和开发全用linux可行吗为什么
完全可行的。
很多人的头脑印像中,认为linux是主要用作服务器系统,特别的高深,需要手敲很多的命令来执行操作。
其实Linux是一个完全可以作为日常使用的操作系统来使用的。 只不过,在大平台的推广下,它只能作为一个小众产品来使用而已。
现在很多linux桌面操作系统本身就被设计成为模仿Windows的界面风格,熟悉Windows的用户在这一系统下会比较顺手。 常见的Linux桌面发行版有Ubuntu、深度(deepin)等。
聊天 ,腾讯qq Linux版本,支持X64、ARM64、MIPS64架构。
办公软件 ,虽然Linux下没有微软的Office系列,但WPS是非常不错的一套办公软件哦,完全不逊色与微软的Office。
游戏 ,很多人质疑说,Linux下的 游戏 太少了,根本满足不了大众的 游戏 需求,其实,在我看来,是大多数用户的大型 游戏 的需求还是不大,即便有需求,Linux下也有相应的解决方案,比如:Steam就是在Linux系统下的 游戏 分发软件,通过Steam平台,很多相当不错的 游戏 进入Linux。
程序开发 ,对于程序员来说,几乎的程序开发环境都可以在Linux中搭建起来,并且绝大多数,在Linux下的开发效率是要比在Windows下开发要容易和高效的,因为Linux有着极其强大的自由性。尤其是对于web开发,由于服务器端一般都采用Linux系统,所以,如果本机也安装linux进行开发,那将会节省很多成本,并且保持了环境的高度统一。
Linux对于移动端、云计算、Ai技术以及嵌入式等各个领域,都发挥着非常重要的作用。
非常难,最关键的原因是在linux下,众多的专业软件没有,网银软件什么的没有,同时一些日常生活中的冷僻一点的软件也没有。
1、专业的软件没有
比如PS、CAD等等,这些工具软件就是没有的,所以如果你需要使用这些专业的工具软件,就无法实现全部用linux。
2、日常生活的很多软件也没有
有些人说我不用专业软件,就日常看看视频,上上网之类的。如果你只是这些简单的需求,估计是可以。
但问题是,在linux下,很多的网银软件,控件什么的都没有,这样你付不了款,登不网上银行什么的,这些可就是大问题了。
3、开发方面
开发方面也分好多种,有些是必须在windows下开发的,有些是需要MacOS环境,有些需要linux环境,具体看你的开发需求是什么,并不能一概而论。
但是在我看来,完全只使用linux,不用其它的操作系统,真的很难的,这也是目前国产系统无法广泛推广的根本原因之所以,毕竟所有的国产系统都是基于linux系统的修改版。
我尝试过Linux系统桌面版本的使用情况,这里使Ubuntu及国内的Deepin系统。本文以Ubuntu18.04为例。
我们下载系统后初始安装界面差不多就是这个样子,后期可以自定义出各种界面,自由度非常高!
一、日常生活及办公软件
1、聊天软件QQ
腾讯曾于2008年推出QQ for Linux版本,但2009年之后就再也没有更新过,但在上个月24号腾讯宣布QQ for Linux版正式回归!全新版本优化了消息体验,完善了消息的收发能力以及在性能上得到了提升。
2.办公软件WPS
WPS官网也是有发布Linux版本的
总体来说办公软件也是非常好用的,跟windows基本没什么区别,满足日常办公需求。
我自己尝试过用Linux来应付一个周的时间,在完全不打开macOS和Windows的前提下,深度Linux基本上可以完全满足我的需求。
得事先讲清楚的是,我基本上已经很少玩 游戏 了,目前做的也都是互联网产研线上的工作, 娱乐 就是看视频听音乐、看博客逛开发者社区,其余的工作和学习也都是跟互联网软件开发相关的,因此Linux对于我来说可以满足基本需求。
硅谷有两种程序员,一种是用macOS的,一种是Linux的,基本上都是这两类程序员占主要,Google和Facebook就是这类硅谷公司的典型。两类程序员基本上都是用Emacs和Vim开发的居多,尤其是做后台的大部分都是在远程服务器上完成,而服务器上就是Linux系统。
Google之前一直用定制版Ubuntu、也就是goobuntu,现在逐渐转向了gLinux,也是基于Debian的Linux版本,Google不限制员工使用什么类型的操作系统,不过Google鼓励工程师实用Linux操作系统。
很多同学可能平时不大能接触上,国内也有不少的企业是用这样的环境开发的,比较著名的就是拥有着11亿注册用户的微信开发。微信PRC框架、服务器框架代码、微服务、路由策略、过载和自适应,消息队列等都是在Linux C/C++环境下开发,你所了解的微信的主要功能,比如朋友圈、公众号、支付等核心功能全都是在Linux下开发的。
基本上是采用的微信后台是采用SSH到服务器开发机,大部分基本上采用的是vim/emacs+gcc+gdb进行开发,听说只有很少一部分是本地IDE写好传到变以及进行编译调试,要知道微信这种级别的产品,用户量是10亿级的,代码量是千万行以上的,都还是在Linux C/C++为主要技术栈的环境下进行开发,因此Linux做开发是肯定没问题的。
除了没有Visual Studio、Xcode这些Windows或者macOS下的专门开发工具,其他的主流开发工具,Linux上都非常全面,甚至体验上会更好。
作为生产力系统,Linux对于开发者是极度友好的,Linux是最接近生产环境的,大多数的互联网企业都会选择CentOS、Debian、RedHat Linux、或者一些企业专门深度定制的Linux发行版作为服务器,即使如WhatsApp、Yahoo使用FreeBSD作为服务器,Linux也是非常接近生产环境。
我自己曾经尝试过在深度Linux下学习和工作一周时间,事实上深度Linux很好的完成了我的工作、学习和日常任务。
Emacs/Vim、Visual Studio Code、IntelliJ IDEA、PyCharm是我用得比较多的开发工具,除此之外GCC、GDB、Git都是用得比较多的工具,深度终端已经非常好用了,不需要像Windows上弄个Zoc、Cmder这些第三方终端。
文档编辑我现在基本上已经很少用office了,大部分我都是云端用Google Docs、本地用WPS,除此之外就是做presentation的时候用keynote,基本上已经不用office了,主要是我也忍不office了。脑图一个在线的ProcessOn,本地用MindMaster和Xmind也绰绰有余了。
这可能是大多数同学平时会用的, 娱乐 和社交必然是大家要用的。看视频直接用网站就好了,客户端完全可以不需要,听音乐网易云音乐、Spotify都有Linux原生客户端。
游戏 方面Linux也有Steam,大家可以去下载体验一些 游戏 ,当然如果你是个资深 游戏 玩家,我还是建议你使用Windows,毕竟大多数经典的单机 游戏 、网络 游戏 都是在Linux上没办法玩的。
社交方面,现在微信、钉钉都可以用,微软为Linux开发了Skype原生版本,腾讯也为Linux开发了QQ原生版本,完全够用了。
总体来说,我觉得深度Linux基本上可以满足国内程序员的日常学习、工作、以及 娱乐 的大部分需求。
从问题分析,想必题主应该是一个开发人员。但是题主是一个什么样的开发人员,我却不得而知了。不过既然题主在问题中表示希望开发全部使用Linux系统的表态来看,应该并非Windows系统或者Mac系统的专有程序的开发人员。
因此,我可以假定题主的开发语言应该是跨平台的,或者对特定的开发平台系统是没有要求的。因为只有这样的假定,才符合题主的问题的基础要素。
从这个推断来看,在开发层面上使用Linux系统应该是没有任何问题的。需要注意的是,虽然在Linux系统上没有像Windows或者Mac那么多的可视化工具,但是主流的IDE和常用工具是并不缺少的。只是可能在使用习惯上有一些差异,作为开发人员我相信通过短时间的适应,应该是可以适用的。
但是,作为开发人员,不能仅仅从开发者的角度去考虑问题。因为你需要和各个部门的人进行交互,交换各类文件是常有的事情。所以,如果你的同事适用了某个特定系统支持的特定文件格式,那么在你的电脑上可能就会出现一些问题。
比如使用苹果系统的人,给你一个.page文件对吧。这个例子极端了一些,但是这样的场景确实是存在的。
所以,在和同事的文件交互问题解决的前提下,使用Linux系统作为开发操作系统平台是没有太大的问题的。
而在日常生活中,使用Linux系统会有什么影响吗?其实还是有比较大的影响的。首先就是,很多国产端游可能你就没办法愉快的玩耍了。系统不支持,没办法。
虽然Linux系统上有很多的 游戏 ,但更多的人还是喜欢玩自己常玩的 游戏 。因此,如果你常玩的 游戏 在Linux没有发行版,那么这一关就会卡死你了。
不过这个问题并不严重,因为现在大家玩 游戏 主力都转移到了移动端,在PC端的 游戏 大家玩的越来越少。因此,如果你忽略 游戏 方面的需求的话,或者有专门的 游戏 主机的话,那么日常生活中使用Linux系统并没有什么太大的影响。
无论是看电影,听音乐,浏览网页,还是从事一些日常的轻度办公以及一些Linux下的各类 游戏 ,还是比较丰富的。
还有一点,Linux系统在部分情况下,对打印机的支持并不好,如果你有大量打印需求,最好先确认系统是否支持你的打印机型号。如果没有这个需求,那就忽略好了。
一个长期使用Windows系统的用户,贸然切换为Linux系统,是会存在很多不适应的地方的。但这并非不能克服,我个人建议如果你初次尝试Linux系统,可以安装国内优秀的Linux发行版Deepin系统。该系统集成了国人常用的各类软件,让大家开箱即用、拎包入住。比如QQ\WPS\搜狗输入法等等。
其自行开发的各类影音 娱乐 软件,也能满足大多数人的日常需求了。而近期因为美国政策原因,华为已经在很多电脑产品上面预装Deepin系统了。如果你近期有购买电脑的需求,并且想要尝试Linux系统,可以购买华为的电脑产品。我相信通过一段时间的学习和适应,你会喜欢上Linux的世界的。
PS:我个人已经有四年不曾使用Windows系统了。主力是苹果系统和Deepin系统,我个人感觉良好。
以上。
Linux的破冰之路在于强大的云端,比如我要用CAD设计,Linux没有这个软件,但是可以在云端有,通过云获得使用软件的能力。那么关键就是需要有更多,更快的实时云端。更人性化的收费标准,太贵了不行。还要有灵活的收费服务套餐。比如我设计一个东西,本来预计三天完成,预计云端费用三百块钱,结果由于某种原因,导致十五天才造成,结果就造成远远超出预期费用。我的意思是,云端收费可以多样化,可以针对时间收费,也可以针对项目收费。未来中国芯片系统的突破之路或许就在云计算服务的普及。这需要更多强大的云端和更快的网络接入速度。云端当然也可以运行任何 游戏 ,由于可控性,还可以避免小孩整夜玩 游戏 !云端建设也可以多样化,比如专门面向 游戏 的,专门面向工业设计的,专门面向影视的……到那时候,个人电脑不需要极其强大的配置,就可以获得顶配的性能,这也是芯片等突出重围的路子,可以获得喘息之机,逐步提高芯片设计制造能力。
如果是常用cad这类制图类软件那在上是不太方便,虽然linux上也有相似软件替代,但总体成熟度目前不如Windows。不过工作中只是偶尔用一下的话有太多云端cad,ps,cd的应用可用了,完全可以用Linux替代
从2012年开始使用fedora至今,中间换过windows,发现不适合开发,又换回fedora,如今fedora已发布31,除了电池管理和显卡驱动,其他问题不大,甚至更高效
完全可行
嗯嗯,,,
㈢ Linux有什么实际用途
1、桌面应用。随着ubuntu、fedora等优秀桌面环境的兴起,Linux在个人桌面领域的份额逐渐增加。
2、嵌入式应用。Linux运行稳定,对网络支持好,成本低;广泛支持大量微处理器架构、硬件设备、图形支持和通信协议。
3、服务器应用。Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等。近年来,Linux服务器市场发展迅速,尤其是在一些高端领域。使用Linux不仅降低了企业的运营成本,而且实现了Linux系统带来的高稳定性和高可靠性,不需要考虑商业软件的版权问题。很多企业逐步转入Linux服务器的使用。
目前Linux操作系统已然得到广泛应用,并且已参透到电信、金融、政府、教育、银行、石油等行业。各大互联网企业都在使用Linux系统作为其服务器端的程序运行平台。Linux系统在服务器市场前景光明,相应的互联网也增加了Linux运维人员的需求量。
㈣ Linux常用基本命令大全介绍
学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!
Linux系统常用的基本命令入门篇一、基础命令
1.Linu x的进 入与退出系统
进入Linux系统:
必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:
1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。
用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。
当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:
[root@loclhost/root] #
这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。
2.修改口令
为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。
3.虚拟控制台
Linux是一个真正的多用户 操作系统 ,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。
退出系统
不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。
4.查看命令帮助信息
man命令
man命令用于查询命令和程序的使用 方法 和参数。
例如:
man ls
将显示ls命令的基本格式和使用方法
Linux系统常用的基本命令入门篇二、关机重启命令
首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到
reboot 一般不跟参数使用,输入指令即可重启
shutdown 一般需要跟参数,例:
shutdown -r 延时多少分钟重启,一般使用now
shutdown -r now 立即重启
shutdown -f 强制重启
跟windows一样,linux也存在注销功能
exit
1)halt
halt 可不接参数
halt -f 强制关机
2)poweroff
poweroff 可不接参数使用
poweroff -f 强制关机
3)init 0
4)shutdown 不可单独使用
shutdown -h 分钟数 延时多久关机
shutdown -h now 立即关机
Linux系统常用的基本命令入门篇三、vi编辑
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。
Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:从编辑模式切换到命令模式;
6 ZZ:命令模式下保存当前文件所做的修改后退出vi;
7 :行号:光标跳转到指定行的行首;
8 :$:光标跳转到最后一行的行首;
9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;
10 D:删除从当前光标到光标所在行尾的全部字符;
11 dd:删除光标行正行内容;
12 ndd:删除当前行及其后n-1行;
13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
19 a:在当前字符后添加文本;
20 A:在行末添加文本;
21 i:在当前字符前插入文本;
22 I:在行首插入文本;
23 o:在当前行后面插入一空行;
24 O:在当前行前面插入一空行;
25 :wq:在命令模式下,执行存盘退出操作;
26 :w:在命令模式下,执行存盘操作;
27 :w!:在命令模式下,执行强制存盘操作;
28 :q:在命令模式下,执行退出vi操作;
29 :q!:在命令模式下,执行强制退出vi操作;
30 :e文件名:在命令模式下,打开并编辑指定名称的文件;
31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
33 :set nu:在命令模式下,用于在最左端显示行号;
34 :set nonu:在命令模式下,用于在最左端不显示行号;
35 :1,3y 复制第一行到第三行
36 :1,3d 删除第一行到第三行
37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串
38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
Linux常用命令一、查询相关
find
按规则查找某个文件或文件夹,包括子目录
find . -name '_sh' -- 以.sh结尾的文件
find . -name '_hannel_ -- 包含channel字符的文件
find . -name 'build_ -- 以build开头的文件
find . -name 'abc??' -- abc后面有两个字符的文件
grep
查找内容包含指定的范本样式的文件,Global Regular Expression Print
grep -n pattern files -- 规则 -n表示显示行号
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n 'd' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方
grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号
ps -e | grep java -- 所有java进程
ps -e | grep -i qq --所有qq进程,不区分大小写
find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml结尾的文件中查找包含‘aapt’关键字的地方
ls | grep 'channel' -- 包含channel关键字的文件
which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
tail -f test.log,循环查看文件内容,Ctrl+c来终止
tail -n 5 test.log,显示文件最后5行内容
tail -n +5 test.log,从第5行开始显示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
more +3 test.log,显示文件中从第3行起的内容
more -5 test.log,设定每屏显示行数
ls -l | more -5,每页显示5个文件信息
more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出
less
less [options] [file...]
与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
less test.log,查看文件
ps -ef | less,查看进程信息并通过less分页显示
history | less,查看命令历史使用记录并通过less分页显示
less test1.log test2.log,浏览多个文件,n和p切换文件
watch
watch [options] command
每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变
watch -n 60 date,执行date命令每分钟一次,输入^C 退出
watch -d ls -l,查看目录变化
watch -d ’ls -l | fgrep joe’,想找joe用户的文件
watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化
watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载
watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化
Linux常用命令三、文件相关
vi
vi file
按i键,进入编辑模式
按esc键,进入命令模式
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
chmod
change mode,变更文件或目录的读、写、运行权限
chmod [-cfvR] [--help] [--version] mode file...
mode:权限设定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1
chmod 777 file,等同于 chmod a=rwx file
chmod ug=rwx,o=x file,等同于 chmod 771 file
chmod 4755 filename,可使此程序具有root的权限
ls -l 可以查看列出当前用户的文件权限
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把当前所有文件压缩到test.zip
zip -r test.zip test,把test文件所有文件及目录,要是到test.zip
zip -d test.zip test.txt,删除压缩文件中test.txt文件
zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开
unzip
unzip zip-file,解压到当前目录
unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录
unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件
unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件
unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件
unzip -l zip-file,仅查看压缩文件内所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目录做备份tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩tar xzvf test.tar.gz,把这个备份文件还原并解压缩tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在 显示器 上
tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录
touch
㈤ Linux主要应用在哪些方面
主要用于企业服务器端,下面详细介绍Linux有哪些岗位、主要的工作内容及职业发展,希望对你有所帮助。
1) Linux运维岗位及工作内容
互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。
2) Linux运维工程师岗位职责
一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境(例如:网站运行环境)、对数据进行备份及恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。
涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。
运维工程师还包括一些低端的岗位,例:网络管理员、监控运维、IDC运维,值班运维
职业发展方向:Linux运维工程师、系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监
3) Linux中级运维工程师应用软件阶段。
Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础
4)Linux运维架构师岗位职责
运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:
1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;
2、云计算部署架构及Docker微服务架构方案;
3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10万并发的网站架构、秒杀系统的架构及解决发你个案;
5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;
6、数据库、存储及各重要服务节点的集群和高可用方案。
7、各网络服务的极端优化方案、服务解耦/拆分。
8、运维流程、制度、规范等的建设和推行。
9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。
这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。
总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-50000/月。
职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监
运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。
技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩
5)数据库运维工程师
众所周知,数据几乎是所有企业的生命线,所以数据库工程师的地位和薪水一般会比普通运维工程师高一些,主要工作内容就是保证数据库数据的安全以及高效地为用户提供各种服务。工作内容主要有:数据库环境搭建、数据库优化、数据库
㈥ Linux主要应用在哪些方面
Linux操作系统主要有以下三大应用领域:
1. Linux作为企业级服务器的应用
Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题。
2. 嵌入式Linux系统应用领域
由于Linux系统开放源代码,功能强大、可靠、稳定性强、灵活而且具有极大的伸缩性,再加上它广泛支持大量的微处理体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备(路由器、交换机、防火墙,负载均衡器)到专用的控制系统(自动售货机,手机,PDA,各种家用电器),LINUX操作系统都有很广阔的应用市场。特别是经过这几年的发展,它已经成功地跻身于主流嵌入式开发平台。
3. 个人桌面Linux应用领域
所谓个人桌面系统,其实就是我们在办公室使用的个人计算机系统,例如:Windows xp、windows 7、Mac等。Linux系统在这方面的支持也已经非常好了,完全可以满足日常的办公及家长需求。
㈦ Linux运维命令Curl - 日常用法总结
在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结
一、Curl命令用法
1. curl语法和参数选项
# curl [option] [url]
curl常见参数
2. curl使用说明
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:
3. curl上传文件的用法(POST请求方式)
一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟"multipart/form-data"形式的form上传文件, 命令稍稍复杂些。
4. curl常用示例
5. curl命令的超时时间
二、Curl的GET、POST、PUT、DELETE请求
1. GET、POST、PUT、DELETE含义与区别
2. GET、POST、PUT、DELETE四种请求方式的curl访问
㈧ linux常用命令
1.列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命宽喊令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
2、cat命令
功能:在标准输出上显示文件。
语法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 > file2
3、more命令
功能:在终端屏幕按屏显示文本文件。
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能几乎和more命令一样,也是用来按页显凳搏示文件,不同之处在于枣巧祥less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件。
5、head命令
功能:显示指定文件的前若干行。缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:显示指定文件的末尾若干行。缺省设置为显示10行
语法:tail [+ / - num ] [参数] 文件
+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
语法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [选项] [查找模式] [文件名1,文件名2,……]
fgrep [选项] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
㈨ Linux常用命令
列出当前目录的文件
常用参数:
-a: 显示当前目录的所有文件,包含隐藏文件;
-l: 显示文件详情;
-Z: 显示文件的 SE Linux context。
示例:ls -laZ [if !vml] [endif] 以 acct 为例: drwxr-xr-x:其中 d 代表该文件为目录,若为 l 则为软链接,软连接后又箭头代表其实际指向的文件,如etc -> /system/etc 则访问 etc 实际等同访问/system/etc,留空则代表该文件为一个文件;rwxr-xr-x 代表其权限为 755,具体算法为将上述字段每 3 个分为 1 组得 rwx,r-x,r-x,凡是有字母标记的皆计数 1,反之为 0,得二进制 111,101,101,转为 10 进制数字即得7, 5,5 ,即为该文件权限; root root :依次代表该文件的所有者(owner)为 root,用户组(group)为 root,上述属性可通过 chown 命令修改,日常替换文件需与原文件该属性维持一致; unlabeled:代表 SE Linux context。
前往指定目录
更改文件所有者和用户组 示例:chown root:root temfile 将 tmpfile文件 的所有者和用户组从 meidia:media 更改为 root:root
将文件内容显示出来。
注意不要随便去 cat 一个很大的文件或与 log 驱动节点无关的文件,否则将造成串口输出乱码或死机!!!示例:cat /proc/kmsg 将打印出所有 kernel log。
用于抓取 android logcat 打印。
常用参数:
-v : 设置打印格式,可用选项为 brief process tag thread raw time threadtime long,我们比较常用 logcat -v time,此时抓的 log 将在每一行开头添加时间信息;
-s : 设置过滤器,过滤器的选择取决于软件中打印 log 时使用的 TAG ,如
ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,则抓相关打印方法为 logcat -s ActivityManager;
-c : 清除 log 缓存,常用于清除之前的打印缓存,如复现某个必现问题,则可先执行 logcat -c 再抓 logcat 重现必现手法以排除无关 log 冗余信息影响问题定位; pm
包管理命令,用于管理安卓 app 应用。
常用参数:
-l : 显示所有安装包应用,等同于 pm list packages
以 package:/system/priv-app/Launcher2.apk=com.android.launcher 为例:
Apk Launcher2 路径位于/system/priv-app/Launcher2.apk,其包名为 com.android.launcher
path : 根据报名返回所在 apk 路径
install : 安装 apk
-r :安装一个已经存在的 apk 并保留其数据;
-d : 允许降级安装
如:pm install -r xxx.apk
uninstall : 卸载 apk,命令仅支持卸载 data/app,后接包名;
如:pm uninstall com.sys.migusmartlink.ott.tv //卸载包名为 com.sys.migusmartlink.ott.tv 的 apk
随机测试指令,会自动模拟一些用户操作对 APP 进行压力测试。
常用参数:
-p :指定启动的 APK,我们比较常用的是 monkey -p com.xxx.yyy 1 来启动一个 apk 的随机页面。
用于启动和管理 activity 和 service
常用参数:
start : 后接 intent 启动一个页面;
startservice : 后接 intent 启动一个 service; stopservice :后接 intent 停止一个 service; broadcast :后接一个 intent 发送一个广播; kill :后接一个 app 包名,杀掉该 app 所有进程;在 shell 环境下用如下参数表述一个 intent:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
[-n <COMPONENT>] [-f <FLAGS>]
示例:
如我们在 logcat 抓到如下打印启动了播放器:
START u0 {act=android.intent.action.VIEW dat=file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204
则我们可以使用如下 am 指令来启动它:
am start -a android.intent.action.VIEW -d file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //启动原生安卓设置主页
am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 && am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //发送广播
查找命令,查找文件中是否包含指定字符串并输出该行示例:
grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行号
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
命令示例:cp -a a parentPath/sonPath/ a对应当前文件夹下目录或文件名 可替换为绝对路径
移动指令,等效于 windows 的移动和重命名。
示例:
mv /data/tmp1 /data/local/tmp2 //将 data/tmp1移动到/data/local/ 并重命名为 tmp2
删除指令,用于删除文件和文件夹,示例:
rm -rf tmp // 删除 tmp,建议加上-rf参数,其会删除 tmp 所有的目录和文件。
创建目录。常用参数:
-p :若 mkdir -p 后接路径包含不存在路径则一并创建。
同步命令,常用于 cp 替换文件或指令结束后同步状态,有益无害。
重定向,即将一个命令的输出指向另外路径的文件,使用覆盖模式,即重定向到的文件若存在将覆盖里面的内容。
示例:
logcat > /data/xxx.log; //将 logcat输出到/data/xxx.log;
cat /proc/kmsg > /data/kmsg.log; //将 kmsg 打印输出重定向到/data/kmsg.log
重定向,即将一个命令的输出指向另外路径的文件,使用拼接模式,即重定向到的文件若存在则将输出拼接到原文件的后面。
示例:
logcat > >/data/xxx.log; //例如我们做 netreboot的时候需要每一次开关机的 log,则会用拼接模式记录log。
将指令放至后台静默执行。
依次执行指令,若有指令执行失败,则后续指令不会执行。
示例:
logcat -c && logcat //先清除 logcat 缓存再抓取 log