Linux下基础(基于Ubuntu16.04)
一、常用命令
tab 快速补全健 (严格区分大小写)
1、cd 进入指定的目录
cd .. 回到上一级目录
2、ls 查看当前目录下的所有的目录与文件名
3、touch 文件名 表示创建一个文件
4、mkdir 目录名 表示创建一个目录
5、rm 文件名 表示删除一个文件
rm -rf 目录名 表示删除改目录及其所有的子级目录文件一同删除
rm -rf */ * 代表所有, 表示删除所有的目录
6、rmdir 目录名 表示删除一个空的目录
7、man 帮助命令,查看命令的用法
如: man rm
8、help 帮助命令,查看命令的用法
命令 --help
9、ctrl+c : 强制终止, 不会终止进程
9、ctrl+z : 强制终止, 终止进程
10、clear 清除命令行终端中的内容
11、ctrl+l : 快捷键, 快速清除终端中的内容
12、查看ip地址: ifconfig
在线linux命令帮助手册(中文版)
http://man.linuxde.net/
**linux下软件的安装
1.命令的形式安装
ubuntu下 apt -get(老版本) install 应用名
apt install 应用名
或:sudo apt install 应用名 权限不足时使用,建议默认使用
center os
yum intall 应用
2.原码的形式安装
1、获取源码
将软件的源码下载至/usr/local/或者自定义路径,并解压。
2、查看INSTALL与README文件
解压后查看INSTALL与README文件,这两个文件中详细介绍了软件的安装方法和注意事项。
3、创建Makefile文件
执行configure命令,生成Makefile文件。
4、编译
执行make clean;make命令将源码编译成二进制文件。
PS:make clean命令用来清除上一次编译生成的目标文件。这个步骤可有可无,但为了确保编译的成功,还是加上为好。防止由于软件中含有残留的目标文件导致编译失败。
5、安装
执行make install命令将上一步编译好的二进制文件安装到指定的目录中去。
第二部分、Ubuntu详解
一、系统目录
1、cd / : 进入根目录
2、每个Linux版本的根目录可能有细微差别
3、Linux中有一个概念:将所有的东西当成文件来处理(鼠标,键盘,文件,U盘等会被抽象出一个文件来处理)
4、bin:可执行的二进制文件,通常放的是系统自带的文件
5、dev:Device,设备,通常系统的硬件被抽象成一个文件存放在dev中
6、initrd.img:开机启动时的图片
7、lost+found:异常关机时存放错误信息的文件
8、opt:Options,存放开发者自己开发并安装的软件
9、run:系统运行时需要的文件
10、srv:存放服务启动后需要访问的文件数据
11、**usr:存放与用户直接相关的文件目录
12、boot:启动配置文件,启动时需要的核心文件
13、etc:配置文件(系统中各种所需要的配置文件)
14、lib、lib64:库,系统内置的库文件,自己安装的各种软件的动态或静态的链接,windows中的dll很相似。
15、media:媒体,存放是系统外接设备,如U盘,硬盘
16、proc:系统文件
17、sbin:系统管理员特用的二进制文件(root用户)
18、sys:系统文件
19、**var:存放日志信息(启动日志,软件日志)
20、cdrom:挂载入口
21、****home:家,每个用户都会在home目录下有一个自己的文件夹,这个文件夹的名称与用户名一致
22、mnt:挂载点,临时安装的挂载
23、root:超级管理员的目录
24、snap:全新的管理软件包的方式
25、tmp:临时文件
26、vmlinuz:软连接到boot下的一个vmlinuz...文件下
2.文件的颜色
白色:表示一个普通的文件
蓝色:表示一个目录
绿色:表示一个可执行文件
红色: 表示一个压缩包文件
浅蓝色: 表示一个链接文件
红色闪烁:表示一个链接文件,但是连接的文件有错误
黄色: 通常是设备(硬件)文件
灰色: 其他文件..
3、常用命令-获取系统信息
1、lshw: 查看硬件信息
2、lscpu:查看cpu信息
3、lsusb:查看usb信息
4、uname: 查看当前系统名
uname -a : 查看当前系统的所有信息
查看当前系统的信息
---------------
5、arch:查看系统的架构 x86 表示32位 x86_64表示64位
6、df: 查看磁盘空间
df -h : 可以直观的查看磁盘的空间..
7、date:查看当前的时间
8、cal:查看当月日历
9、hostname: 查看主机名
10、ifconfig:查看ip信息 ...
11、who: 查看当前用户信息
12、free: 查看当前内存的使用情况
free -h 可以直观的查看当前的内存使用情况
13、ps: 查看当前文件的进程
进程号
14、kill:杀死
kill 进程号 杀死一个进程
kill -9 强制杀死某个进程
15、top:根据消耗的资源,从上之下排序
16、 pwd查看当前完整路径
4、常用命令-关机或重启命令
1、poweroff: 立即关机
2、shutdown -h now : 立即关机
3、systemctl poweroff: 立即关机
4、shutdown -h +5: 5分钟之后自动关机
5、shutdown -c : 取消自动关机
6、reboot: 重启
7、shutdown -r now: 重启
8、systemctl reboot: 重启
6、用户系统
1.用户的分类
作用:区分权限
1.普通用户: 我们自定义的一个用户,通常完成一些普通的工作
2.超级管理员用户:系统会自带一个root用户,root用户什么都能操作,(慎用)
3.普通用户当作超级管理员来使用:
sudo 命令 以超级管理员身份来运行命令
sudo !! 执行上一个命令 需要密码
2.使用超级管理员帐户 root(默认就有)
安装的系统的时候,没有设置root密码,安装完系统后的第一件事就是设置root 密码
1.切换到root用户
su
输入密码
2.设置root 密码
格式: sudo passwd root
需要重复2次输入 (321)
3.exit:退出root账号
4.切换账号
格式: su 用户名
5.修改用户的密码
格式: passwd 用户名
如果不写用户名,默认是当前用户
说明: 1. root用户可以修改任何一个用户的密码,且格式随意
2.sudo 情况下也可以修改任何用户的密码
3.在普通用户下只能修改当前用户的密码
6.**linux下的每个用户都必须设置密码.只有输入了登陆密码后才可以进入系统
7.用户和组
用户: 一个用户就是一套可以登录到系统的账号和密码, linux中可以同时登陆多个用户,且每个用户之间是隔离的
组: linux可以对用户进行分组,而每个组会有特定的权限
1 用户:
1.增加一个用户
1.图形化界面创建
点击 设置 --->system setting --->user account -->右上角的unlock -->认证 --->左下角 + 号--->设置用户名---add即可
2.命令行创建:
格式: useradd(选项)(参数)
选项:
-m 自动建立用户的登入目录
参数: 用户名
例: useradd -m aa 注:会自动的在 /home目录下创建一个与用户名相同名字的目录名
设置密码:
passwd 用户名
2.删除一个用户
userdel(选项)(参数)
选项: -f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。 --- 默认情况只删除用户,但不删除用户的文件
参数: 用户名
例: userdel -r aa
3.修改一个用户信息
usermod(选项)(参数)
选项: -l 修改账号的名称
-L 锁定账号
-U 解除锁定
参数:用户名
例:修改用户名 格式: usermod -l 新用户名 老用户名 注意:不会修改对应的目录名
4.查询一个用户信息
查询已经存在的用户: 进入到 /home 目录 就可以看到
2.组:
1.创建一个组
groupadd(选项)(参数)
选项: -g 指定新建工作组的id; id默认会自动分配
参数: 组名
例:groupadd 组名
2.修改一个组
groupmod(选项)(参数)
选项: -n 修改群组的名字
参数: 组名
修改群组名称:例: groupmod -n 新的名字 原名字
3.查询组信息
cd /etc/ 目录
查看 group目录 例: cat group
group文件中存放了该系统所有的组,
格式: 组名:组的密码: 组的id
4.删除某个组
groupdel (参数)
参数:组名
例: groupdel 组名
3.将用户添加到一个组
1.查看用户的组
格式: groups 用户名
结果格式: 用户名:主组名 附加组1 附加组2
注: 在linux中创建用户的时候,如果没有指定组名,linux会自动的创建一个与用户名同名的组,并自动的将该用户加入到该组
2.创建用户的时候指定组名
格式: useradd(选项)(参数)
选项:
-m 自动建立用户的登入目录
-g 指定用户所属的群组(主)
-G -G<群组>:指定用户所属的附加群组;
参数: 用户名
例1:
格式: useradd -g 组名 用户名
在linux中,一个用户只能添加到一个主组中, 但是可以添加到多个附加组中
添加到了多个附加组,就可以拥有多个组的权限
作业: 附加(次要)组可以直接删除,要删除主要的组之前必须先删除主组中的所有用户
3.修改组
usermod(选项)(参数)
选项: -g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
参数:用户名
8.文件的权限
1.在linux中通过设置文件的权限来设置各个用户及组的权限
2.查看文件的权限的表现形式: ll 即可看到
drwxr-xr-x 10个字母用来表示一个文件的权限
d rwx r-x r-x
第1个字母:表示的是文件的类型
d 代表当前是目录
l 代表当前是一个链接文件
- 代表当前是文件
第2-4个字母: 表示的的是当前用户的权限
r 表示可以读该文件
w 表示可课写该文件
x 表示可以执行该文件
- 表示不可以对应位置的取现
第5-7 个字母: 表示当前组的权限
第8-10 个字母: 表示其他组的权限
3.设置文件权限
格式: chmod [ugoa][+-=][rwx-] 文件名
例1: 将自己改成可执行
chmod u+x aa.txt
例2: 将所有用户的权限都改成只可读
chmod a=r aa.txt
例3: 将自己和自己所在的组添加一个可执行权限
chmod ug+w aa.txt
例4: 将自己修改为rwx权限
chmod u=rwx aa.txt
ugoa
u user 代表当前用户
g group 代表当前组
o other 代表其他组
a all 代表全部 ugo
+ 添加某个权限
- 去掉某个权限
= 重新设置权限
r 表示可以读该文件
w 表示可课写该文件
x 表示可以执行该文件
4.数值修改法:
将权限用一个值表示:
x 1
w 2
wx 3
r 4
rx 5
rw 6
rwx 7
格式: chmod 值1值2值3 文件名
值1是当前用户
值2是当前组
值3其他
例: 将所有用户的权限都改成只可读写执行
chmod 777 aa.txt
第三部分、常用操作(vim、tar等)
1.文件/目录的常规操作
1.切换目录的操作
1. cd 目录名 切换到对应的目录下 ---相对路径
2. cd 完整的路径名 ---绝对路径
3. cd ~ ~ 相当于 /home/当前用户
4. cd 表示直接切换到 /home/当前用户
5.cd .. 返回上一级目录
注: linux是 / window:\
2、linux中 . 的作用
1. .. 在路径中表示父级目录
2. . 在路径中表示当前目录下
3. . 文件名前, 表示该文件为隐藏文件
3.查看/查找目录中的文件
1.展示目录下的所有的目录及文件
ls 展示当前目录下的所有目录及文件
ls 目录名 展示指定目录下的所有目录及文件
ls -a 展示目录下的所有的目录及文件,包含隐藏文件 简写:la
ls -l 以列表的相识展示目录及文件的详细信息 简写:ll
2.tree 以树状结构展示目录中的文件及目录
格式: tree 目录名
第一次使用的时候需要安装: sudo apt install tree
3.获取当前目录的绝对路径
pwd 会展示当前目录的绝对路径
4.find 命令 查找一个文件
格式: find(选项)(参数)
例: find -name 文件名 表示在当前目录下查找指定文件位置
例: find 路劲 -name 文件名 表示在指定目录下查找指定文件位置
例:当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . \( -name "*.txt" -o -name "*.pdf" \)
匹配文件路径或者文件
例:find /usr/ -path "*local*"
基于正则表达式匹配文件路径
例: find . -regex ".*\(\.txt\|\.pdf\)$"
5.whereis 查找系统中的一些程序文件
whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
6.查看文件的类型
file 文件名/目录名
4.目录的操作
1.创建一个目录
mkdir 目录名 直接创建一个目录
mkdir -m 700 目录名 创建一个目录,并设置权限
mkdir -p 目录名 如果创建的目录对应的父级目录不存在,连同父级目录一同创建
默认情况下,如果父目录不存在,则不能正常创建
2.删除一个目录
rmdir 目录名 删除一个空目录
rm -rf 目录名 删除一个目录及该目录下的所有目录及文件
-r 递归遍历
-f 强制删除
3.修改
1.修改目录/文件 名
mv file1 file2 将目录/文件 file1改名为file2 (移动)
mv file1 目录名 将文件移动到某个目录下
5.文件的操作
1.创建文件
1.创建一个文件
touch 文件名 创建一个文件
vi
vim
2.删除文件
rm 文件名
-f 强制删除
3.复制命令
cp 源文件位置 目标位置
例1: cp 文件位置 目录位置 表示将一个文件复制到目标目录下
例2: cp 文件位置 目录位置/new文件名 表示将一个文件复制到目标目录下并更名为new文件名
例3: cp -r 目录名 目录位置 表示将一个目录复制到某个目录下
2.连接文件
1.文件的存储形式
1.window中文件的存储形式
1.直接存储一个对应的文件数据
2.以快捷方式的形式存储,存储的是文件的路径
2.linux下的存储方式
文件名 ---> 文件节点 --->存储文件数据
2.连接
1.硬连接
特点:1.修改硬连接文件或者源文件, 硬连接文件或者源文件都会发生变化
2.删除硬连接文件或者源文件中任意一个, 真正的数据不会删除,没有删除的硬连接或者源文件任然可以访问文件
使用:ln 文件名 硬连接名 硬连接是白色的文件名
**2.软连接**
软连接是浅蓝色的
使用: ln -s 文件名 软连接名
特点:1.修改硬连接文件或者源文件, 硬连接文件或者源文件都会发生变化
2.删除硬连接文件,真正的数据会删除,软连接会变成红色表示该连接有错
3.如果删除软连接文件,源文件不受影响
推荐使用,相当于window的快捷方式
如图:图片来源:https://blog.csdn.net/bobyuan888/article/details/78874913
3.打包/解包 压缩/解压缩
1.打包
tar -cvf 打包后的文件名 目录名 默认将打包后的文件放在当前目录下
-v或--verbose:显示指令执行过程;
-f 指定备份文件;
-c 指定备份文件
例:tar -cvf yy.tar yy
一般打包文件的格式为.tar
打包文件的颜色是红色
2.解包
tar -xvf 已经打包的文件 表示在当前目录下解包
tar -xvf 已经打包的文件 -C 指定目录 表示在指定目录下解包
3.压缩
tar -zcvf 压缩后的文件名 目录名
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
例: tar -zcvf yy.tar.gz yy
一般打包文件的格式为.tar
打包文件的颜色是红色
4.解压缩
tar -zxvf 已经压缩的文件 表示在当前目录下解压
tar -zxvf 已经压缩的文件 -C 指定目录 表示在指定目录下解压
注: 文件的的扩展名(.xxx)不会影响文件中的原数据,扩展名是方便程序去处理文件,识别文件类型的
4.linux中的文本编辑
1.linux 默认自带 vi, 用升级版 vim
2.第一次使用需要安装vim
sudo apt install vim
3.vim的三种模式:
1.普通模式 ---当vim打开的时候就直接进入普通模式,在普通模式下可以进入命令,插入模式
2.插入模式 ---可以通过普通模式进入插入模式, 插入模式可以编辑文本
3.命令模式----可以通过普通模式进入命令模式,命令模式可以设置文本的保存退出方式
4.三种模式的切换
1.普通模式---> 插入模式 i ,a , o
2.普通模式--->命令模式 :
3.插入模式--->普通模式 esc
4.命令模式 --->普通模式 删除 :
5.使用
1.vim 打开文件
格式: vim 文件名 打开一个可编辑文件
注:如果文件名不存在,会自动创建一个空的文件,并打开
2.普通模式 ---> 插入模式
1. i 进入插入模式,按下i之后,光标不动,插入文本的时候,在原光标 前面 插入文本内容
2. a 进入插入模式,按下a之后,光标向后移动一位,插入文本的时候,在原光标 后面 插入文本内容
3. I 进入插入模式,按下I之后,光标会移动该行的起始位置,插入文本的时候,在行首位置开始插入内容
4. A 进入插入模式,按下A之后,光标会移动该行的末尾位置,插入文本的时候,在行末尾置开始插入内容
5. o 进入插入模式,按下o之后,会先在该行创建一个空的下一行,且光标在下一行的行首,直接会再下一行的行首插入内容
6. O 进入插入模式,按下O之后,会先在该行创建一个空的上一行,且光标在上一行的行首,直接会再上一行的行首插入内容
3.普通模式下的命令
G :将光标移至最后一行行首
nG :将光标移至第n行行首
n+ :将光标下移n行
n- :将光标上移n行
n$ :光标下移至第n行行尾
0(数字零) :将光标移到所在行的行首
$ :将光标移到所在行的行尾
^ :将光标移动所在行的第一个字符(非空字符)
h,j,k,l :分别用于光标左移,下移,上移,右移一个字符
H :将光标移至当前屏幕首行的行首
M :将光标移至屏幕显示中间行的行首
L :将光标移至当前屏幕最低行的行首
x :删除光标处的字符
dw :删除一个单词
**dd :删除光标所在行
**yy :复制光标所在行
**p :粘贴
**/str :向右进行搜索
**?str :向左进行搜索
n :向相同的方向查找
N :向不同的方向查找
4.命令模式的命令
1.wq 保存并退出
2.q 退出
3.q! 强制退出
5.查看文件内容 查看文件内容时尽量不要用vim
1.cat 文件名 直接查看文件内容
cat -n 文件名 显示文件内容,并显示行号,空白行算
cat -b 文件名 显示文件内容,并显示行号,空白行不算
2.tac 文件名 倒叙查看文件内容
3.head 文件名 直接查看文件内容 默认查看文件的最上面的10行
head -n 文件名 显示文件开始的n行内容
4.tail 文件名 倒叙查看文件的内容 默认查看文件的最后的10行
tail -n 文件名 显示文件末尾的n行内容
5.more 文件名 当文件内容过多的时候,分页显示内容, 按空格进行翻页
6.wc 文件名 统计一个文件中各种数据的数量
计算文件的Byte数、字数或是列数,
6.异常终止了再次打开时会报错
通常会报 源文件名.swp的文件已经存在,原因: 当我们编辑文件的时候,系统为了安全,会自动的生成一个文件名为 原文件名.swp的文件,用来保证源文件出错时,可以及时的恢复
如果出现了异常,再次打开时,会直接打开swp文件, 可以删除,覆盖,修改…通常直接删除del,
如有错误请及时评论,方便改正,谢谢。