linux学习日记之老男孩

时间:2021-09-18 06:03:52

2016年10月5日
企业面试题:
cp 命令复制文件是如果有覆盖可能的话如何去除确认步骤,如:将/mnt/text.txt 复制

到/temp/text.txt,去除覆盖确认命令。
方法:
1、加全路径的cp命令,/bin/cp /mnt/text.txt /temp/text.txt。
2、在命令前增加\,\cp /mnt/text.txt /temp/text.txt
总结,其实cp命令就是/bin/cp -i 命令的别名,linux中为命令起一下别名用alias命令

,删除别名用unalias,最好不要随意更改系统默认的别名。
3、echo命令
解释:用于在shell中打印shell变量的值,或直接输出指定的字符串。linux的echo命令

,在shell编程中极为常用,在终端下打印变量的时候也是常常用到的。
用法:echo 选项 参数
注:更多用法参考http://man.linuxde.net/echo,另外应注意与重定向符的配合使用。

2016年10月6日
1、seq命令
解释:用于产生从某个数到另外一个数之间的所有整数。
用法:seq [选项]... 尾数
     seq [选项]... 首数 尾数
        seq [选项]... 首数 增量 尾数
注:更多用法参考http://man.linuxde.net/seq
2、head命令
解释:用于显示文件的开头内容。在默认情况下,head命令显示文件头的前 10行内容。
用法:head 选项 参数
注:更多用法参考http://man.linuxde.net/head
3、tail命令
解释:用于输入文件中的尾部内容。默认在屏幕上显示指定文件的末尾10行 ,如给

        定的文件不止一个,则在显示的每个文件前加一个文件名标题 。
用法:tail 选项 参数
注:如果表示字节或行数的N值前有一个“+”号,则从文件开关的第N项开始显示,而不是

     文件的最后N项,N值后可以跟后缀,b表示512,k表示1024,M表示1M,更多用法参考:
http://man.linuxde.net/tail
2016年10月8日
1、sed命令
解释:是一种编辑器,是处理文本时经常使用的工具,结合正则表达式,功能非凡,处理

        时先把当前要处理的行存储在临时的缓冲区中,然后用sed命令处理缓冲区,处理完后打印

        到屏幕。可以编辑一个或多个文件,简化对文件的反复操作。
用法:
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
例:sed -n '20,30p' 文件名
功能:替换功能,s表示替换指定的字符,如sed 's/string1/string2/g' 用前面的替换

        后面的,s表示替换功能,g表示全局替换,但应注意以是替换没有修改原文件,只是更改

        了输出结果,要想更改原文件需要使用-i参数,如sed -i 's/string1/string2/g'。

注:单引号里面是要执行的命令,也就是参数,sed命令擅长取行,详细参数可参考http://man.linuxde.net/sed。这是非常重要的命令,linux里的三剑客的老二。

2、awk命令
解释:awk是一种语言,在linux下对文件和数据进行处理。数据可以来自标准输入、一个

   或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等。是linux下

    的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有许多内建的功

    能,比如函数、数组等,灵活性是它的最大特点。
用法:
    awk [options] 'script' var=value file(s)
  awk [options] -f scriptfile var=value file(s)
例:awk -F ":" '{print $2 $3}' /etc/passwd
  awk '{if(NR<31&&NR>19) printf $1"\n"} ' text.txt
注:awk是linux里常用的命令,三剑客老大,擅长取列,更多用法参考:http://man.linuxde.net/awk
      $0表示打印整行。
3、grep命令
解释:一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 。
用法:grep match_pattern file_name
     grep "match_pattern" file_name
参数:-B显示匹配内容的同时再显示之后的内容,如grep 30 -B 10 text.txt
   -A显示匹配内容的同时再显示之后的内容,如grep 30 -A 10 text.txt
   -C显示匹配内容的同时再显示前后的内容,如grep 30 -C 10 text.txt
注:grep是一种常用的文本搜索工具,是三剑客的老三,擅长过滤。更多用法参考: http://man.linuxde.net/grep

4、less命令
解释:less命令与more命令作用十分相似,都可用来浏览文件内容,不同的是less命令允

     许用户向前或向后浏览文件,而more命令只能向前浏览
用法:less(选项)(参数)
例:less -e text.txt
注:更多用法参考http://man.linuxde.net/less
5、more命令
解释:是基于vi编辑器文本过滤器,它以全屏的方式按页显示文件内容,支持vi中的关键字定位操作
用法:more(语法)(参数)
注:更多用法参考http://man.linuxde.net/more

2016年10月9日

1、面试题

题目:查找符合文件名要求的文件,然后将里面的某一字符串替换为另一个字符串

方法:可以结合使用find命令和sed命令,两两组合使用,如:find -type f -name  "text.txt" | xargs sed -i 's/string1/string2'

注意:xargs的使用,另外,xargs 可以使用-exec  {} \;代替,如,find -type -f  -name "text.txt" -exec sed -i 's/string1/string2' {} \;。

2、xargs命令

解释:给其它命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准

输入数据转换成命令行参数,能够处理管道或者stdin命令并将其转换成特定的命令的参数

,也可以将单行或多行文本输入转换为其它格式,如多行变单行,单行变多行。xargs的默

认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和

空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组

件之一。

用法:cat test.txt | xargs

选项:-n 多行输出

注:xargs命令主要用在与其它命令组合使用。

3、特殊符号

解释:>输出重定向符,重定向内容到文件,清除已有的内容,然后加入新内容,如果文件

不存在还会创建文件。

>> 追加输出重定向符,追加内容到文件(中间无空格),

<输入重定向符,箭头方向就是数据流的方向。

<<追加输入重定向符。

|管道符号,从左向右流,可以接很多。

\转义字符,将具有特殊作用取消

{}生成字符或数字序列,一般配合echo等命令使用,find里的{}意思是前面命令的结果。如echo {1..10},mkdir stu{1,100}批量建目录

!+字母表示调出最近一次以此字母开头的命令。!!表示使用最近一次操作的命令,

!+数字,表示调出历史的第几条命令。

4、history命令

解释:用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区中的

目录写入命令文件,该命令单独使用时仅显示历史命令,历史命令是被保存在内存中的,

当退出或者登录shell时,会自动保存或读取。

用法:经常与!一起使用,调用历史命令。

5、ps命令

解释:用于报告当前系统进程状态,可以搭配kill指令随时中断、删除不必要的程序,ps

命令是最基本也是最强大的进程查看命令,使用该命令可以确定哪些进程正在运行和运行

状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

用法:ps 选项

注:更多选项参考:http://man.linuxde.net/ps

6、netstat命令

解释:打印linux中网络系统的状态信息,可让你知道整个linux系统的网络情况。

用法:netstat 选项

注:更多选项请参考:http://man.linuxde.net/netstat

2016年10月10日
1、linux与Windows共享文件
  用rz-sz工具,首先在linux中安装,方法:yum install lrz-sz -y;在CRT选项中设置共享的目录
  CRT中进行文件共享,使用命令:rz -y 上传,rz -y 文件名 下载。
  注:上传不能是目录,要打包。-y选项是覆盖。
2、CRT中批量管理多个服务器
  在新建连接对话框中选择在“一个标签中打开”复选框,然后在查看菜单中选择“交谈窗口”,这时会在下方打开一个输入框,
  右键选择“将交谈发送到所有标签”,然后在这里输入命令就可以了。
  注:CRT不要最大化。
3、克隆虚拟机后网卡不能启动的解决办法
  打开/ect/sysconf/network-scripts/ifcfg-eth0,删除MAC地址或UUID,保存重启,这时还是启动不了,解决方法:
  清空/etc/udev/rules.d/70-persistent-net.rules,清空办法是使用>。然后重启。
4、uname命令
  解释:查看系统的版本
  用法:uname -r 查看内核 或 uname -m 查看位数,-n 查看主机名,-a查看所有信息。
5、hostname 命令
  解释:查看主机名称
  用法:hostname
6、useradd 命令
  解释:添加用户
  用法:useradd 用户名
7、passwd命令
  解释:设置密码
  用法:passwd 用户名
8、whoami命令
  解释:查看当前用户
  用法:whoami
9、su命令
  解释:切换用户
  用法:su -
  注意:如果要完全切换su后要跟-,不然环境变量仍然是前一个用户的。
10、系统优化之关闭SELinux
  解释:SELinux(Security-Enhanced Linux)是美国安全局对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里是考虑先把它关闭了。
  用法:将/etc/selinux/config文件中的SELINUX=enforcing改为SELINUX=disable。
  注:SELinux的相关配制在/etc/selinux/config中,更改完后要重启,可以用getenforce查看是否生效,使生效可以用setenforce 0(1:启用,0:是警告但不启        用),但这只是临时生效。
11、设置运行级别
  解释:系统的状态存在着 7个级别,分别是0:关机状态、1:单用户模式、2:多用户模式(没有网络文件系统)、3:文本模式(完整的多用户模式)、4:没有使用
      5:桌面模式、6:重启模式
  用法:更改配制文件/etc/inittab中的最后一行。查看运行模式使用命令:runlevel,切换运行级别:init 6
  注:7.0版本以前使用这个文件,以后已不再使用这个文件。
12、linux启动后要保留的服务有5个
  解释:第一个,sshd,远程连接Linux服务器,必须要开户这个服务,不然无法连接到服务器;第二个,rsyslog,是操作系统提供的一种机制,系统的守护程序通         常会使用
  rsyslog将各种信息写到系统日志文件中去,所以必须启动;第三个,network,系统启动时,若想激活/关闭各个网络接口,则应考虑开启.第四个,crond,该服务   用于周期性地执行系统及用户配制的任务计划.有要周期性地执行的任务需要开启这个服务,此服务几乎是工作中必须用到的一个服务.第五个,sysstat,是一个软件         包,包含监测系统性能及效率的一组工具,这些工具对于系统性能数据很有帮助,比如CPU使用率、硬盘和网络的吞吐数据等,这些系统数据的分析有利于判断系统运       行是否正常,所以它是提高系统运行效率、安全运行服务的助手。

2016年11月2日
1、sudo命令
  解释:sudo以其它用户的身份运行命令,预设的身份是root,在/etc/sudoers中设置了可执行sudo指令的用户。
  用法:sudo touch filename
  注:配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,
  一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。