美文网首页linux运维
Linux学习笔记(二)

Linux学习笔记(二)

作者: dev_winner | 来源:发表于2019-11-16 16:16 被阅读0次

    文件目录类

    • 查看当前工作目录的绝对路径pwd
    • 查看当前目录的内容信息:ls [选项] [文件或目录]。常用选项:-a :显示当前目录下所有(包括隐藏的)文件目录-l:以列表的方式显示信息。
    • 切换到指定目录:cd 绝对/相对路径。例如:回到当前目录的上一级目录cd ..。回到当前用户的主目录:cd ~
    • 创建目录mkdir [参数] 目录,参数 -p表示创建多级目录
    • 删除空目录rmdir [选项] 空目录,若目录下有内容则无法删除。
    • 删除目录rm -rf 文件或目录。参数-r(-r, -R, --recursive:递归的; 循环的)。参数-f( -f, --force:忽略不存在的文件,强制删除它们)。
    • 创建空文件touch 文件名
    • 拷贝某个目录或文件到指定目录:cp [参数] source dest。参数-r:递归地复制整个文件夹。强制覆盖不提示\cp,即在cp命令前面添加反斜杠\
    //重命名
    mv oldNameFile newNameFile 
    // 移动文件或目录
    mv /temp/movefile /targetFolder 
    
    • 查看文件内容:cat [参数] 要查看的文件。参数-n:显示行号。例如: cat -n /etc/profile | more,其中|表示管道命令,more表示分页命令。cat命令只能读取文件,而不能修改文件!
    • 分页显示文本文件的内容:more 文件名。例如:more /etc/profile
    • 分屏查看文件内容:less 文件名,其比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次性将整个文件加载之后才显示,而是根据显示需要加载内容, 适合显示大型文件。例如:less /etc/profile
    • 输出重定向>:将会覆盖原来文件的内容。追加>>,不会覆盖原文件,而是追加到文件的末尾。例如:ls -l > h.txt或者ls -l >> h.txt,表示将ls -l显示的内容覆盖(或者追加)写入到 h.txt文件中,若文件不存在,则自动创建该文件。将文件1中的内容覆盖到文件2:cat 文件1 > 文件2 。将字符串追加到文件尾:echo "内容">> 文件
    • echo输出内容到控制台:echo [选项] [输出内容],例如:输出当前用户的环境变量echo $PATH
    • 默认情况下head指令显示文件中前10行内容:head 文件名。例如,查看文件头5行的内容:head -n 5 文件名
    • 默认情况下tail指令显示文件中后10行内容:tail 文件名。例如:查看文件后5行内容:tail -n 5 文件名
    • tail -f 文件名:实时追踪某个文档的所有更新记录。
    • 软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径:ln -s [原文件或目录] [软链接名]。例如: 在/home目录下创建一个软连接linkToRoot链接到/root目录:ln -s /root linkToRoot
    • 删除软链接rm –rf ./软链接名。注意:后面不能加斜杠/rm -rf ./软链接名/),否则会把软链接以及软链接指向的目录下的内容全部删除!!!
    • 查看已执行过的历史命令history
    • 显示最近使用过的10个指令:history 10
    • 执行编号为x的历史指令:!x

    时间日期类

    • 显示当前具体时间:date
    • 显示年月日时分秒:date "+%Y-%m-%d %H:%M:%S"
    • 设置系统当前时间:date -s 时间字符串。例如:date -s 2019-11-17 11:22:22

    • 查看日历:cal [选项]。例如:查看当前月份的日历:cal;查看2020年一整年的日历:cal 2020

    搜索查找类

    • 从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端:find [搜索范围] [选项]
    • 查找/root目录下的h.txt文件:find /root -name h.txt
    • 查找/root/myshell目录下拥有者为root的所有文件和目录:find /root/myshell/ -user root
    • 查找根目录下大于20M的文件(+n 大于 -n小于 n等于):find / -size +20M
    • 查找根目录下扩展名为.txt的文件:find / -name *.txt
    • 快速定位文件的路径:locate 文件名。原理:locate指令利用事先建立系统中所有文件名称及其路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。由于locate指令基于数据库进行查询,所以在第一次运行之前,必须使用updatedb指令创建locate数据库。
    • 查找文件中某个关键字:grep [选项] 查找内容 源文件
    • 管道符:|,表示将前一个命令的处理结果输出传递给后面的命令处理。过滤查找grep 。例如:查找c.txt文件中含关键字hello(不区分大小写)的位置:cat c.txt | grep -i -n hello

    压缩和解压缩类

    • 压缩文件:gzip 文件名,其只能将文件压缩为*.gz文件。使用gzip指令对文件进行压缩后,不会保留原文件
    • 解压文件:gunzip 文件名.gz
    • 压缩目录或文件:zip [选项] XXX.zip 将要压缩的内容。参数-r表示递归压缩。例如:压缩/root整个目录:zip -r mypackage.zip /root
    • 解压文件:unzip [选项] XXX.zip。参数-d<目录>:指定解压后文件的存放目录。例如:将/root/mypackage.zip压缩文件解压到/opt目录下:unzip -d /opt/ mypackage.zip
    • 打包指令:tar -zcvf XXX.tar.gz 打包的内容,打包成*.tar.gz的文件。例如:将/root目录下的b.txt、c.txt、h.txt这3个文件打包成a.tar.gz的压缩文件:tar -zcvf a.tar.gz b.txt c.txt h.txt;将/home整个目录打包成myhome.tar.gz文件:tar -zcvf myhome.tar.gz /home
    • 解压*.tar.gz文件:tar -zxvf XXX.tar.gz。例如:将myhome.tar.gz压缩文件解压到/opt目录下:tar -zxvf myhome.tar.gz -C /opt/。注意:加上参数-C表示改变目录,且指定解压的目录事先要存在才能解压成功!

    组管理和权限管理

    • 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件
      有拥有者、所属组、其它组的概念。
    • 文件或目录的拥有者:一般为文件的创建者。谁创建了该文件,就自然地成为该文件的拥有者。
    • 查看文件的拥有者:ls -ahl
    • 改变文件的拥有者chown 用户名 文件名或目录名。(change owner)例如:chown tom app.txt。常用选项:-R递归改变文件或目录的拥有者。
    • 文件或目录的所属组:当某个用户创建了一个文件后,默认这个文件的所属组就是该用户所在的组。
    • 修改文件的所属组chgrp 组名 文件名或目录名。 常用选项:-R递归改变文件或目录的所属组。
    • 文件或目录的其他组:除文件的拥有者和所属组的用户外,系统的其它用户都是文件的其它组。
    • root的管理权限下修改用户所属组:usermod –g 组名 用户名
    • 改变该用户登陆的初始目录:usermod –d 目录名 用户名
    • rwx用数字表示为r=4,w=2,x=1。rwx=4+2+1=7。
    • rwx作用在文件的含义:

    [r]代表可读(read): 文件可以读取,查看。
    [w]代表可写(write):文件可以修改,但是不代表可以删除该文件,要删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件!
    [x]代表可执行(execute):文件可以被执行。

    • rwx作用在目录的含义:

    [r]代表可读(read):可以读取,ls查看目录内容
    [w]代表可写(write):可以修改,目录内创建+删除+重命名文件或目录
    [x]代表可执行(execute):可以进入该目录

    • 使用chmod指令修改文件或者目录的权限

    u:所有者
    g:所有组
    o:其他用户
    a:所有用户(u、g、o的总和)

    • 通过数字变更权限:例如:chmod u=rwx,g=rx,o=x 文件名或目录名相当于chmod 751 文件名或目录名chmod o+w 文件名或目录名chmod a-x 文件名或目录名

    • 任务调度:指系统在某个时间执行特定的命令或程序。
    • 分类:1.系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等。
      2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
    • 设置定时任务:crontab [选项]。选项:-e:编辑crontab定时任务;-l:查询crontab任务;-r:删除当前用户下所有的crontab任务。
    • 设置任务调度文件:/etc/crontab
    • 设置个人任务调度,键入命令:crontab -e,编写内容:*/1 * * * * ls -l /etc > /tmp/to.txt,表示每小时的每分钟去执行一下 ls –l /etc/ > /tmp/to.txt 这条命令。
    5个占位符详细说明
    特殊符号 含义
    * 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
    , 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
    - 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
    */n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令
    特定时间执行任务案例
    • 小练习:每隔1分钟,就将当前的日期信息追加到/tmp/mydate.txt文件中,步骤如下:
    1. 在/root目录下,键入命令:vim mytask1.sh,往文件里添加内容:date >> /tmp/mydate.txt
    2. 给mytask1.sh一个执行权限,键入命令:chmod 744 mytask1.sh
    3. 编写定时任务,键入命令:crontab -e,往里添加内容:*/1 * * * * /root/mytask1.sh
    4. 查看/tmp/mydate.txt文件:more /tmp/mydate.txt
    • 终止任务调度: crontab –r
    • 列出当前所有的任务调度:crontab –l
    • Centos7重启任务调度:systemctl restart crond

    • 查看系统进程指令:ps -aux | more。例如查看是否有sshd服务:ps -aux | grep sshdps -a:显示当前终端所有进程信息;ps -u:以用户的格式显示进程信息;ps -x:显示后台进程运行的参数。
    字段 说明
    USER 执行进程的用户名
    PID 进程识别号
    %CPU 进程占用CPU的百分比
    %MEM 进程占用物理内存的百分比
    VSZ 进程占用的虚拟内存大小,单位:KB
    RSS 进程占用的物理内存大小,单位:KB
    TTY 终端名称
    STAT 进程的状态。S:睡眠;s:该进程是会话的先导进程;N:该进程拥有比普通优先级更低的优先级;R:正在运行;Z:僵死进程;D:短期等待;T:被跟踪或被停止等
    START 进程的启动时间
    TIME 进程占用CPU的总时间
    COMMAND 进程启动时的命令和参数。若过长,则会被截断显示
    • 以全格式显示当前所有的进程(可以查看进程的父进程):ps -ef | more-e:显示所有进程。-f:全格式。例如:检查redis进程是否存在:ps -ef | grep redis
    字段 说明
    UID 执行进程的用户名
    PID 进程的id
    PPID 父进程的id
    C CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
    STIME 进程的启动时间
    TTY 终端名称
    TIME 进程占用CPU的总时间
    CMD 进程启动时的命令和参数。若过长,则会被截断显示

    相关文章

      网友评论

        本文标题:Linux学习笔记(二)

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