zoukankan      html  css  js  c++  java
  • linux基础指令以及权限管理

    基础指令

    #打印字符串
    echo hello linux
    
    #将file1 和 file2粘合在一起,打印到标准输出流
    cat file1 file2
    

    标准输入输出

    • 标准输入,stdin,即键盘、鼠标输入
    • 标准输出,stdout,即输出到终端
    • 标准错误流,stderr,输出到终端的错误信息

    常用命令

    # 列出目录下的文件以及详细信息
    ls -l /home
    
    #将file1复制到file2
    cp file1 file2
    #将多个文件复制到dir目录
    cp file1 file2 file3 dir
    
    #将file1重命名成file2,如果两者在同一个目录下
    mv file1 file2
    #将多个文件移动到dir目录下
    mv file1 file2 file3 dir
    
    # 创建文件file,如果已经存在则更新创建时间
    touch file
    
    #删除文件以及目录下的文件
    rm file
    rm -rf /dir
    
    #将参数显示到标准输出,还可以输出变量以及
    echo hello again
    

    浏览目录

    • .表示当前目录
    • ..,表示上一层级目录
    # 切到dir目录下
    cd /dir
    
    #创建dir目录
    mkdir /dir
    
    echo at* #打印当前目录下所有at开头的文件名
    echo *at* #所有包含at的
    echo *at # 所有at结尾的
    
    # * 通配任意长度的字符串
    # ? 通配单字符
    # '*'可以禁止通配符展开,即打印字符(*)本身
    

    中间命令

    #在passwd文件中匹配root关键字的行,并打印到标准输出流
    grep root /etc/passwd
    #匹配etc目录下所有包含root行的文件
    grep root /etc/*
    # -i表示不区分大小写匹配root,比如RooT,rOOT等
    grep -i root /etc/passwd
    #-v 表示反向匹配passwd文件,即打印所有不含有root的行
    grep -v root /etc/passwd
    
    #相当于cat和more的加强版,分屏浏览文件内容
    less /usr/share/dict/words
    # B前一屏,SPACE后一屏,q退出,/word向下搜索Word关键字,?word向上搜索Word关键字
    
    #显示当前目录
    pwd -P
    
    #比较两文件的不同点
    diff file1 file2
    
    #查看file1文件的格式信息
    file file1
    
    #/dir目录下查找名为fileName的文件地址,并打印到终端
    find /dir -name fileName
    
    #打印file1的前10行,如果 -5,表示前5行
    head file1
    #打印passwd文件尾部内容
    tail /etc/passwd
    
    #排序file1的行,输出到标准流(终端)
    sort file1
    sort -r /etc/passwd#反向排序
    

    基础文件系统知识

    修改密码

    passwd #然后输入一次旧密码,两次新密码即可修改当前用户密码
    passwd root #修改root用户的密码
    

    dot文件

    即以.开头的文件,默认隐藏,调用ll可显示

    环境变量与shell变量

    STUFF=blade #给STUFF变量赋值blade,注意等号两边没空格,否则报错
    
    echo $STUFF #打印STUFF变量
    
    #将变量转成系统环境变量
    export STUFF
    
    • 环境环境变量与shell变量的最大区别:shell变量只在当前shell作用,环境变量整个系统都可以使用,包括一些文件配置文件等。典型的,我们常配置$PATH变量

    命令路径

    $PATH变量,他定义了一堆目录,目录之间以:分割开来。在终端键入指令时,比如ls,就会在PATH定义的路径下搜索指令文件。如果有多个目录含有该指令,以第一个目录为准

    敲命令行的一些快捷键

    ctrl-b #光标左移
    ctrl-f #光标右移
    ctrl-p #上一个指令
    ctrl-n #下一个指令
    ctrl-a #光标移到指令开头
    ctrl-e #移到指令结尾
    ctrl-u #删除光标到开头的内容
    ctrl-k #删除光标到结尾的内容
    ctrl-y #粘贴前面删除的内容
    

    帮助文档

    #查看ls指令帮助文档
    man ls
    
    #查看find指令的文档
    info find
    
    #查找带sort关键字的所有指令
    man -k sort
    

    指令类型

    类型代号 类型意义
    1 用户指令
    2 系统内核函数
    3 lib函数库
    4 接口、设备、驱动信息
    5 配置文件,大多在/etc下面
    8 超级用户的系统级指令

    重定向以及管道

    重定向:即将输出流的位置重新改变,常用的是该标准输出流到一个文件

    #将grep的输出重定向到file1中
    grep root /etc/passwd > file1
    #一般的`>`会清空文件的本身内容在接受输出,使用`>>`会改为追加模式
    

    管道:即前一个指令的输出做下一个指令输入,数据在指令之间流通就像流经不通的管道一样

    # 将grep的输出内容使用sort排序,然后重定向到file1中
    grep -v root /etc/passwd | sort > file1
    

    查看、操作中进程

    参数

    • pid:进程id,process id
    • tty:终端设备
    • stat:状态,S表示sleep,R表示RUN
    • time,占用CPU的时间
    • command:启用这个进程的指令

    查询指令

    # x:当前用户占用的所有进程 ax:系统所有进程 u:更详细的进程信息 w:显示命令行全名
    #下面的意思为:显示进程名含有keywords的进程
    ps -aux process_keywords
    

    终结进程

    kill pid
    kill -term pid
    
    kill -stop pid #暂停进程
    kill -cont pid #唤醒进程
    
    kill -9 pid
    

    文件权限

    image

    drwxr-xr-x的含义

    文件详情的第一列,形如drwxr-xr-x,就是描述一个文件权限的描述符,共计10位字符

    • 0位,-:表示文件,d:表示目录,l:表示链接文件等
    • 1-3:表示文件所有者的权限,r:读 w:写 x:执行
    • 4-6:用户组的权限
    • 7-9:其他组的权限

    修改文件权限

    #group other增加读权限
    chmod go+r file
    
    #设置权限为744,即读写操作-读-读
    chmod 744 file
    

    数值描述权限

    • r:4
    • w:2
    • x:1

    因此,744就是(4+2+1)-(4+0+0)-(4+0+0)

    注意,一个目录如果没有x权限,只能ls查看他包含的文件名称,却不能cd进去,也不能读取他里面的文件

    创建符号链接

    符号链接,即快捷键,给某个目录建立一个快捷键

    #target:目标目录 linkname:连接符号名
    ln -s target linkname
    

    压缩、归档

    压缩:将文件归为一个压缩包,降低占用空间

    #压缩
    gzip file
    #解压
    gunzip file.gz
    

    归档:即将多个文件或者某文件夹整合为一档

    # c:创建归档 v:显示细节 f:表示文件,后接文件名
    tar cvf archive.tar file1 file2...
    #解压归档文件 x:解压
    #tar xvf achiver.tar
    

    其实,在实际中压缩与归档可以用tar指令一步完成,如

    #解压
    tar xzvf file.tar.gz
    
    #压缩 归档
    tar czvf achiver.tar.gz file1 file2...
    

    linux目录结构

    • bin:可执行文件,c编译的二进制文件和shell脚本
    • sbin:超级用户的可执行文件,系统级指令
    • etc:配置文件
    • lib:编译动态链接库、函数等
    • home,家目录,理论上每个用户都在下面有个家
    • dev:接口设备文件
    • proc 和 sys:系统信息如进程信息等
    • var:运行时信息,日志、缓存、用户信息等
    • usr:大量系统文件,复杂
    • boot:启动的内核加载文件
    • media:可插拔设备文件
    • opt:第三方软件目录,很多系统没有这个目录

    usr目录

    存放用户空间的进程和数据

    • usr/bin 和 usr/sbin:用户使用的一些指令
    • usr/lib:链接库
    • include:c的哄文件(*.h)
    • info:指令文档
    • man:指令文档
    • local:管理员装软件的地方

    内核位置

    系统内核在vmlinuz或者boot/vmlinuz中

    超级用户

    通过修改etc/sudoers文件,可以添加拥有超级权限的普通用户。这个用户只需要敲sudo即可执行root权限

    参考

    • 《精通linux第二版》
  • 相关阅读:
    Tomcat原理与实践
    Spring Boot入门与实践
    Docker安装及使用
    JDK源码解析——集合(一)数组 ArrayList
    浅谈mysql底层索引
    微信小程序全局配置知识点
    uniapp全屏高度
    npm node-sass报错
    微信小程序接口配置问题
    微信小程序的设计流程
  • 原文地址:https://www.cnblogs.com/Franken-Fran/p/linux_basics.html
Copyright © 2011-2022 走看看