找工作笔试面试那些事儿(16)---linux相关知识点(1)

      linux这部分的知识倒不是笔试面试必考的内容,不过现在很多公司开发环境都在linux系统下,一些简单的知识还是需要了解一下的,笔试面试中万一碰到了,也不会措手不及。作为菜硕的我,又因为读研期间的项目大部分是windows下的开发,在当时面试过程中就闹过几次笑话。尴尬过后也找了本书啃了啃,顺便找了个视频(韩顺平老师讲的linux,对初学者还是有趣又易懂的,地址http://www.jiaochengku.net/html/special/linux_hanshunping/)看了看,当然,自己装了个虚拟机玩了玩,也总算能懂一些了。这里做个linux知识点的简单总结吧,可能对没什么基础的初学者有些用,大部分有linux基础的童鞋们就请自动略过此节吧-_-||

而且,学习或者复习linux这个东西,强烈建议不要光看书,一定动手敲一敲,玩一玩,会上手快得多。


       linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux。linux内核:redhat 、红旗linux、ubuntu、suse、fedora,它们的内核都是一样的(Note:linux其实是一个统称,就比如面条是一个统称,可以有哨子面、阳春面、打卤面等) 

      linux的特点 
          - 免费的/开源 
          - 支持多线程/多用户 
          - 安全性好 
          - 对内存和文件管理优越 

      关机命令 
      shutdown -h now(立即进行关机)      shutdown -r now (现在重新启动计算机)      reboot (现在重新启动计算机) 

      进入桌面 
      startx 

      用户登录 
      登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,难免操作失误。可以利用普通用户登录,登录后再用“su -”命令来切换成系统管理员身份 

      用户注销 
      在提示符下输入logout即可 

      vi编辑器是linux下最有名的编辑器,也是我们学习linux必须掌握的工具,在linux下也可使用vi进行程序的开发,如java程序,c程序 。输入i,进入到插入模式;输入Esc键,进入命令模式 ;输入冒号:wq 表示退出保存,:q!表示退出不保存


      linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录,深刻理解linux文件目录是非常重要的 

- / 
- root,存放root用户的相关文件 
- home,存放普通用户的相关文件 
- bin,存放常用命令的目录,如vi,su 
- sbin,要具有一定权限才可以使用命令 
- mnt,默认挂载光驱和软驱的目录 
- etc,存放配置的相关文件 
- var,存放经常变化的文件,如网络连接的sock文件 
- boot,存放引导系统启动的相关文件 
- usr,安装一个软件的默认目录,相当于windows下的program files 

      常用命令介绍 
      pwd,显示当前在哪个路径下 

      linux的用户管理 

      useradd 用户名,添加用户 
      【案例】useradd xiaoming

      passwd 用户名,为新用户设密码 
      【案例】passwd xiaoming,修改小明的密码 

      userdel 用户名,删除用户 
      【案例】userdel xiaoming,删除用户但保存用户主目录 
      【案例】userdel ‐ xiaoming,删除用户以及用户主目录 

      logout,当前用户推出 
      who am i,当前用户是谁 

      cd,改变目录 
      ls,列出文件和目录 
      ls ‐a,显示目录下的所有文件,包括隐藏文件 
      ls ‐l,显示长列表格式 
      mkdir,建立目录 
      rmdir,删除空目录 
      touch,建立空文件 

      cp,复制命令 
      【案例】cp ‐r dir1 dir2,递归复制命令(复制子目录信息) 

      mv,移动文件和改文件名 
      rm,删除文件和目录 
      rm ‐rf *,删除所有内容,包含目录和文件,r表示递归,f表示强制 
      ln,建立符号连接,类似于建立某个文件的快捷方式 

      ln ‐s 源目标 
      【案例】ln ‐s /etc/inittab inittab,inittab指向实际文件/etc/inittab inittab 

      more,显示文件内容带分页,ctrl + page up上翻,长空格下翻 
      less,显示文件内容带分页 

      grep,在文本中查询内容 
      【案例】假设存在某个文件test.java中含有hanyang关键字,此时可以使用grep名命令来查找,grep n “hanyang” test.java,n表示在第n行出现 

      |,管道命令,在linux和unix系统,把上一个命令的结果交给|后面的命令处理 
      【案例】ls ‐l /etc/ | more 

      - man [command],帮助,类似于dos中的help 
      

- find,搜索文件及目录。在linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题 

- 在特定的目录下搜索并显示指定名称的文件和目录 
【案例】find / -name man:意思是说从根目录开始搜索名称为man的文件或目录 
- 搜索一段时间内被存取/变更的文件或目录 
【案例】find /home -amin -10:十分钟内存取的文件或目录 
【案例】find /home -atime -10:十小时内存取的文件或目录 
【案例】find /home -cmin -10:十分钟内更改过的文件或目录 
【案例】find /home -ctime +10:十小时前更改过的文件或目录 


- 搜索指定大小的文件 
【案例】find /home -size +10k:意思是说查找/home目录下大小为10k的文件 


- 重定向命令 
- ls -l > a.txt,列表的内容写入文件a.txt中(覆盖写) 
- ls -al >> aa.txt,列表的内容追加到文件aa.txt的末尾 
- 从文件中输入信息:database_program < database_data 
- en,查看环境变量 


- 压缩和解压 
- 以zip和unzip处理.zip文件 
- zip命令的基本使用方法 
- zip file.zip *:zip后接压缩后的文件名,在它的后面输入要压缩的文
件即可 
- 压缩后,自动删除原文件 
【案例】zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的 
- 将子目录一起压缩 
【案例】zip ‐r file.zip *:将当前目录下的子目录一起压缩 
- 忽略子目录的内容 
【案例】zip ‐j file.zip * 
- 将已压缩的或没有必要压缩的文件去掉 
【案例】zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开 
- 压缩某一日之后的文件 
【案例】zip ‐t 102002 file.zip:将当前目录下在2002年10月20日之后文件压缩 
- 不压缩链接文件的原文件 
【案例】zip ‐y file.zip * 
- 压缩率问题,-1~-9,其中-9的压缩率最高 
【案例】zip -9 file.zip * 
- 将不需要压缩的文件排除在外 
【案例】zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外 
- 以unzip命令进行.zip文件的解压缩 
- 直接解压缩文件 
【案例】unzip file.zip 
- 排除不需要解压缩的文件 
【案例】unzip file.zip ‐x file2:除了file2文件外,其他的文件都解压缩 
- 查看压缩包的内容 
【案例】unzip ‐Z file.zip:查看file.zip压缩包的内容,也可以使用“-l” “-v”来查看压缩包的内容 
- 以gzip和gunzip处理.gz文件 



      在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念 。
1)所有者:一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。用ls ‐ahl命令可以看到文件的所有者。也可以使用chown 用户名 文件名来修改文件的所有者。
2)文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组,用ls ‐ahl命令可以看到文件的所有组,也可以使用chgrp 组名 文件名来修改文件所在的组。
3)其它组:除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。


文件权限 
      ls -l中显示的内容如下: 
      -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc 

- 10个字符确定不同用户能对文件干什么 
- 第一个字符代表文件(-)、目录(d),链接(l) 
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x) 
- 第一组rwx:文件所有者的权限是读、写和执行 
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行 
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行 
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 

- 1 表示连接的文件数 
- root 表示用户 
- root表示用户所在的组 
- 1213 表示文件大小(字节) 
- Feb 2 09:39 表示最后修改日期 
- abc 表示文件名 

改变权限的命令 
chmod 改变文件或目录的权限 
chmod 755 abc:赋予abc权限rwxr-xr-x 
chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限 
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限 
chmod a+r abc:给所有用户添加读的权限 

改变所有者(chown)和用户组(chgrp)命令 
chown xiaoming abc:改变abc的所有者为xiaoming 
chgrp root abc:改变abc所属的组为root 
chown root ./abc:改变abc这个目录的所有者是root 
chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root 

改变用户所在组 
在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个
用户所在的组 
- usermod ‐g 组名 用户名 
你可以用 - usermod ‐d 目录名 用户名,改变该用户登录的初始目录 

linux分区详解 
硬盘的分区主要分为基本分区(Primary Portion)和扩展分区(Extension Portion)两种。只是针对一个硬盘来讲,基本分区和扩展分区的数目之和不能大于4个,且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么有扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Portion),而且逻辑分区没有数量上限制 

对windows用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录。它们的文件结构都是独立的,非常好理解。但对这些用户初上手Redhat Linux,可就有点恼人了。因为对Redhat Linux用户来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录、一个独立且唯一的文件结构。Redhat Linux中每个分区都是用来组成整个文件系统的一部分。因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来。这时要载入的那个分区将使它的存储空间在这个目录下获得。

几个重要命令 
挂载命令 
mount [-parameters] [设备名称] [挂载点] 
卸载命令 
umount [挂载点] 
查看磁盘使用情况 
df [-parameters] 
- df -h 
- df ‐l 
- df [目录全路径],查看某个目录是在哪个分区 

查看linux系统分区具体情况 
fdisk ‐l 

shell编程 
其实作为命令语言互动式地解释和执行用户输入的命令只是shell功能的一个方面。shell还可以用来进行程序设计。它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中批处理文件,称为shell script,又叫shell程序或shell命令文件。

shell脚本文件: 
- 是一个文本文件 
- 命令的集合 
- 有执行的权限 
- 执行方式(./文件名) 

用export可以临时加入一个系统路径,如export PATH=$PATH:$HOME/bin:/root/test/t1,输出环境PATH,引用原来的值$PATH,$HOME表示工作主目录,:是路径分隔符 


shell通配符 
- *代表多个字母或数字 
- ?代表一个字母或数字 
【案例】ls a* ls a? ls f080[1-6].tif 


- 转义字符\ 
【案例】ls /mnt/win1/My\Documents 

- 单引号:不处理任何变量和命令 
【案例】echo ‘Welcome $NAME, the date is date ’ 

- 双引号:处理变量但不处理命令 
【案例】echo “Welcome $NAME, the date is date “ 

- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理 
【案例】echo “Welcome $NAME, the date is `date` “ 


查阅历史记录 
- history,查看使用过的命令的历史记录 
- history 5,此项说明会显示最近使用的5个命令 
- !5,此项说明执行历史编号为5的命令 
- !ls,此项说明执行最后一次以“ls”开头的命令 

已标记关键词 清除标记
相关推荐
<p> <span style="color:#337FE5;"><strong>【为什么还需要学习C++?】</strong></span> </p> <p style="margin-left:0cm;"> 你是否接触很多语言,但从来没有了解过编程语言的本质? </p> <p style="margin-left:0cm;text-align:start;"> 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? </p> <p style="margin-left:0cm;text-align:start;"> 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? </p> <p style="margin-left:0cm;text-align:start;">   </p> <p style="margin-left:0cm;text-align:start;"> 那么C++就是你个人能力提升,职业之路进阶的不二之选。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;"> <strong><span style="color:#337FE5;">【课程特色】</span></strong> </p> <p style="margin-left:0cm;text-align:start;"> 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 </p> <p style="margin-left:0cm;text-align:start;"> 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 </p> <p style="margin-left:0cm;text-align:start;"> 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p class="ql-long-24357476"> <span style="color:#337FE5;"><strong>【学完后我将达到什么水平?】</strong></span> </p> <p class="ql-long-24357476"> 1.对C++的各个知识能够熟练配置、开发、部署; </p> <p class="ql-long-24357476"> 2.吊打一切关于C++的笔试面试题; </p> <p class="ql-long-24357476"> 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 </p> <p class="MsoNoSpacing" style="margin-left:18pt;"> <br /> </p> <div> <br /> </div> <p> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#337FE5;"><strong>【面向人群】</strong></span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">1.希望一站式快速入门的C++初学者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">2.希望快速学习 C++、掌握编程要义、修炼内功的开发者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">3.有志于挑战更高级的开发项目,成为资深开发的工程师。</span> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p> <br /> </p> <p> <span style="color:#337FE5;"><strong>【课程设计】</strong></span> </p> <p> 本课程包含3大模块 </p> <p> <strong>基础篇</strong><br /> 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 </p> <p> <br /> <strong>进阶篇</strong><br /> 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 </p> <p> <br /> <strong>提升篇:</strong><br /> 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。 </p> <p> <img src="https://img-bss.csdnimg.cn/202007091130239667.png" alt="" /> </p>
百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查你要的对象,打印到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。   设定字符串为“张三,你好,我是李四”   产生张三的密钥对(keyPairZhang)   张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节   通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Jav
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页