Linux笔记:命令基础说明与常用命令

Posted Naisu Xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux笔记:命令基础说明与常用命令相关的知识,希望对你有一定的参考价值。

目的

使用linux来说对于命令的操作是最基础的,后面编写shell脚本主要也是对于命令的操作,所以非常有必要对此命令进行了解。这篇文章将对一些常用的命令进行说明。

基础说明

在linux中我们通常在shell中使用命令来完成各种操作,现在大部分linux发行版中默认的shell程序是bash。bash有很多实用的功能:

  • 使用 按键来选择之前执行过的命令;
  • 使用 tab 键可以实现自动补全,如果键入的前缀不唯一则可以 双击tab 提示;
  • 使用 ctrl + c 结束当前操作;
  • 使用 ctrl + l(小写L) 清屏;
  • 使用 ctrl + d 登出;

在这里插入图片描述

常用命令

下面对命令的分类只是依据我的习惯笼统的分类的。很多命令本身并不没有这些分类属性的,根据实际情况可以用在很多地方。

常用杂项

  • man 查看用户文档
    按q键退出文档
  • info 查看信息文档
  • clear 清屏

在这里插入图片描述

  • sync 将缓存中的数据同步保存到磁盘中

关机与重启

关机和重启相关的指令其实很多的,比如halt、poweroff、init 0、init 6等等,大多数来说无非都是相互调用而已,记住shutdown基本就够用了。

  • shutdown 关机
    shutdown now 立即关机
    shutdown hh:mm 在hh:mm时刻关机(24小时制)
    shutdown +m 在m分钟后关机
    shutdown -c 取消关机
  • poweroff 立即关机
  • reboot 立即重启

在这里插入图片描述

用户与权限

linux中很多操作需要权限,最常用的就是sudo这个方式来提升权限了。

  • sudo 临时获得root用户权限(能不能用sudo还得看你是不是有这个权限 233~)
  • su 切换用户
    su - 切换到root用户
    su username 切换到某个用户
  • passwd 修改用户密码
    passwd username
    ubuntu中默认的root用户是没有设置过密码的,可以使用 sudo passwd root 方式设置密码

在这里插入图片描述

  • chmod 用来变更文件或目录的权限
    这条指令在运行很多网上下载的脚本或程序的时候用到比较多,经常需要给下载的文件开放权限后才能执行,linux中文件权限如下:
    在这里插入图片描述
    其中u表示文件所有者,g表示用户组,o表示其他用户,另外还可以用a表示全部的三者;
    每一级可以分别设置读、写、执行的权限;
    权限可以用对应位置位清零、使用±=设置rwx来启用和禁用;
    下面是一些示例:
    chmod ugo+r file 所有用户启用对file的可读权限
    chmod a-w file 所有用户禁用对file的写入权限
    chmod u+x file.sh 文件所有者启用对file.sh的可执行权限
    chmod o=rw- file 其它用户对file的权限设置为可读可写不可执行
    chmod 700 file 文件所有者启用对file的所有权限、用户组和其他用户禁用所有权限
    chmod 760 file 文件所有者启用对file的所有权限、用户组权限设置为可读可写不可执行、其他用户禁用所有权限
    chmod 777 file 所有用户启用对file的所有权限
    chmod -R 777 * 所有用户递归启用当前目录下所有文件和目录的所有权限

在这里插入图片描述

  • last 显示用户登录信息

目录和文件操作

目录和文件相关的操作算是linux中用的最多的操作了,毕竟linux中一切皆文件。

  • pwd 显示当前目录
  • ls 列出当前目录下的文件和子目录
    常用选项:
    -a 列出文件和子目录,包括隐藏文件
    -l 以列表形式列出详细内容
    -lh 以列表形式列出详细内容,大小以K、M、G表示
    -F 列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • tree 以树状格式列出目录的内容
    默认情况下可能没有该命令,需要安装tree模块
    常用选项:
    -a 显示隐藏文件
    -d 只列出目录
    -L 限制显示深度
    -s 列出文件和目录的大小
  • cd 切换工作目录
    cd Desktop/ 切换到Desktop目录
    cd / 切换到根目录
    cd ~ 切换到用户自己的home目录
    cd .. 切换到上级目录

在这里插入图片描述

  • mkdir 创建目录
    mkdir dirmane 创建名为dirmane的目录
    mkdir -p dir1/dir2 在dir1下创建dir2,如果dir1不存在则同时创建dir1
  • rmdir 移除空目录
    rmdir -p dir1/dir2 移除空目录dir2,此时若dir1也成为空目录的话接着移除dir1
  • rm 删除文件或目录 (慎用)
    rm -i 删除前询问
    rm -f 强制删除
    rm -r 删除目录下所有文件和子目录
    rm -rf /rm -rf /* 千万别用!!!

在这里插入图片描述

  • mv 修改文件和目录的名称 或 将文件和目录移动到其它目录下
    常用选项:
    -u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作
    -i 如果出现同名覆盖的情况先进行询问
    -f 如果出现同名覆盖的情况强制覆盖
    示例:
    mv file1 file2 将文件file1改名为file2
    mv file1 directory1 将文件file1移动到目录directory1
    mv directory1 directory2 若directory2不存在则将directory1改名为directory2;若directory2存在则将directory1移动到directory2
  • cp 复制文件或目录
    常用选项:
    -i 如果出现同名覆盖的情况先进行询问
    -f 如果出现同名覆盖的情况强制覆盖
    -r 复制目录下所有文件和子目录
    示例:
    cp file1 file2 将文件file1复制为file2
    cp file1 directory1 将文件file1复制到目录directory1
    cp -r directory1 directory2 将目录directory1和其中的内容复制到目录directory2

在这里插入图片描述

  • cat 读取文件并显示
    cat file1 显示file1内容
    cat -n file1 显示添加行号后的file1内容
  • touch 修改文件或者目录的时间属性
    touch file 将file的访问/修改时间改为现在的系统时间,如果file不存在则将创建file文件

在这里插入图片描述

打包与压缩

  • tar 打包/解包
    常用选项:
    -c 打包文件
    -x 解包文件
    -t 列出包内容
    -z 使用gzip方式处理
    -j 使用bzip2方式处理
    -v 显示执行过程
    -f 指定文件名
    -C 指定输出目录
    示例:
    tar -czf directory.tar.gz directory/ 将directory目录和其中所有内容打包成directory.tar.gz文件
    tar -czf file.tar.gz file1 file2 将file1和file2打包成file.tar.gz文件
    tar -tzf file.tar.gz 列出file.tar.gz包中所有的内容
    tar -xzf file.tar.gz 解包file.tar.gz

在这里插入图片描述

  • gizp 压缩/解压.gz格式文件
    常用选项:
    -k 处理后不删除源文件
    -d 解压.gz文件
    -r 压缩目录及其中所有内容
    示例:
    gzip file 将file文件压缩成file.gz文件
    gzip -d file.gz 将file.gz文件解压
  • bzip2 压缩/解压.bz2格式文件
    操作和选项同gizp
  • zip 压缩成.gz格式文件
    常用选项:
    -q 不显示执行过程
    -r 压缩目录及其中所有内容
    示例:
    zip file.zip file 将file压缩成file.zip文件
  • unzip 解压.zip格式文件
    常用选项:
    -q 不显示执行过程
    -l 不解压显示压缩包中内容
    -o 遇到重名文件不询问直接覆盖
    示例:
    unzip file.zip 解压file.zip文件

在这里插入图片描述

搜索与查找

  • find 查找文件
    fine命令可以在指定目录中根据名称、所有者、修改时间、文件大小等方式来寻找文件
    常用检查项:
    -name 依据文件名查找
    -type 依据类型查找,b块设备、d目录、c字符设备、p管道、l符号链接、f普通文件、s socket
    -size -n-size +n 依据大小查找,-n表示小于等于、+n表示大于,单位可选 c字节、k千、M兆、G千兆等等
    -mtime -n-mtime +n 依据修改天数查找,-n表示小于等于、+n表示大于
    -mmin -n-mmin +n 依据修改分钟数查找,-n表示小于等于、+n表示大于
    -perm 依据文件权限查找
    -user 依据所有者查找
    -group 依据所属组查找
    常用动作:
    -print 标准输出
    -exec command {} \\; 执行命令并且不提示
    -ok command {} \\; 先提示选择执行命令
    示例:
    find ~ -name "hello*" 在用户目录下查找名称以hello开头的文件
    find . -size -5k 在当前目录下查找小于等于5k的文件
    find . -size +5k -type f 在当前目录下查找大于5k的普通文件
    find . -size +5k -exec rm {} \\; 在当前目录下查找大于5k的文件并删除(慎用)

在这里插入图片描述

  • which 查找命令/程序所在的路径
  • whereis 查找二进制文件、源代码、用户手册、命令所在的位置
  • locate 通过文件名寻找文件
    这个命令寻找文件是从数据库中寻找的,所以通常会比find这些命令要快;
    数据库通常会每天自动更新,如果需要可以使用updatedb命令手动更新;
    有的系统默认没有locate指令,可以安装mlocate包来获得;
  • grep 查找符合条件的文本内容
    grep经常和管道命令符 | 组合起来使用,对某个命令的结果进行筛选后再输出

在这里插入图片描述

系统运行与管理

  • top 动态的显示进程及资源使用负载情况
    进入top显示后可以按q键退出,可以使用↑←↓→和home、end、pageup、pagedown等进行移动和翻页;
    在这里插入图片描述
    第一行显示当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载;
    第二行显示总任务、当前运行、休眠、停止和僵尸任务数;
    第三行显示用户、内核、用户改变过优先级的进程、空闲、等待输入输出、硬件中断、软件中断、虚拟机等的CPU占比;
    第四行显示总的、已使用的、空闲的等内存情况;
    第五行为交换分区使用情况;
    第六行分别为进程PID、用户、PR优先级、NI优先级、虚拟内存、物理内存、共享内存、进程状态、CPU占用、内存占用、进程使用CPU计时、命令名称;
  • ps 显示当前进程
    ps -u naisu 显示naisu用户的进程
    ps -e 使用标准格式显示所有进程
    ps ax 使用BSD格式显示所有进程
  • pstree 以树形方式显示所有进程之间的关系
  • pidof 返回正在运行程序的PID
  • renice 修改正在运行的进程的nice优先级
    renice 优先级 PID 优先级可选 -20~19,数值越低优先级越高
  • kill 终止某个进程
    kill PID 终止某个进程
    kill -9 PID 强制终止某个进程
  • killall 通过程序名终止该程序(终止其所有进程)
  • uptime
    显示系统运行情况,分别包括当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载
  • free
    显示总的、已使用的、空闲的等内存情况
  • sensors
    这个命令可以可以获取到设备中各个传感器的数据,比如系统的电压温度等;
    有的系统默认没有sensors指令,可以安装lm-sensors包来获得;

网络信息与管理

  • ifconfig 查看网卡与IP信息/配置网卡
    ifconfig -a 查看网卡与IP信息,包括禁用的网卡
    ifconfig eth0 down 禁用网卡eth0
    ifconfig eth0 up 启用网卡eth0
  • ping 测试网络连接
    ping 192.168.0.1 连续测试与192.168.0.1间的网络连接情况,使用ctrl+c退出
    ping -c 4 192.168.0.1 测试与192.168.0.1间的网络连接情况4次

在这里插入图片描述

  • dhclient dhcp客户端,用于动态获取ip
    dhclient eth0 eth0发出dhcp请求
    dhclient -r 释放ip地址
  • netstat 查看网络连接、路由表、接口统计、伪装连接和多播成员身份
  • ss 查看socket端口与连接情况

磁盘信息与管理

  • df 显示文件系统空间使用情况
    df -h 大小以K、M、G表示
    df -a 显示所有文件系统情况
    df -T 显示文件系统类型
  • du 显示目录或文件大小
    du -h 显示当前目录中子目录大小,以K、M、G表示
    du -ah 显示当前目录中子目录和文件大小,以K、M、G表示
    du -sh 显示当前目录总大小,以K、M、G表示
    du dir/ 显示dir/目录
  • fdisk 管理磁盘分区
    fdisk -l 列出设备的分区表,其中的Disk表示磁盘、Device表示分区
    可以使用 fdisk 磁盘名称 对该磁盘进行操作
  • mkfs / mk2fs 创建文件系统(格式化分区)
    mfks -t ext4 /dev/sda5 将/dev/sda5分区格式化成ext4文件系统
  • e2label 查看或创建更改ext文件系统标卷的标签名
    e2label /dev/sda1 naisu 将/dev/sda1标卷的标签设定为naisu
  • lsblk 列出块设备
    这个命令可以方便的查看已挂载和未挂载的块设备,比如磁盘、光盘、U盘这些;
    有的系统默认没有lsblk指令,可以安装util-linux包来获得;

在这里插入图片描述

挂载与卸载

  • mount 挂载文件系统
    mount device dir 将device设备挂载在dir目录下
  • umount 卸载文件系统
    umount /dev/devname 通过设备名卸载
    umount mountpoint 通过挂载点卸载

在这里插入图片描述

总结

Linux命令看似很多其实常用的也就一部分,而且这部分命令会用的非常多,所以基本用一段时间就记得很牢了。更多内容可以参考:https://www.linuxcool.com/

以上是关于Linux笔记:命令基础说明与常用命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习笔记之Linux常用命令

linux小白学习笔记常用基础命令

Linux学习笔记_3_Linux常用命令_4_帮助命令

Linux基础知识及常用命令

Linux笔记Linux的常用命令-文件管理命令

Linux笔记:后台运行命令与脱离终端运行命令