美文网首页
Centos 学习笔记2-问题解决

Centos 学习笔记2-问题解决

作者: 夏夜星语 | 来源:发表于2017-07-18 00:29 被阅读27次

    1.whereis, locate, which,find 的区别?:

    (1) which: 寻找"执行文件"(命令程序),在PATH这个环境变量下查询,且此"执行文件"是完整文件名。如果加上"-a"参数,则显示的是所有找到的同名执行文件,而非仅仅第一个。
    (2)whereis: 与locate 一样是在数据库中查找,速度快,而find是在磁盘中查找,慢。但是find的参数强大。
    (3)locate: 更新数据库:updatedb :更新/var/lib/mlocate 内的数据库文件,而locate就是依据/var/lib/mlocate里的数据库记载查找用户输入的关键字文件名的。
    (4) find: find [path] [option] [action]
    比如:“列出最近30天内修改的,具有SUID权限, 且文件名包含‘httpd’所有文件”
    那么命令为: find / -mtime -30 -perm -4000 -name '*httpd*'

    2. soft & hard link: (软硬连接) 区别?

    (1) 硬连接:假设有个/tmp/liuning/a.txt文件, 现在创建ln /tmp/liuning/a.txt /home/tmp/b.txt则创建了'b.txt'这个硬连接。此时,a.txt与b.txt代表的是两个inode节点,而文件名均指向一个真正的inode节点,这个inode节点指向的是文件的实际内容。因此,删除任何一个文件名,另一个文件名对应的真正inode节点还在,inode节点对应的实际内容还在,还可访问。硬连接相当于一个不占用新磁盘空间的复制,所以不能硬连接到目录,不能跨文件系统。
    (2) 软连接:创建时加上-s参数,例如ln -s /etc/crontab crontab2给/etc/crontab这个文件创建了软连接crontab2, 此时crontab2这个文件名是一个真正的文件,inode节点与/etc/crontab文件inode节点号码不一样。且实质是crontab2文件内容就是指向的"文件名",所以,一旦目标文件被删除,连接文件将无法访问(连接文件内容是被指向的文件名),且修改连接文件内容就是修改目标文件内容。因为访问连接文件,就是访问目标文件。

    3. 怎么挂载iso文件?例如:将当前目录下的iso文件以硬盘模式挂载到 /mnt/234

    mount -t iso9660 -o loop hi-spider-isp6.10.iso /mnt/234/(-t 参数可以不指定,因为系统一般自动识别文件类型;-o loop 意思是把一个文件当成硬盘分区挂接上系统(这里为必须); /mnt/234/是被挂载的目录)

    4. 如何让一个程序在开机执行?添加到开机启动项?

    添加到/etc/rc.d/rc.local文件中

    5. gzip 与bzip2, tar的区别?

    (1)gzip 与bzip2 只能单个地压缩与解压缩,而tar可以对许多文件,比如含有许多文件的目录进行打包成一个文件。
    gzip [-cdtv#] 文件名
    gzip -v 文件名压缩该文件,并显示压缩比例,此时源文件消失,替代的是源文件.gz (不带任何参数就是直接压缩)
    zcat xx.gz 命令:直接查看压缩的文件内容,而不需要解压。
    (2)bzip2是取代gzip的压缩比更高的命令,bzip2 (-z) xx压缩,bzcat xx.bz2直接查看压缩文件, bzip2 -k xx是压缩并保留xx文件, bzip2 -d xx.bz2解压缩,bzip -c xx > xx(自己定义).bz2输出命令行并重定向。
    (3)tar命令:与压缩命令结合起来用,一般如下:
    压缩: tar -jcv -f desktop.tar.bz2(压缩打包后的文件名) 桌面(待打包压缩的文件或目录) (源文件会保留)
    查询: tar -jtv -f desktop.tar.bz2(待查看压缩文件)
    解压缩:tar -jxv -f desktop.tar.bz2(待解压文件名) -C /home/liuning/解压/(解压缩后文件放置目录)
    比如备份/etc/目录:tar -zpcv -f /home/liuning/etc.tar.gz /etc(这里压缩使用的是gzip格式,所以带-z参数而不是-j;-p是指保留备份数据原本的权限与属性,一般用在重要文件上)
    **du -sh filename/dir(文件或目录)** 用来评估此文件或者目录的占用磁盘空间的大小 (-s 只列出目录下总量,而不列出目录下每一项大小; -m:以MB形式显示大小; -h:以人类友好方式列出大小(G/M))
    tar -jtv -f /home/liuning/etc.tar.bz2:查看etc.tar.bz2压缩文件下包含的各项小文件。

    6. vim多窗口编辑多文件(每一个窗口一个文件)?

    刚开始时就打开两个文件在两个窗口中: vim -o(小o为水平分割,大O为垂直分割) file1 file2 , 如果已经打开了一个文件,那么再想划出新窗口打开新文件::split other.txt

    7. 系统变量IFS?

    IFS(Internal Field Seperator: 内部区域分隔符),一般默认是空格,tab, 换行三个。这样,在for循环遍历'welcome to my home!'时,才会一次取得:welcome, to, my, home!这几个字符。要改变:设置IFS=,(逗号)等。这个在shell脚本编程中需要用到。

    8. 变量内容设置删除与替换?

    echo ${path_back#/*:} :从开始删除掉从/开始到:的第一个内容; (从后删除:%,一直删除:##或%%)
    变量的测试与替换:username=${username:-root} : 如果没有设置username或者是设为空,则替换为root

    9.在CentOS下的Login shell环境下,shell的读取脚本顺序为:

    /etc/profile(会调用/etc/inputrc, /etc/profile.d/*.sh, /etc/sysconfig/i18n这些文件) ------> [~/.bash_profile | ~/.bash_login | ~/.profile] (会调用~/.bashrc文件)(第二个主文件是按照顺序来读取,前一个没有才会读取后一个,一般~/.bash_profile都有)

    10.数据流重定向:0,1,2?

    0:标准输入; 1:标准输出; 2:标准错误输出。 如将find /home -name .bashr的正确结果导入list_tight的文件,错误结果导入list_error文件中:
    find /home -name .bashrc > list_right 2> error_right 追加写入同一文件(不覆盖掉原来的数据),则用" >>",前面加上对应的数字,需要注意:<< "EOF"这个表示结束输入,即当输入"EOF"时结束输入。
    一般用法:将错误信息丢进NULL这个黑洞设备里:2> /dev/null (/dev/null:数据黑洞,哈哈)
    经常用法find /home -name .bashrc > list 2>&1(其中的2>&1是指将正确错误输出均写入list文件中)

    11.列出当前目录下以xxx开头,且文件名是5个字符的所有文件?

    ls | grep -n "^xxx.." "^xxx.." 一共有5位(..占两位),且带了'^',所以是以'xxx'开头。

    12. 列出某文件下的特定列并且按照顺序排列?

    ls passwd | cut -d ":" -f3 | sort : 列出passwd文件中以":"分割的第3项,并按顺序输出。

    13. diff以行为单位比较两个文件,一般是同一个软件的不同版本,或配置文件与源文件区别时。

    相关文章

      网友评论

          本文标题:Centos 学习笔记2-问题解决

          本文链接:https://www.haomeiwen.com/subject/wlnqkxtx.html