2017-2018_2linux考点总结

1. uname -a Unbuntu16.4版本   使用的系统是Ubuntu16.04.4

2. Linux全称GNU/Linux,属于GNU组织,开源有很多协议,Linux使用的是GPL协议
    开源协议:MIT,Apache,Linux用的是GPL

3. l / usr/ 下有bin和sbin,一般执行sudo安装时放在这些目录下,需要root的放在sbin下。如 usr/bin/vim.profile
    l /usr/local/    l /usr/games/  也有些放下面

    l相当于输入了ls –CF

    修改默认搜索路径:echo $PATH

4. l /etc/ 保存系统和脚本等  下面的passwd文件保存用户信息
    /root  root的主目录
    /home  其他用户的主目录

    Notes:查看用户主目录echo $HOME 或echo ~  ;查看当前工作目录echo $PWD 或pwd

5. 一些简单的命令

    ls -a 显示所有选项,包含隐藏的
    ls -l 显示详细信息
    ls -al = ls -a -l
    ls /usr 只显示一层的内容

    ls /usr -R 递归显示所有的内容(Note:-R都是执行递归操作)

    cd 切换目录

    mkdir 创建目录 如mkdir xy

    cp a.sh ext xy/ 最后一个必须是路径,复制到这个目录下
    cp a.sh xy/b.sh
    cp a xy -R 目录整体复制,必须加-R

    Note:复制目录要加上-R cp a xy -R(-R的位置没有严格的顺序要求)

    rmdir 删除空目录,非空删不了

    rm -rf xy 删除目录,可空可不空,目录也是文件

    mv a xy 移动可以直接移动

    mv be ./bd 移动文件并且重命名

    touch 创建空文件

    ls -l ext 显示权限
    如 -rw-rw-r-- 转化为数字664,分别对应用户、用户组、其他用户,一般可写就可读。rwx分别对应一个位
    添加权限:chmod +x ext (给所有人加上x权限)

                     chmod 753 ext
    改变所有者:[sudo] chown ok:ok ext (用户:用户组)

    Note:可以省略其中一个,表示只改变一个,但冒号必须保留

    其它相关的权限操作不用太多的背,用户管理adduser不考
    必须知道最关键的2点
    echo 输出后面的字符串

    cat /etc/group 输出用户组信息    

    l /etc/passwd 保存的是基本信息
    cat /etc/passwd

    echo /etc/passwd

6. 重定向(重点)
    一般重定向都是指输出重定向
    > 输出重定向;2> 标准错误输出重定向
    find /搜索文件有严格的顺序要求
    find / -iname *gcc* > tmp/findtmp 2> /dev/null黑洞文件,重定向到这个文件都会消失

    find / -iname *gcc* | wc -l 管道是个文件,还是重定向的技术,标准错误输出在管道内不会重定向

    find / -iname *gcc* 2> /dev/null | wc -l  错误信息不输出

7. 进程(要知道进程管理)

    ps -e 显示所有进程
    ps -e | grep ssh 搜索文件中所有含ssh的文件

    Note:这两个一定要记住

8.  后台任务

    jobs 查看后台任务
    ctrl+z 放到后台等待,挂起状态

    fg 2 把2号任务放到前台执行,命令后面加&是放到后台

    bg 1 放到后台执行

9. 终止
    kill 4075(进程的PID) 有时候kill不了

    kill -9 4075 强制终止(必要的话加sudo)

10. umask 显示/设置权限掩码,默认0002
    规则:0777按位减去umask,得到各种权限的值.默认创建的文件权限是775
    umask 022 设置权限掩码为022
    文件还要减去可执行权限,默认是644 rw-r--r--(777-默认掩码-可执行权限)
    linux新建文件非可执行文件默认权限怎么算?

11. ln 链接
    ln -s 创建软连接(没有目标文件或链接路径也可以,创建了新文件

    ls -s ~/tmp/b.sh bin/tmpb (目标路径最好是绝对路径)
    ln 硬链接(没有创建文件,仅仅是多一条记录,实际是文件的链接计数加1

    ln b.sh hd.sh

    Notes:一个PID对应一个文件,和文件名无关。只有硬链接为0才删除文件。删文件只是硬链接数-1,直到硬链接数为0.复制的话会多出一个新文件。

12. shell编程
    变量:字母或下划线开头的全部以文本形式来保存  a=1234567

    =左右不能有空格,可用来判等

    a=1
    输出变量的值 echo $a    
    set 查看所有已经设置好的变量
    unset a 清楚变量,输出为空

    if [],【】里的字,左右两头有空格
    fi 结尾表结束
    []是test的等效写法
    if识别0为true,非0为false
    判断、循环的条件必须是命令,所以也不一定用test。不用刻意比较返回的值,if可以直接判断
    (grep -v xxx过滤掉某些关键字)
    if [ $# -gt 0 ]; then

    while循环要看一下

13. wait、fork

    getid() 获取进程id
    getpid() 输出父进程id
    fork()会创建子进程,调用后,新创建的进程会和父进程一样继续执行。出错返回-1且不创建新进程,成功则再父进程返回创建子进程的PID,在子进程返回0

    有几个fork()就输出2的几次方次

wait(&status)  //等待子进程退出,不退出父进程就一直挂起
    main(void){
        fork();fork();fork();
        printf("123456");  //会打印2^3次123456
    }
    wait等待子进程退出,并把子进程推出状态设置到status变量。返回退出进程的PID。
    dup(fd,1)  精确控制 将fd文件都复制到文件描述符1去。若关闭直接复制,否则关闭后再复制; 就成功重定向啦
    dup2(fd,1)  追加重定向
    子进程被接管的话,父进程变为init,PID=1   -> 实现守护进程的基础

    printf是向 标准输出 输出,不是向 屏幕 输出,关联什么就输出什么

    Linux C编程
    fork()、wait()、forkwait、fread、fwrite
    close函数:在文件操作最后用close关闭打开的文件:int close(int id); close函数成功返回0,错误返回-1
IO 重定向实现方法 
    编程实现的方式(以文件描述符 1 为例): 
    close-open-close 方式,先 close(1),然后 open(filename, O_RDWR, S_IWUSR); 操作完成,close 关闭新打开的文件。 
    open-close-dup-close 方式,open 打开文件,返回的文件描述符不是 1,然后 close(1),现在最低可用描述符是 1,     dup(fd)会把新打开的描述符复制到 1,然后 close(fd)关闭新打开的文件。 
    open-dup2-close 方式,dup2(oldfd, newfd),关闭 newfd,把 oldfd 复制到 newfd,close 关闭新打开的描述符。 

    shell脚本和C编程是重点,看PPT

    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值