Linux基础知识(主要目录、常用命令、用户、SHELL)

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系统是多用户操作系统,只有一个根目录/,没有盘符概念。

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 <IP地址>
          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 -lh`和`command -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 只显示目录
pwdPrint 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追加到文件
clearclear清屏
shutdownshutdown关机-r 重新启动电脑
-c 取消关机
shutdown now立即关机否则1分钟后关闭
rebootreboot重启
ifconfignetwork interfaces configuring查看/配置网卡
ping [IP地址]ping测试网络联通-I 使用指定网卡
-c 指定次数
ssh <用户名>@<地址>:[路径]Secure Shellssh远程连接-p 使用指定端口(默认22)
scp [原文件] [目标文件]Secure Copy远程拷贝文件-P 使用指定端口
-r 传送目录里的所有内容
ssh-keygenSecure 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
whoWho当前登录到当前计算机的用户
whoamiWho Am I显示当前登录的用户名
whichWhich查看命令的所在文件位置
exitExit退出终端
dateDate查看当前的系统时间
calCalender查看日历-y 查看一年的日历
dfDisk Free查看磁盘信息-a 查看所有信息
-h 人性化显示文件大小
du [目录]Disk Usage查看目录占用信息-s 显示总大小
-h人性化显示文件大小
ps [aux]Process Status查看进程的状况a 显示所有进程
u 显示详细信息
x 显示没有终端的进程
topTop动态显示进程且进行排序
kill <进程PID>Kill杀死某一个进程-9 强制终止程序
ln <被链接文件> <链接文件>Link创建链接-s 建立软链接 不带该参数默认建立硬链接
tarTape 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 列出压缩包内容
aptAdvanced Packaging Tool管理软件包
chattr加锁和解锁 只读权限root也无法修改chattr +i /etc/resolv.conf
chattr -i /etc/resolv.conf
aliasalias给命令定义别名alias rm = ‘rm -i’
unaliasunalias取消别名unalias rm
diff显示文件不同的地方diff file.txt file1.txt
也可以显示文件夹不同的地方:
diff -r / /home

用户和权限

超级用户

  • root账号是超级用户账号

  • 用于系统的维护和管理

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

用户符号

用户英文简写
所有者owneru
用户组groupg
其他用户othero
所有用户alla

权限符号

对于命令ls -al可以显示所有文件的属性,而属性中包含以下内容:
文件属性
最前面的一行即为权限(当前用户权限 组用户权限 其他用户权限)
第三行为所属用户
第四行为所属用户组

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

关于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

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值