Linux
Linux入门
Linux目录结构
在Linux的世界中,一切皆文件
所有目录均在根目录下,每个目录中存放对应文件
硬件也会映射为文件形式
/bin
存放最经常使用命令
/home
存放普通用户主目录,每个Linux用户有一个自己的目录
/root
该目录为系统管理员,超级权限者
/lib
动态链接共享库,几乎所有程序都需使用
/etc
所有系统管理所需要的配置文件和子目录
/usr
许多程序和文件都放在该目录下,类似于Windows的Program files目录
/boot
启动Linux时所需核心文件
/proc
系统内存映射
/srv
/sys
/tmo
临时文件
/dev
类似于Windows设备管理器,将所有硬件映射为文件
/media
自动识别一些设备,如U盘、光驱等,识别后,Linux会将这些设备挂载到该目录(其实挺奇怪的,硬盘和U盘不都属于外设吗,怎么还区别对待?感觉有些问题)
/mnt
用以临时挂载别的文件系统
/opt
安装软件所存放的目录(与usr区别?)安装包
/usr/local
软件存放目录
/var
经常修改内容,包括各种日志文件
/selinux
安全子系统
远程控制
Linux公网
远程登陆、文件传输
学习阶段使用Xshell 7以及Xftp 7
官网为https://www.xshell.com/zh/free-for-home-school/,不要找错了哦(差点踩坑被骗)
成功使用Xshell连接到Pine A64卡片电脑,实现远端控制
实现过程:来电自启Pine A64,连接网线,进入路由器管理界面,找到已连接设备IP地址,查询Pine A64地
址,启动Xshell,输入对应IP地址,依次输入用户名及密码,远端登录成功!
Vi及Vim的使用
vim具有程序编辑能力
三种模式
正常模式
默认模式,可移动光标,使用删除、复制、粘贴
插入模式
按下i、I、o、O等字母进入编辑模式
命令行模式
可以使用相关指令,完成读取、存盘、替换、离开等操作
例:使用vim编写hello.c
查看编辑器
armbian自带gcc和g++,没有python和Java,是有python3的,省事直接用gcc,编写hello.c
执行
输出hello world,文件已生成
模式切换
命令模式下:
:wq——保存并退出
:q!——强制退出不保存
:set nu——设置行号
:set nonu——取消行号设置
一般模式下:
yy:拷贝当前行
4yy:拷贝当前行向下4行
p:粘贴
dd:删除当前行
4dd:删除当前行向下4行
G:定位文档末行
gg:定位文档首行
u:撤销,类似于Windows下的CTRL+Z
还有许多其他快捷方式
常见Linux指令
关机&重启&登录&注销
指令 | 作用 |
---|---|
shutdown -h now | 立刻关机 |
shutdown -h 1 | 一分钟后关机 |
shutdown -r now | 立刻重启 |
halt | 关机 |
reboot | 重启 |
sync | 把内存数据同步到磁盘 |
su - 用户名 | 切换管理员身份 |
logout | 注销用户 |
注意细节:
1.不管重启或是关机,首先运行sync,虽然会自动调用,小心驶得万年船
2.logout指令在图形运行级别无效
用户管理
Linux是一个多用户多任务的操作系统
只有一个root用户,可以创建许多普通用户
指令 | 作用 |
---|---|
useradd 用户名 | 添加用户 |
passwd 用户名 | 指定、修改密码 |
userdel 用户名 | 删除用户,保留家目录 |
userdel -r 用户名 | 删除用户以及对应主目录 |
id 用户名 | 查询用户信息 |
su - 用户名 | 切换用户 |
whoami/who am i | 查看当前用户/登录用户 |
注意细节:
1.创建用户成功后,自动创建与用户名同名家目录,使用该用户登录,自动切换至该用户目录下
2.useradd -d 指定目录 用户名,为新创建的用户指定家目录
3.从权限高用户切换至权限低用户,无需密码,反之需要
4.切换回原来用户时,使用exit/logout指令
用户组
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
指令 | 作用 |
---|---|
groupadd 组名 | 新增组 |
groupdel 组名 | 删除组 |
useradd -g 用户组 用户名 | 增加用户时直接加上指定组 |
usermod -g 用户组 用户名 | 修改用户的组 |
通过分组方式,给组赋予权限,组内用户都拥有该权限
不指定组,创建同名组,并加入改组
一个用户只能属于一个组?
用户和组相关文件
/etc/passwd文件
user配置文件,记录用户各种信息
用户名:口令:用户标记号:组标记号:注释性描述:主目录:登录shell
oseasy:x:1000:1000:oseasy,,,:/home/oseasy:/bin/bash |
/etc/shadow
口令配置文件
登录名:加密口令:……
/etc/group
组的配置文件,包含Linux组的信息
运行级别
0:关机
1:单用户
2:多用户无网络
3:多用户有网络服务
4:保留
5:图形界面
6:重启
常用为3和5
Ubuntu 18.04 LTS图形界面使用init 3后进入多用户有网络服务,但明显出现乱码问题,init 5试图回到图形界面,报错
Failed to open /dev/initctl:**** |
似乎就无法调用相关操作和文件了
好在init 6仍然适用,重启进入默认运行级别回到图形界面
找回root密码
对着指令敲,实机操作
帮助指令
man 获得帮助信息
help 获得shell内置命令的帮助信息
man和help的区别?
可通过以下指令自行体会两者区别
man man |
拓展:
在Linux下,隐藏文件以.开头
查看目录下的文件使用ls
ls -a列出所有,包括隐藏文件
ls -l单行显示
选项可组合使用,如ls -al,ls -la
文件目录
指令 | 作用 |
---|---|
pwd | 显示当前工作目录绝对路径 |
ls [选项] |
显示目录或文件 |
cd [目录] |
切换到指定目录 |
mkdir [目录] |
创建目录 |
mkdir -p [目录] |
创建多级目录 |
rmdir [目录] |
删除空目录 |
rm -rf [目录] |
删除非空目录不提示(删除需谨慎) |
rm -r [文件或目录] |
递归删除整个文件夹 |
rm -f [文件或目录] |
强制删除不提示 |
touch [文件] |
创建空文件 |
cp [选项] source dest |
拷贝文件到指定目录 |
mv | 移动文件与目录或重命名 |
目录的创建与删除
拓:
绝对路径以根目录为起始目录
相对路径以当前目录为起始目录
cd ~或者cd :回到家目录
cd ..返回上一级目录
cp -r source dest递归拷贝目录
\cp 同名直接覆盖,不需要问讯