shell面试题,shell基础学习

来源:互联网 发布:逆光源网络剧百度云 编辑:程序博客网 时间:2024/06/03 14:41
1、文件权限与属性
d(文件类型)rwx(所有者权限)rwx(所属组权限)---(其他权限)
r4w2x1

chgrp   修改组
chown  修改所有者
chmod  修改权限

第一个字符是文件类型(文件-、目录d、连接    l)

2、文件全部查看
cat 从第一行开始显示
tac 从最后一行开始显示
cat -n/-b  file 显示行号    也可以用nl  file 

3、文件部分显示查看
more 
空格 向下翻一页
enter 向下翻一行
:f  文件名和行数
b 往回翻

4、查询命令
   1、脚本文件名查询
      which 
   2、文件名查找 
       whereis --利用数据库查找
       locate --利用数据库查找
       find  基于硬盘文件查找 
        1)find  / mtime  1
            找到一天前的24小时内修改的文件
        2)find /  -user jenkins
             找到用户为kenkins的文件
        3)find / -name  wh
            找到文件名为wh的文件
        4)find / -size +1000k 
            找到大于100k的文件
5、vi 编辑模式命令
    $  移动到一行的行尾
    0   移动到一行的行首
    G   移动到全文的最后一行
    gg  移动到全文的第一行
    nG  移动到第N行
    ctrl + f  往下翻页
    ctrl + b  往上翻页
    i   光标处插入字符
    I    光标所在行首插入
    a   光标后第一个字符插入
   A  光标所在行尾插入
6.变量在子脚本中应用
export var 即可
7、查看环境变量
env
8、shell环境变量
系统整体变量 /etc/profile
个人系统变量  ~/.bash_profile
9、数据流重定向
     输出重定向
     ls  /test/wh  1>>  out  2>>err   1为标准输出,2为标准错误输出
     ls  /test/wh  2> /dev/null   输出到黑洞
     ls  /test/wh >out  2>&1   正确和错误输出到同一个文件中
     输入重定向
     cat  >  test
     输入内容后ctrl+d结束,就会创建test并存入输入内容
10、&&和||
用来判断前一个执行成功与否判断后一个命令是否执行
 cmd1 && cmd2   cmd1执行成功了那么继续执行cmd2
 cmd1   ||  cmd2    cmd1执行成功了则不执行cmd2
  &&和||  连用

11.管道
 cut -- 主要对数据进行分解
 cut -d ':' -f 3,5 截取用:分割的第三个和第五个
 grep --对文件进行分析
 sort  排序
 wc计数、

12、双向重定向
  tee 

13 、grep
匹配a?m的查找
grep -n  'a[bc]m'  file.txt
查找中间一个非b的
grep -n  'a[^b]m' file.txt

14、基础正则
  ^word
    以word开头的行
  word#
    以word结尾的行
.
  点代表任意一个字符
[list]
从中之一
[n1-n2]
范围
[^list]
不要的字符
\{n,m\}
前一个字符重复的范围、

15、sed命令(整行文本处理工具)
增删改查
删除第二行和第五行
cat /etc/passwd | sed '2,5d'
增加第二行后面 huan
cat /etc/passwd | sed '2a huan'
替换第二行到第五行为 no 2-5
cat  /etc/passwd | sed '2,5c  no 2-5'
打印第100-200行
cat /etc/passwd | sed -n '100,200p'

sed 替换命令
sed  's/aa/bb'  file.txt
aa 替换成bb


16、awk命令(将一行分为多个字段)
awk [-F  field-separator]  'commands'  input-file(s)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
打印文本的第一列和第五列
cat /etc/passwd | awk  '{printf  $1  "/t"  $5}'
$0 代表第一行
$1 代表第一列
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
cat /etc/passwd |awk  -F ':''{print $1"\t"$7}'
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。
cat /etc/passwd | awk  -F ':' 'BEGIN {print "name,shell"}  {print $1","$7}  END  {print "blue,/bin/nosh"}'
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。


17、安装软件的命令
   rpm  编译安装
rpm -ivh *.rpm
rpm -ivh http://*.rpm
   yum  在线安装
 yum install  softname



















原创粉丝点击