今天上了一天的课,根据马哥留的练习,做如下记录:


1、总结文本编辑工具vim的使用方法;

   VIM是一种LINUX和UNIX下的文本编辑器,可以对文件进行编辑,在实际的工作中,是不可缺少的工具。

   其具体的用法简单些讲,就是类似于WIN上的WORD,不过它没有图形界面,只有命令行,比如复制一行的快捷键是yy,复制N行,用nyy; 在文件里显示行号,用:set nu; 删除一行,用dd; 粘贴用p;反悔刚才的动作用u;用:wq,即为保存退出。以下的VIM用法,来自于网络,借鉴,记录一下:

  :%s/old/new/g    

   全文中的字符串old全部替换成new,注意格式,只需改old,new,其他一样

  :n1,n2s/old/new/g        

   将n1行到n2行中所有的old都替换成new

  :n1,n2d          

   删除指定范围的行,将n1行到n2行删除


2、总结文件查找命令find的使用方法;

 find  是LINUX下的文件查找工具,可以指定不同的条件对系统中的文件进行查找。用法如下:

 find [-path……] -options [-print -exec -ok]

 path 是搜寻文件的路径 options是具体的条件

 options常用的有下选项: 

      -name:按照名字查找 

      -perm:安装权限查找 

      -prune:不再当前指定的目录下查找 

      -user:文件属主来查找 

      -group:文件所属组来查找 

      -nogroup:查找无有效所属组的文件 

      -nouser:查找无有效属主的文件 

      -type:按照文件类型查找

 print:表示将结果输出到标准输出。 

 exec:对匹配的文件执行该参数所给出的shell命令。 

      形式为command {} \;,注意{}与\;之间有空格 

 ok:与exec作用相同,

      区别在于,在执行命令之前,都会给出提示,让用户确认是否执行

 命令举例如下:

  在当前目录及子目录中,查找大写字母开头的txt文件 

 $ find . -name '[A-Z]*.txt' -print

  在当前目录除aa之外的子目录内搜索 txt文件   

 $ find . -path "./aa" -prune -o -name "*.txt" -print

  在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件 

 $ find . -perm 755 -print

  在当前目录及子目录下,查找符号链接文件   

 $ find . -type l -print

  查找2天内被更改过的文件 

 $ find . -mtime -2 -type f -print


3、总结bash环境变量的相关内容; 

 (1) LINUX是个多用户系统,每个用户都有自己的运行环境,这些运行环境默认是相同的,是通过不同的环境变量来设置的。用户对自己的运行环境进行定制,可以通过修改这些环境变量进行定制。

 (2) /etc/profile是全局的环境变量配置,在这个里面修改后,修改的结果会影响到所有的用户

 (3) 变量的定义,是这种形式"name=fengfeng",在profile里,定义后,如果要生效的话,需要重启或者注销

 (4) 使用env显示所有的环境变量,  使用set显示所有自定义的环境变量

 (5)常见的环境变量 PATH:决定了shell将到哪些目录中寻找命令或程序

  HOME:当前用户主目录

  MAIL:是指当前用户的邮件存放目录。 

  SHELL:是指当前用户用的是哪种Shell。

  HISTSIZE:是指保存历史命令记录的条数。 

  LOGNAME:是指当前用户的登录名。 

  HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

  LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 

 PS1:是基本提示符,对于root用户是#,对于普通用户是$。

  PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。

    

4、总结Linux文件系统上的特殊权限(SUID、SGID、Sticky)的知识点;

SUID: 执行者执行具有SUID权限的应用程序时,将具有应用程序拥有者的权限,比如passwd。

SGID:执行者将具有应用程序属于组的权限

STICKY: 该权限仅对目录有效,在拥有此种权限下的目录中,生成的文件,只有用户本身和ROOT有删除权限


5、总结Linux磁盘管理、文件系统相关知识点及其相关命令的使用方法;

常用命令fdisk df du 等等.


6、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;

:%s/^\s*//g

7、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;

:%s/^\s/#&/g


8、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

:%s/\/etc\/sysconfig\/init/\/var\/log/g


9、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;

:%s/^#\(\s\+\)/\1/g


10、查找/var目录属主为root,且属组为mail的所有文件;


[root@monitor ~]# find /var -user root -group mail -ls
3014659    4 drwxrwxr-x   2 root     mail         4096 8月 31 09:00 /var/spool/mail
3014718  692 -rw-------   1 root     mail       701071 8月 31 09:00 /var/spool/mail/root


11、查找/usr目录下不属于root、bin或hadoop的所有文件;


[root@monitor ~]# find /usr ! -user root ! -user nobody ! -user nagios -ls
2883701   12 -rwsr-xr-x   1 abrt     abrt         9856 9月 26  2013 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache


12、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;


[root@monitor ~]# find /usr -mtime -7 ! -user nobody -ls    
5243423    4 drwxrwxr-x   5 nagios   nagios       4096 8月 31 16:10 /usr/local/nagios/var
5243880    4 -rw-r--r--   1 nagios   nagios          6 8月 31 09:17 /usr/local/nagios/var/nagios.l


13、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;

find / -nouser -mtime -7

14、查找/etc目录下大于20k且类型为普通文件的所有文件;

[root@monitor ~]# find /etc -size +20k -type f -ls
4457723   24 -rw-r--r--   1 root     root        23027 11月 11  2010 /etc/ipmi_monitoring_sensors.conf
4456841   64 -rw-r--r--   1 root     root        65536 1月 13  2010 /etc/pki/nssdb/cert8.db
4456494  560 -rw-r--r--   1 root     root       571450 4月  7  2010 /etc/pki/tls/certs/ca-bundle.crt
4456495  636 -rw-r--r--   1 root     root       651083 4月  7  2010 /etc/pki/tls/certs/ca-bundle.trust.crt
4456490  128 -rw-r--r--   1 root     root       130601 4月  7  2010 /etc/pki/java/cacerts


15、查找/etc目录下所有用户都没有写权限的文件;

find /etc -not -perm +222

16、查找/etc目录下至少有一类用户没有执行权限的文件;

find /etc  -not -perm -222 -ls

17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;

find /etc   -perm -113 -ls

18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;

chmod u+s /tmp/cat

19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

chmod o+t test/