linux使用命令

该博客仅仅是为了记录自己工作和学习过程中的一些知识,方便以后查询使用!

常用快捷键
    ctrl+R 用于查找用过的命令
    ctrl+L 清理终端的内容,即清屏
    ctrl+D 关闭当前终端
    ctrl+A 光标跳到命令行的开头位置
    ctrl+E 光标跳到命令行的结束位置
    ctrl+C 终止大部分终端的命令和正在执行的程序

ls 当前目录下的所有文件
    ls -a 当前目录下的所有文件,包括隐藏文件
    ls -l 当前目录下的详细列表,文件大小以字节的形式显示
    ls -lh 文件大小以人类可读的方式显示
    ls -lt 文件按照最近修改时间排序
    也可以整合上述所有的短命令:
    ls -lath

du 显示目录包含的文件大小
    du-h 以人类可读的方式显示文件大小
    du -sh 只显示总大小

cat/less 显示文件内容
    小提示:使用less命令停在END,无法出来,只需要按下q键就可以退出;
    cat 一次性显示文件的所有内容
    less 分页显示文件内容
       分批次读取文件内容,可按住上下箭头去进行翻页
       q退出
       =显示你在文件中的具体位置,譬如行数
       /进入搜索模式 输入你要搜索的关键字,然后enter,可以标记出所有搜索的结果,
       按住n就可以在搜索结果之间切换
       n键切换到下一个搜索结果
       N键切换到上一个搜索结果

head/tail 
    head 显示文件开头,默认是10行
        -n 显示文件开头的n行
    tail 显示文件结尾,默认10行
        -n 显示文件结尾的n行
        -f 实时追踪文件的更新,默认每1秒检查文件更新
          -s 指定具体的更新间隔 秒为单位

touch 创建空白文件
    touch 文件名

mkdir 创建一个目录
     -p 递归的创建目录结构
     mkdir -p one/two/three 先创建one目录,在one目录下创建two目录,在two目录下创建three目录

cp 拷贝文件/目录  该命令原文件还在
    复制文件到同一个目录/不同目录
        cp 原文件 副本文件 同一目录下
        cp 原文件 目录名/副本文件  拷贝到不同目录
    拷贝目录
        cp -r 原目录 副本目录

    此外,在cp命令时,可以使用*通配符
        cp *.txt folder 把当前目录下所有的txt文件拷贝到folder文件夹下
        cp ha* folder 把当前目录下所有以ha开头的文件拷贝到folder子目录/文件夹下

mv 移动/重命名 文件/目录 该命令原文件不在
    移动文件
        mv 原文件 移动后文件
        mv new_file one 将new_file文件移动到one文件
    移动目录
        mv 原目录 移动后目录
    也可以使用通配符*

rm 删除文件和目录
    rm命令一旦执行,较难恢复,所以使用时要谨慎
    rm 文件 如果需要移除多个文件,文件名之间用空格隔开就可以 :rm file1 file2 file3
    rm -i 向用户确认是否要删除文件 y/n  rm -i renamed_file
    rm -r 表示递归的删除  rm -r one 会删除one目录,包括one下的子目录及文件
    温馨提示:无论什么情况下,都不要执行 rm -rf/

用户相关:

首先,linux用户可以分为超级用户root和普通用户,root拥有至高无上的所有权限,普通用户只有部分权限;

sudo 以root身份执行命令
linux下的用户组织:
    root 超级用户 拥有所有权限    
        因此,如果我们要运行只有root才有权限的命令 root command;
    sudo command 暂时切换为root身份
    sudo su 永久切换为root身份
        退出root身份,使用exit命令即可
        另外,如果不知道自己是什么用户或者身份,可以通过命令whoami来进行查看
    另外,有几个常用命令必须在root下执行:
        adduser 添加新用户  adduser newuser添加newuser用户
        passwd 修改用户密码  passwd newuser修改newuser用户对应的密码
        deluser 删除用户   deluser newuser删除newuser用户;如果单单使用deluser 用户名只能删除该用户,不能删除home目录下的用户目录,为了连同用户对应的home下目录一同删除,可以加参数--remove-home来实现;
    温馨提示:
    adduser/deluser是只有Debian一组才有的命令,一般的linux发行版,添加用户和删除用户都是useradd/userdel;另外,普通用户之间的切换su 用户名 就可以实现;

用户群组相关:

addgroup 添加群组 需要root权限去执行 addgroup friends 添加群组friends
usermod 修改用户账号,需要root权限去执行,最常用的两个参数:
    -l 对用户重命名
    -g 修改用户所在群组 
        格式:uermod -g 群组名 用户名   
        usermod -g friends newuser就是将newuser用户移动到friends群组中去
    -G 一次性将一个用户添加到多个群组
        格式 usermod -G 群组1,群组2,群组3 newuser
        注意,群组名之间用逗号分割,并且没有空格
    注意,参数-g/-G会把用户从原先的群组移除,然后添加到新群组中去,
    如果想不移除原来的群组,有添加到新的群组,可以添加参数-a
    -ag/-aG即可,格式类似

groups 用来查看用户属于那些群组 
    格式 groups 用户名   groups newuser
delgroup 删除群组
    格式 delgroup 群组名
chown 改变文件的所有者
    格式 chown owner filename; 
chgrp 修改文件所在的群组
    格式 chgrp 新的群组 文件名
说明,其实chown也可以修改文件的群组,
    格式 chown 用户名:群组 文件名
    -R 递归设置子目录和子文件

访问权限相关:

chmod 修改访问权限
    基础知识
        ls -l 命令第一列就是权限相关的描述,可以看到很多字母,代表不同的含义:
            d 目录
            l 链接
            r 读
            w 写
            x 执行
            另外,如果对应位置上有字母说明有对应的权限,反之-表示没有该权限
        权限划分标准
            属性 所有者 群组用户 其他用户
            属性 d/l/- 分别表示目录/链接/普通文件
    用数字来分配权限
        r 4 
        w 2 
        x 1
        譬如:chmod 641 test.js意思就是test.js的所有者对该文件拥有读和写(4+2),群组拥有读(4),其他用户没有任何权限
    用字母来分配权限
        u user用户
        g group群组用户
        o others其他
        + 添加权限
        - 去除权限
        = 分配权限
        #文件 file.txt 的所有者增加读和运行的权限 chmod u+rx file.txt
        #文件 file.txt 的群组其他用户增加读的权限 chmod g+r file.txt 
        #文件 file.txt 的其他用户移除读的权限 chmod o-r file.txt 
        #文件 file.txt 的群组其他用户增加读的权限,其他用户移除读的权限 chmod g+r o-r file.txt 
        #文件 file.txt 的群组其他用户和其他用户均移除读的权限 chmod go-r file.txt 
        #文件 file.txt 的所有用户增加运行的权限 chmod +x file.txt 
        #文件 file.txt 的所有者分配读,写和执行的权限;群组其他用户分配读的权限,不能写或执行;其他用户没有任何权限。
            chmod u=rwx,g=r,o=- file.txt

grep 筛选数据
    grep text file; 
        grep erricsson test_1049.js;
        如果查找的文本中间包含空格,则需要把查找的空格用""括起来;
            grep "Hello World" file2;
        -i 忽略大小写进行查找;grep -i erricsson test_1049.js;
        -n 显示行号;grep -n erricsson test_1049.js;
        -r 在目录及其子目录下递归调用;grep -r "Hello World" folder/

sort 对文件进行排序
    格式 sort 文件名;sort test.js
    -o 将排序后的内容写入到新文件;
    格式 sort -o 新文件 原文件;sort -o name_sorted.txt name.txt;
    -r 倒序排序
    格式:sort -r 文件;sort -r name.txt
    -R 随机排序
    格式 sort -R 文件;sort -R name.txt
    -n 对数字排序
    格式 sort -n 文件 ;sort -n name.txt

wc 文件的统计
    格式 wc 文件;wc name.txt
    -l 统计行数
        wc -l name.txt
    -w 统计单词数
        wc -w name.txt
    -c 统计字节数
        wc -c name.txt
    -m 统计字符数

uniq 删除文件中的重复内容
    格式 uniq 文件名;
        不会改变原文件的内容,只会把处理的内容显示出来;
    格式 uniq repeat.txt unique.txt
    格式 uniq -c repeat.txt  统计重复的行数;
    格式 uniq -d repeat.txt 只显示重复的值

cut 剪切文件的一部分内容
    单纯的cut 用于对文件的每一行进行cut处理
    -c 参数 :根据字符数来剪切
        cut -c 2-4 name.txt;name的每一行只保留第2-4个字符


流,管道,重定向
    重定向:本来显示在终端的命令结果,输送到别的地方,到其他文件或者作为其他命令的输入
    管道:把两个命令链接起来,一个命令的输出作为另一个命令的输入
    所以,可以看到,一个命令,可以到终端/文件/另一个命令的输入
    重定向:
        >重定向到文件中,如果文件已经存在,则覆盖原文件,文件不存在,则创建文件;
        >>重定向到文件末尾,如果文件不存在,则创建文件
    stdin/stout/sterr 标准输入/输出/错误;对应的文件描述符分别为0/1/2
    2>&1 将标准输出和标准错误全部重定向到同一个地方
        cat not_exist_file.csv>results.txt 2>&1
    2>标准错误输出重定向到文件,如果文件存在,覆盖文件,文件不存在,创建文件
    2>> 将标准错误输出重定向到文件末尾,如果文件不存在,创建文件
    2>&1 将标准输出和标准错误输出重定向到同一个地方

    管道符号:|


监视系统活动和查看进程
    w 查看当前系统有那些用户使用,在做什么
        时间(date) 运行时间(uptime) 负载 登录的用户;
        tload 绘制负载随时间变化的负载曲线图;
    ps 进程的静态列表,用于显示当前系统中的进程;
        ps -ef 列出所有进程
        ps -efH以乔木状列出所有进程;
        ps -u 用户名:列出此用户运行的进程
        ps -ef -u 用户名;
    top 进程的动态列表
        q 退出top命令
        上下箭头类似于翻页;
        u 根据用户来过滤,输入用户,按回车

    ctrl+C 停止终端正在运行的进行
    kill pid :结束某一个进程
    killall 进程名: 结束多个进程

halt 关闭系统
reboot 重启系统
注意,这两个命令必须以root身份运行;


前台进程和后台进程
    默认情况下,用户创建的都是前台进程;
    & 在命令后面加上&,让程序在后台运行;
        但是此时后端进程仍与终端相关联,如果关闭终端,后台进程也会关闭;
    nohup 可以使进程与终端分开;
        格式 nohup command;

    更一般的情况下,是将nohup和&联合使用:
        nohup command &;

date查看系统时间;
at 延时或者定时执行一个任务,单次
    在指定时刻执行任务:
        先用at 时间 指定任务执行时间;
        然后输入想要执行的命令;
    在指定间隔之后执行任务:
        at now + xx minutes/hours/days/weeks/months/years
        at now +7 weeks;
    atq 列出正在等待执行的at任务
    atrm 删除正在等待执行的at任务

sleep xx 休息多少秒
    sleep xx m/h/d 休息xx分钟、小时、天
&& 逻辑与 &&前面的命令执行成功才会执行后面的
|| 逻辑或 ||前面的命令执行失败才会执行||后面的命令
crontab 定时执行任务,多用于重复多次执行;
    crontab -e 修改crontab文件
    crontab -l 显示crontab文件
    crontab -r 删除crontab文件

常用其他命令
    hostname 查看主机名
    w/who 显示登陆的用户和对应正在运行的进程
    uptime 查看系统运行时间
    uname -a 查看系统信息
    date 显示和设置系统日期和时间
    id 显示用户属性

文件归档和处理
paste 合并文件 
    格式 paste file1 file2
    -d 指定各个文件中的各行在合并中所使用的分隔符
    格式 paste -d 分隔符 file1 file2
        ex:paste -d  ':' file1 file2/paste -d, file1 file2
    -s 顺序的合并文件,将文件中的所有行的内容合并为一行
    格式 paste -s -d, file1 file2


gzip 压缩文件
    gzip filename 压缩指定的文件,生成一个默认以.gz结尾的文件,并删除原文件
    gzip -d filename.gz 解压缩指定的文件
bzip2 -k filename 压缩文件并保留原始文件
bzip2 -df filenmae.bz2 解压文件
gunzip filename.gz gunzip命令与gzip命令相对应,功能类似于gzip -d filename.gz
gunzip -c filename.gz > filename 
    -c 用于将解压后的文件重定向,从而保留原始文件
bunzip2 filename.bz2 解压缩文件
bunzip2 -k filename.bz2 解压缩文件并保留原始文件

tar 打包和解压文件
    tar命令是linux中最主要的归档工具,使用tar命令归档后生成的文件我们称之为tar包;
    tar -cvf 创建一个未经压缩的tar包,其中各参数含义如下:
        -c 创建一个新的归档
        -v 冗长的列出被处理的文件
        -f 指定归档文件的名称
    tar -czvf 对归档后的文件进行gzip压缩
         ex:tar -czvf filename.tar.gz filename
    tar -xzvf 对使用gzip压缩的tar进行解压
         ex:tar -xzvf filename.tar.gz

mount/unmout挂载和卸载
df 报告文件系统磁盘空间利用率
    -a 显示所有文件系统的信息,包括虚拟文件系统;
    -h 以人类可读的格式显示相应的结果信息
    -T 显示文件系统类型的信息
    -t 仅显示某一指定文件系统类型的文件系统信息
        ex:df -t ext3
    -m 以MB为单位显示文件信息

du 评估文件空间利用率    
    du 当前目录下所有目录的大小    
    du file/dirname 指定文件、目录的大小
    du -a 递归显示目录中所有文件和目录的大小
    du -sh 显示指定目录的总大小

更多参考

shell脚本学习实例:https://blog.csdn.net/wuyundong123/article/details/97273706

shell脚本学习笔记:https://blog.csdn.net/wuyundong123/article/details/97935192

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值