【Linux笔记】一起入门Linux咯 | 基础命令

一起入门Linux咯 | 基础命令


如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里

  • 命令解释
    • explainshell
    • linux命令查询
  • 系统基础命令
    • 系统基础信息
    • 进程管理
    • 网络
    • 磁盘管理
    • 用户管理
    • 权限管理
    • 关机重启
  • 文件与目录操作
    • 文件与目录
    • 打包和压缩
    • 文件操作和处理

命令解释


  • explainshell
    一个可以解释shell命令的网站,很强大, 可惜是英文版,不过没关系
  • Linux命令搜索
    中文版的命令解释,不过没有explainshell强大

目录结构


常用核心目录

目录描述备注
/根目录
/bin存储二进制可执行文件,如ls, cat , uname ,tar 等
/sbin存储二进制可执行文件,通常是系统管理员使用的系统级别命令,如ifconfig, systemctl
/etc存放系统管理与配置文件
/proc一般存放系统的相关信息,比如用户信息passwd, CPU信息cpuinfo,内存信息meminfo
/root超级用户root的主目录,root的Home
/home普通用户的主目录,如admin的Home路径是/home/admin

核心软件库

目录描述备注
/usr用于存放系统应用程序,这是最庞大的目录,几乎所有要用到的应用程序都安装在这个目录,类似程序应用的根目录
/usr/bin众多的第三方应用,比如vim,wget, whereis等
/usr/lib存放第三方程序的共享库
/usr/local类似/usr目录,不过通常用于存放用户自己安装应用程序文件
/usr/local/bin存放全局用户使用的二进制执行文件,比如自己安装的应用程序的shell,或自己写的shell
/usr/local/lib存放自行安装的应用的共享库

非常用核心目录

目录描述备注
/dev用于存放设备的目录
/boot存放系统引导时的各种文件
/mnt用户临时挂载其他的文件系统目录
/tmp用于存放各种临时目录
/lib存放系统程序所需要的共享库或内核模块,类似windows的dll库
/var用于存放运行时需要改变数据的文件,比如日志文件

系统基础命令


系统基础信息
  • 显示机器的处理器架构
    arch , uname -m

  • 显示正在使用的系统内核(版本)
    uname -r
    cat /proc/version

  • 查看当前系统的发型版本(非内核)
    lsb_release -a Redhat、SuSE、Debian等发行版
    cat /etc/issue
    cat /etc/{centos-release} Centos

  • 显示CPU信息
    cat /proc/cpuinfo
    cat /proc/cpuinfo| grep "cpu cores"| uniq 核心数
    cat /proc/cpuinfo| grep "processor"| wc -l逻辑核心数(线程数)
    cat /proc/cpuinfo | grep name型号

  • 显示内存信息
    cat /proc/meminfo

  • 显示系统当前时间
    data

  • 显示系统当前的日历
    cal

进程管理
  • 查看当前的消耗资源最多的进程动态
    top
    top -c 显示详细的进程信息

  • 查看当前系统的进程状态
    ps
    ps -ef 显示所有的进程信息,连同命令行,PID等信息
    ps -aux 显示所有的进程信息,连同命令行,PID 以及 CPU, 内存使用量

  • 杀死进程
    kill {PID} 缓杀死PID号为xxx的进程,等待进程执行完毕后杀死,可能杀不死
    kill -9 {PID} 不管进程是否有任务正在进行,立即杀死,可能会丢失数据

网络
  • 查看ip地址
    ifconfig
    ip addr

  • 查看Linux中网络系统状态信息
    netstat,ss
    netstat -p,ss -pl 查看进程使用的socket 显示正在使用Socket的程序识别码和程序名称
    netstat -an 在netstat输出中不显示主机,端口和用户名(host, port or user)

  • 列出所有端口 (包括监听和未监听的)
    netstat -a 列出所有端口
    netstat -at 列出所有tcp端口
    netstat -au 列出所有udp端口

  • 列出所有处于监听状态的 Sockets
    netstat -l 只显示监听端口
    netstat -lt 只列出所有监听 tcp 端口
    netstat -lu 只列出所有监听 udp 端口
    netstat -lx 只列出所有监听 UNIX 端口

  • 查看端口号为XX的进程的PID
    lsof -i :{port}

磁盘管理
  • 显示已经挂载的分区列表
    df -h
  • 估算目录dir已经使用的磁盘空间
    du -sh {dir}
用户管理
  • 概念
    UID 用户ID, 系统其实只记录ID, 用户名只是方便用户使用的ID映射
    GID 用户组ID, 同理,每个用户可以加入多个用户组
    有效用户组有效用户组是当前用户实际操作时所生效的用户组,用户属于多个组,创建文件时,文件应该属于哪个组?

  • 查看用户,用户组,用户密码源文件
    cat /etc/group 查看用户组源文件(组名称:组密码:GID:组成员)
    cat /etc/passwd 查看用户源文件 (注册名:密码:UID:GID:用户名:用户主目录:所用的shell)
    cat /etc/shadwos 查看用户密码(加密了)
    grep {username} /etc/passwd /etc/shadow /etc/group 查看某个用户的全部相关定义

  • 用户
    useradd {username} 新增一个用户,centos下自动创建home, 设置shell;ubuntu下是不完整的user
    adduser {username} 新增一个用户,ubuntu下建议使用该命令
    userdel {username} 删除用户,同时删除/etc下的相关的定义信息,但不删除Home
    userdel -r {username} 彻底删除用户,包含Home
    passwd {username} {password} 修改用户密码
    chage -{option} {username} 修改用户密码的有效期
    usermod xxxx {username} 修改账户的信息

  • 用户组
    groups {username} username用户属于那些用户组(如有多个,第一个是有效用户组)
    newgrp {group-name} 为当前用户切换xxx为有效用户组
    groupadd {group-name} 添加一个新用户组,Centos,Ubuntu
    addgroup {group-name} 添加一个新用户组,Ubuntu
    groupdel {group-name} 删除一个用户组
    groupmod xxx {group-name} 修改用户组的信息

  • 显示登录用户
    who 显示目前登录系统的所有用户信息
    whoami 显示目前session下,登录用户是谁

  • 切换账户 | 重登 | 注销
    su {user} 切换user账户
    login 重新登录,可切换账户
    logout 登出
    exit 退出,登出

权限管理

文件目录的权限和类别有10位符号表示,第一位表示类型,后9位表示权限

  • 第一位-是文件,d是目录,|是连接文件,b可供存储的接口设备,c是键盘鼠标等
  • [2,4]位是当前用户的读写权限,[5,7]位是所属用户组的读写权限,[8,10]是其他所有用户的读写权限

读写执行权限

  • r 读取属性, 4
  • w 写入属性, 2
  • x 执行属性, 1
  • 改变文件或目录所属的用户组
    chgrp {group} {file or path} 将file或path的所属用户组更改为group
    chgrp -R {group} {file or path} 如果是目录,则递归修改子路径下的所有目录和文件所属用户组为group
  • 改变文件或目录的所有者或用户组
    chown {user} {file or path} 将file或path的所有者更改为user
    chown {user:group} {file or path} 将file或path的所有者更改为user, 用户组更改为group
    chown -R {xxx} {xxx} 递归子路径更改权限
  • 改变文件或目录的权限
    chmod -{option} {args} {file or path} 修改file或path的权限根据args修改option所代表的权限
    chmod -R -{option} {args} {file or path} 递归子路径
    chmod u=rwx,g=rwx,o=rwx {file or path} ,chmod 777 {file or path}给file或path的用户,用户组,其他用房都给全部读写权限
    chmod u+x,0-x {file} file的用户权限增加执行功能,其他用户取消执行功能
    chmod 744 {file} file文件除了当前用户有所有读写执行权限,其他用户都只有可读权限
关机,重启
  • 关机
    shutdown -h now
    init 0
    telinit 0
  • 定时关机
    shutdown -h {hours}:{minutes} & 定时关机
    shutdown -c 取消定时关机
  • 重启
    shutdown -r now
    reboot

文件与目录操作


文件与目录
  • 概念
    .当前目录
    ..父级目录
    -上次所在的目录
    / 根目录
    ~ home目录
    ./{path} 当前目录的子路径
    /{path}根目录的子路径

  • 进入目录
    cd {path}
    cd 进入个人账户目录
    cd .. 进入上级目录
    cd ../.. 进入上两级目录
    cd -进入上次所在的目录
    cd home,cd ~ 进入Home
    cd / 进入根目录

  • 显示当前路径
    pwd

  • 显示文件和目录
    ls,ls -F 查看当前路径下的文件
    ls -a 查看当前路径下的所有文件,包含隐藏文件
    ls -l 查看当前路径下的所有文件的详细信息

  • 创建文件或目录
    touch {file1} 创建一个叫file1的空文件
    mkdir {dir1} 创建名叫dir1的目录
    mkdir {dir1} {dir2} 创建多个目录
    mkdir -p {dir1}/{dir2}/{dir3} 创建一个目录树

  • 删除目录或文件
    rm {file1} 删除file1文件
    rmdir {dir1}删除一个空目录
    rm -r {dir1} 删除一个目录及其下的内容(递归删除)

  • 移动文件或目录
    mv {source} {target} 移动source到target位置(文件or目录)

  • 复制文件或目录
    cp {source} {target}复制source到target上(文件或目录)
    cp -r {source} {target}复制source以及子目录(文件)到target位置上,递归复制

打包和压缩

各个不同后缀的含义如下:

  • .tar打包格式:tar程序打包的文件,并没有压缩过
  • .z格式:compress程序压缩的文件
  • .gz格式:gzip程序压缩的文件
  • .bz2格式:bzip2程序压缩的文件
  • .tar.gz格式:tar程序打包的文件,经过 gzip 的压缩
  • .tar.bz2格式:tar程序打包的文件,经过 bzip2 的压缩
  • .tar.xz格式:tar程序打包的文件,经过xz格式的压缩
  • 概念
    -c 创建,压缩
    -t 查询
    -x 解压,还原
    -vf 我们就当做是必备固定格式,-v是显示指令过程,-f必需在最后面,指定文件
    -z 对应tar.gz格式
    -j 对应tar.bz2格式
    -J对应tar.xz格式
    -Z对应tar.z格式

  • tar命令打包压缩
    tar -cvf {hello.tar} {hello} 将hello文件打包,不经过压缩
    tar -zcvf {hello.tar.gz} {hello} 将hello文件打包,经过gz格式压缩
    tar -jcvf {hello.tar.bz2} {hello} 将hello文件打包,经过bz2格式压缩
    tar -Jcvf {hello.tar.xz} {hello} 将hello文件打包,经过xz格式压缩
    tar -Zcvf {hello.tar.z} {hello} 将hello文件打包,经过z格式压缩

  • tar命令解压
    tar -xvf {hello}.tar 将hello.tar解压还原成hello
    tar -zxvf {hello}.tar.gz 将hello.tar.gz解压,还原成hello
    tar -jxvf {hello}.tar.bz2 将hello.tar.bz2解压,还原成hello
    tar -Jxvf {hello}.tar.xz 将hello.tar.xz解压,还原成hello
    tar -Zxvf {hello}.tar.z 将hello.tar.z解压,还原成hello

  • jar格式压缩和解压
    jar -cvf {hello.jar} {hello} 将hello文件打包压缩成hello.jar
    jar -xvf {hello}.jar 将hello.jar解压,还原成hello

  • 7z格式压缩和解压
    7z a {hello.7z or hello.rar} {hello} 将hello文件打包成hello.7z或hello.rar
    7z x {hello}.7z, 7x x {hello}.rar 将hello.7z 或hello.rar解压还原成hello

  • zip格式压缩和解压
    zip -r {hello.zip} {hello} 将hello文件打包压缩成hello.zip
    upzip {hello}.zip 将hello.zip解压还原为hello

文件操作与处理
  • 文件搜索
    find {/} -name {file1} 从/路径下查找名称为file1的文件或目录
    find {/} -user {user1} 从/路径下查找属于user1用户的文件或路径
    find {/} -type f -atime +10 搜索根路径下,过去10天未被使用过的执行文件
    find {/} -type f -mtime -10 搜索根路径下,过去10天内被创建或修改过的文件
    locate {fileName} 配合索引数据库的形式进行查找file文件的位置,与find类似,但性能更好
    whereis {fileName} 查找二进制文件,比如命令grep,man等源文件的位置
    which {fileName} 查找命令源文件的实际存储位置,判断该命令到底执行的是存储在那个位置的命令

  • 查看文件内容
    cat {file1} 查看文件内容,从头开始
    tac {file1} 查看文件内容,从尾开始
    cat {file1} | grep -v ^# 查看文件中不以#开头的内容
    more {file1} 查看一个长文本的内容,类似Less
    less {file1} 查看一个长文本内容,分页浏览,允许向前,向后翻页,Q退出
    head -2 {file1}查看file1文件的前两行
    tail -2 {file1} 查看file1文件的后两行
    tail -f {file1} 实时查看file1文件的尾部追加内容 | 看log

  • 查找文件的部分内容
    grep hello {file} 在file文件中查找含有hello关键字的行
    grep ^hello {file} 在file文件中查找所有以hello开头的行
    grep [0-9] {file} 在file文件中查找所有含有数字的行
    grep -v hello {file} 在file文件中查找所有不含hello关键字的行
    grep -v ^# {file} 在file文件中查找所有不以#开头的行

  • 截取文本
    cut

  • 统计文件的行数,单词数,字节数
    wc {file} 统计file文件的行数,单词数,字节数
    wc -l {file} 统计file文件的行数
    wc -c {file} 统计file文件的字节数
    wc -w {file} 统计file文件的单词数

  • 去重(相邻的重复行才叫重复)
    uniq {file}去除file文件中的相邻重复文本(不相邻行的重复,不去除)
    uniq -c {file} 去除file文件的相邻重复文本,并显示相邻重复行的个数
    uniq -u {file} 只显示file文件中不重复的行
    uniq -d {file} 只显示file文件中重复的行,不重复的不显示

  • 将文件内容进行排序
    sort

  • 文本和数据进行处理的编程语言
    awk

  • 功能强大的流式文本编辑器
    sed


Linux软件包管理


rpm包和deb包是两种Linux系统下最常见的安装包格式,在安装一些软件或服务的时候免不了要和它们打交道

  • rpm包主要应用在RedHat系列包括 Fedora,Centos等发行版的Linux系统上,
  • deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上。
  • yum软件包管理程序是基于rpm的,apt-get软件包管理程序是基于deb的
yum包(Fedora,RedHat,Centos)
  • 查找与显示
    yum list 显示yum服务器提供的所有rpm软件包
    yum list installed 显示本地已安装的rpm软件包
    yum deplist {name} 查看xxx程序的软件包依赖情况

  • 安装rpm软件包
    yum install {name} 从yum服务器中下载并安装一个rpm包
    yum localinstall {name.rpm} 安装本地提供的rpm包,并使用自己的软件仓库解决依赖关系

  • 更新已安装的rpm软件包
    yum update 全部更新, 不删除旧依赖包
    yum update {name} 更新指定rpm软件包,不删除旧依赖包
    yum upgrade 全部更新,删除旧依赖包
    yum upgrade {name} 更新指定rpm软件包,删除旧依赖包
    yum check-update 检查可更新的程序
    yum 的update与apt update不太一样,yum update 不建议随便使用

  • 卸载已安装的rpm软件包
    yum remove {name}

  • 清理缓存
    yum clean packages 清理缓存目录下的软件包
    yum clean headers 清理缓存目录下的headers
    yum clean oldheaders 清理缓存目录下的headers

apt包(Debian,Ubuntu)
  • 查找与显示
    apt-cache search {name} 搜索列表中含有关键字的软件包
    apt list 展示apt服务器中可下载的软件包列表
    dpkg -l 展示本地已经安装好的deb包,基于deb包的命令,非apt自带

  • 更新apt软件包列表
    apt-get update 获取最新列表

  • 安装一个软件包(deb包)
    apt-get install {name} 从服务器安装/更新一个 deb 包
    apt-cdrom install {name} 从光盘安装/更新一个 deb 包

  • 卸载一个已安装的deb包
    apt-get remove {name}保留配置文件
    apt-get -purge remove {name}彻底删除,删除配置文件

  • 升级所有已安装的软件
    apt-get upgrade

  • 从下载的软件包中清理缓存,类似清理安装包
    apt-get clean

  • 确认依赖的软件仓库正确
    apt-get check


其他复杂操作


  • 别名管理
  • 环境变量
  • 防火墙管理
  • 系统服务管理

参考资料


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值