Linux基础知识

253次阅读
没有评论

共计3215个字符,预计需要花费9分钟才能阅读完成。

Linux 知识

Linux,全称 GNU/Linux,是一种免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年 10 月 5 日首次发布,它主要受到 Minix 和 Unix 思想的启发,是一个基于 POSIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 有上百种不同的发行版,如基于社区开发的 debian、archlinux,和基于商业开发的 Red Hat Enterprise Linux、SUSE、Oracle Linux 等。


主要目录

Linux 系统是多用户操作系统,只有一个根目录 /,没有盘符概念。

  • /

    根目录,一般根目录下只存放目录,在终端里输入 /home,其实是在告诉电脑,先从 /(即根目录)开始,再进入到 home 目录;

  • /bin,/user/bin

    可执行的二进制文件的目录,如常用的命令:ls,tar,mv,cat 等;

  • /boot

    放置 Linux 系统启动时用到的一些文件,如 Linux 内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub;

  • /dev

    存放 Linux 系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱:mount /dev/cdrom /mnt;

  • /etc/

    系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有:/etc/initab etc/fstab etc/init.d /etc/xll /etc/sysconfig /etc/xinetd.d;

    • passwd

    存放这用户的信息,由 6 个分号组成

    用户名: 密码:UID:GID: 用户全名: 家目录: 登录命令
    密码:x 表示加密的密码 密码存放在 /etc/shadow
    UID:用户标识
         普通用户从 1000 开始 用户权限由 UID 决定
         root 用户为 0 如果把某一用户的 UID 改成 0 那么他具有 root 权限
    GID:组标识
    • shadow

    存放密码信息 是 /etc/passwd 的影子文件

    用户名: 加密密码: 最后一次更改密码时间: 天数
    • group

    存放组信息

    组名: 密码:GID: 包含的用户
    • gshadow

    是 /etc/group 的影子文件

    组名: 密码: 管理者: 组群成员
  • /home

    系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下:~ 表示当前目录的家目录,~edu 表示用于 edu 的家目录;

  • /lib,/user/lib,/usr/local/lib

    系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助;

  • /lost+fount

    系统异常产生错误时,会将一些遗失的片段放置于此目录下;

  • /mnt,/media

    光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载;

  • /opt

    给额外安装软件所放置的目录;

  • /proc

    此目录的数据都在内存中,如系统核心外部设备、网络状态,由于数据的都存放于内存中,所以不占用磁盘空间,比较重要的文件,有:/proc/cpuinfo,/proc/interrupts,/proc/dma,/proc/ioports,/proc/net/* 等;

  • /root

    系统管理员 root 的家目录。

  • /usr/share/doc

    收录了完整系列的软件说明文件

家目录

  • ~/.ssh/

    保存着 ssh 的信息的目录

    • config

    用于配置 ssh 的信息

    配置别名

    Host <别名>
        HostName 
        User <用户>
        Port <端口>
    • known_hosts

    保存着记录过的服务器信息

    • authorized_keys

    认证过的公钥信息

    • id_rsa

    生成的私钥信息

    在连接端生成私钥和公钥

    再将公钥复制给服务器

    就能免密登录服务器

    • id_rsa.pub

    生成的公钥信息

    公钥交给服务器

    就能免密登录服务器了

  • ~/.bash

    • ~/.bash_history

    命令的历史记录文件

    所有之前执行过的命令都会保存在这里

    • ~/.bashrc

    每次登录都会执行的 bash 命令


环境变量

  • 查看环境变量:env

  • 设置系统环境变量

    export name="值"
    #(注意:这只是临时设置环境变量,在下次登录 shell 时就失效了)# 永久方法:#  在 /etc/profile.d 目录下创建 sh 文件
    #  在每次登录 shell 时都会执行 /etc/profile.d 文件夹里面的所有 sh 文件

命令

命令格式:

    command [-options] parameter

    command -lhcommand -l -h 的效果是一样的

查询帮助:

    command --help

    man command

快捷键:

    Tab                    自动补全

    ↑ / ↓                    快速切换历史命令

    Ctrl + C              退出选择,取消执行当前命令

命令 英文 作用 参数
man < 命令 > manual 查找命令的帮助信息
ls [查找内容] list 查看当前文件夹下的内容 -a 查看包括隐藏文件的所有文件
-l 列出文件的详细信息
-h 更好的显示文件大小
通配符:
ls 1*
ls 1?1.txt
ls [A-Z]*
tree [目录名] tree 树状图显示目录结构 -a 显示所有文件(隐藏文件)
-d 只显示目录
pwd Print Work Directory 查看当前文件夹
cd [目录名] Change Directory 切换文件夹 cd切换到用户目录
cd ~ 切换到用户目录
cd . 保持当前目录
cd .. 返回上一级目录
cd - 返回上次的目录
touch < 文件名 > touch 创建文件 创建文件或者修改文件修改时间信息
mkdir < 目录名 > Make Directory 创建文件夹 -p 创建递归目录
mkdir -p a/b/c/d
cp [原文件] [目标文件] copy 复制文件 -i 文件覆盖前提示
-f 强制覆盖文件
-r 复制文件夹及里面的内容
mv [原文件] [目标文件] move 移动文件 / 重命名文件 -i 文件覆盖前提示
-f 强制覆盖文件
rm < 文件名 > remove 删除指定文件 -f 强制删除文件
-r 删除文件夹及内容
-d 删除空的目录
-i 删除前提示
find [路径] Find 查找文件 -name "*.py" 指定查找的文件名
cat [文件名] concatenate 查看文件 / 修改文件 / 文件追加 -b 非空行编号 (相当于nl)
-n 对所有行编号
cat > 1.txt 写入文件 1.txt
cat 1.txt > 2.txt将 1 中的内容覆盖到 2
cat 1.txt >> 2.txt将 1 中的内容追加到 2
cat < 1.txt 2.txt将打印 2 中的内容
nl [文件名] Number of Line 查看文件(非空行显示行数)
more [文件名] more 分屏显示文件内容 空格键 下一页
Enter 键 滚动一行
b 向后滚动一屏
f 向前滚动一屏
q 退出
less [文件名] less 分屏显示文件内容
grep [内容] [文件名] Globally search a Regular Expression and Print 搜索文本内容 -n 显示行数
-v 显示不包含行
-i 忽略大小写
echo [内容] echo 输出指定文本 echo xxx > 1.txt输出到文件
echo xxx >> 1.txt 追加到文件
clear clear 清屏
shutdown shutdown 关机 -r 重新启动电脑
-c 取消关机
shutdown now 立即关机否则 1 分钟后关闭
reboot reboot 重启
ifconfig network interfaces configuring 查看 / 配置网卡
ping [IP 地址] ping 测试网络联通 -I 使用指定网卡
-c 指定次数
ssh 用户名>@<地址:[路径] Secure Shell ssh 远程连接 -p 使用指定端口(默认 22)
scp [原文件] [目标文件] Secure Copy 远程拷贝文件 -P 使用指定端口
-r 传送目录里的所有内容
ssh-keygen Secure Shell Key Generate 生成 SSH 钥匙
ssh-copy-id 用户名>@<地址:[路径] Secure Shell Copy Idification 复制公钥到服务器 -p 使用指定端口(默认 22)
su [用户名] Substitute User 切换用户 – 切换后到默认工作目录
默认切换为 root 超级用户
sudo < 命令 > Substitute User Do 用超级用户执行命令 5 分钟内不用重新输入密码
chmod [ugoa][+/-/=][rwx] [文件 / 目录] Change Mode 更改文件权限 -R 递归修改文件夹下的所有内容
chmod +x file 为文件添加可执行的权限
chgrp < 组名 >  < 文件 > Change Group 修改文件所属组 -R 递归修改所有文件夹里面的内容
chown < 用户名 >[: 组名]  < 文件 > Change Owner 修改文件所属用户 -R 递归修改所有文件夹里面的内容
groups [用户名] Groups 查询用户所在组 cat /etc/group可以查询所有用户组
groupadd < 组名 > Group Add 添加用户组
groupdel < 组名 > Group Delete 删除用户组
useradd < 用户名 > User Add 新建用户 -m 自动建立家目录
-g [组] 指定用户组
userdel < 用户名 > User Delete 删除用户 -r 自动删除家目录
usermod < 用户名 > User Modify 修改用户信息 -g [组] 设置用户主组
-G [组] 设置用户附加组
-s [/bin/shell] 修改用户的登录命令
passwd [用户名] Password 设置用户密码 cat /etc/passwd \| grep < 用户 >可以查询用户
id [用户名] Idification 查询用户的 UID 和 GID
who Who 当前登录到当前计算机的用户
whoami Who Am I 显示当前登录的用户名
which Which 查看命令的所在文件位置
exit Exit 退出终端
date Date 查看当前的系统时间
cal Calender 查看日历 -y 查看一年的日历
df Disk Free 查看磁盘信息 -a 查看所有信息
-h 人性化显示文件大小
du [目录] Disk Usage 查看目录占用信息 -s 显示总大小
- h 人性化显示文件大小
ps [aux] Process Status 查看进程的状况 a 显示所有进程
u 显示详细信息
x 显示没有终端的进程
top Top 动态显示进程且进行排序
kill < 进程 PID> Kill 杀死某一个进程 -9 强制终止程序
ln < 被链接文件 > < 链接文件 > Link 创建链接 -s 建立软链接 不带该参数默认建立硬链接
tar Tape Archive 打包 / 解包 -c 生成档案文件
-x 解开档案文件
-v 列出进度
-f 指定文件名称
-j 通过 bzip2 压缩
-z 通过 gzip 压缩
-C 指定解压目录
tar -cvf xxx.tar xxx 打包文件
tar -xvf xxx.tar 解包文件
zip < 压缩包.zip> < 文件 > Zip 压缩 -v 列出进度
-r 递归压缩文件夹下的所有内容
-n [1~9] 压缩级别
-u 追加文件到 zip
unzip < 压缩包 > Unzip 解压 -d < 路径 > 指定解压文件夹
-P < 密码 > 指定密码
-l 列出压缩包内容
apt Advanced Packaging Tool 管理软件包
chattr 加锁和解锁 只读权限 root 也无法修改 chattr +i /etc/resolv.conf
chattr -i /etc/resolv.conf
alias alias 给命令定义别名 alias rm =‘rm -i’
unalias unalias 取消别名 unalias rm
diff 显示文件不同的地方 diff file.txt file1.txt
也可以显示文件夹不同的地方:
diff -r / /home

用户和权限

超级用户

  • root账号是超级用户账号

  • 用于系统的维护和管理

  • 不建议直接使用超级用户

用户符号

用户 英文 简写
所有者 owner u
用户组 group g
其他用户 other o
所有用户 all a

权限符号

权限 英文 缩写 数字代号
read r 4
write w 2
执行 excute x 1
无权限 0
八进制语法 权限 缩写
7 读 + 写 + 执行 rwx
6 读 + 写 rw-
5 读 + 执行 r-x
4 只读 r–
3 写 + 执行 -wx
2 只写 -w-
1 只执行 –x
0 无权限
文件类型 文件 / 目录 拥有者权限 组权限 其他用户权限
普通文件 rw- rw- r–
目录文件 d rwx rwx r-x
管理文件 p
连接文件 l
块设备文件 b
字符设备文件 c
套接字文件 s

常用软件包

名称 作用
Samba nas 服务器 远程硬盘
Transmission 远程文件下载器
OpenStack 云平台
KVM 虚拟机
WebVirtMgr WebVirtCloud 虚拟机管理 WEB
Rclone 它可以将 webdav 协议的共享文件夹挂载到电脑本地硬盘。此外,Rclone 还支持 HTTP、WebDav、FTP、SFTP、dlna、Amazon S3、阿里云 OSS……等多达 40+ 种常用网络共享协议。

关于 Shell

通配符

星号 *

用于匹配任何字符,包括数字、字母和符号。可以使用星号指定应用程序需要查找的字符相应位置的任何字符。

# 删除所有文件后缀为.bak 的文件
rm *.bak

问号 ?

用于匹配单个任意字符。

# 列出所有任意一个字符开头,后面为 bc.txt 的文件
# 例如:abc.txt bbc.txt 1bc.txt
ls ?bc.txt

文件别名

# 给命令设置别名
# alias < 别名 >="< 原命令 >"
alias test="ls -l /"
# 取消别名
# unalias < 别名 >
unalias test

管道

# 管道的符号为 |
[命令]|[命令]|[命令]

重定向

# 输出重定向
# 将命令执行的输出保存在文件里 直接覆盖
[命令] > [文件]
ls /etc > 1.txt
# 追加重定向
# 追加来替代直接覆盖文件
ls /etc >> 1.txt

# 输入重定向
[命令] < [文件]
grep test < 1.txt
# 追加重定向
# 获取一段分隔符之间的内容
[命令] << [分隔符]
> [内容]
> [内容]
> [分隔符]

# 错误重定向
# 把命令发生的错误写到文件里
[命令] 2> [文件]
ls /nofile 2> 1.txt
ls /nofile 2>> 1.txt

# 同时实现输出和错误重定向
[命令] &> [文件]

write by dudu233

正文完
 0
评论(没有评论)
验证码
zh_CN简体中文