目录
目录
一、基本指令
1.命令行提示符
2.切换用户
3.修改密码
4.查看当前目录下的文件
5.修改文件权限---chmod
6.cd 切换路径
7.touch
8.cat
9.echo
10.mkdir
11. rm/rmdir
二、在线下载软件
1.更新软件源
2.更新软件列表
3.下载软件
三、离线安装软件
1. 软件安装包的命名
2.离线安装软件的指令
四、文件相关的指令
1.head
2.tail
3.管道符 |
4.find**
5.通配符
6.file ---->查看文件
7.wc ----->(word count)
8.查找字符串 ---->grep
练习:
9.cut ----->字符串裁剪
10.压缩和解压缩
11.tar 文件归档并压缩
i)归档
ii)拆包并解压缩
五、文件权限相关的操作
1.chgrp --->修改文件的所属组用户
2.chown --->修改文件的所属用户
六、创建链接文件
1.创建硬链接文件 ln
2.创建软链接文件 ---->ln -s
七、用户相关的操作
1.新建用户
2.给新用户添加sudo权限
3.删除用户
4.usermod ---->修改用户的信息
八、磁盘相关的操作
1.让U盘链接到虚拟机
i)方法1:通过弹窗让U盘链接到虚拟机
ii)方法2:通过虚拟机设置的菜单栏
2.检查U盘是否被ubuntu识别
3.磁盘分区
4.对分区格式化---->mkfs
5.磁盘的挂载 ---->mount
常见的问题:
练习:
一、基本指令
1.命令行提示符
ubuntu@ubuntu:~$
ubuntu:用户名
@:分隔符
ubuntu:主机名
~:家目录(当前所在的路径)
$:普通用户权限 root : #
2.切换用户
su 用户名 ----->切换到指定用户
su ----->默认切换到超级用户
sudo 加在指令前 ----->用超级用户的权限执行后的指令
3.修改密码
passwd 用户名 ----->修改指定用户的密码
普通用户修改管理员用户的密码需要加sudo
输入的密码不会回显
4.查看当前目录下的文件
ls 目标路径 ------->回显指定路径下的所有文件名
ls 目标文件 ------->回显文件名
ls -a ---->查看所有文件,包括隐藏文件,.开头的都是隐藏文件
ls -lh ---->查看文件的详细信息,给文件的大小带单位的显示
ls -i ---->显示文件的inode号
-rw-rw-r-- 1 ubuntu ubuntu 4549 八月 22 14:51 test.s
文件类型:7种
b:块设备文件 -:普通文件
c:字符设备文件 l:软连接文件
d:目录文件 s:套接字文件
p:管道文件
rw-rw-r--
r:可读 w:可写 -:没有权限 x:可执行权限
八进制数表示文件权限:
r:4 w:2 x:1
5.修改文件权限---chmod
字母表示法:
chmod 用户+/-/=权限的字母表示 文件名
八进制表示法:
chmod 0三位八进制数 文件名
chmod 4 1.c ------> 把1.c的其他用户权限改为4,所属组和所属用户没有权限
6.cd 切换路径
cd ---->默认切换到当前用户的家目录
超级用户的家目录:在根目录下 /root
7.touch
创建文件 touch 文件名
1、文件本身不存在,创建该文件
2、文件已经存在,更新文件的时间戳
8.cat
cat 文件名
回显文件的内容
9.echo
echo 字符串 ------>回显一遍字符串
10.mkdir
mkdir /dir1/dir2/dir3 -p 实现多级目录的创建
11. rm/rmdir
rmdir 空目录 ----->删除空目录
rm -r 非空目录 ----->删除非空目录
二、在线下载软件
1.更新软件源
更新成国内的软件源:清华源、阿里源、163源、中科大源····
去网页搜:ubuntu的软件镜像源
清华源:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorubuntu 使用帮助 | 镜像站使用帮助 | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
先备份一份原有的源,但是大家的都备份好了,不需要自己备份了
/etc/apt/sources.list
ls /etc/apt ---->sources.list.save
2.更新软件列表
sudo apt-get update ------>让Ubuntu连接到国内的镜像源网站
如果报以下错误,把https改成http就可以了
3.下载软件
sudo apt-get install 软件名 ---->下载软件
sudo apt-get install oneko --->追鼠标的猫
sudo apt-get install bastet --->俄罗斯方块
下载软件后,如何执行:
直接在终端输入软件名
以oneko为例,直接输入软件名,会在前台执行,没有办法去写其他的指令
oneko& ---->让onkeo后台运行,会回显一个进程号
可以直接使用kill -9 进程号,杀死进程
sudo apt-get install gnome-mines ---->下载扫雷
sudo apt-get remove 软件名 --->卸载软件,不完全卸载
sudo apt-get remove 软件名 --purge --->卸载软件,完全卸载
sudo apt-get download 软件名 --->下载软件的安装包
download指令会把安装包下载在执行指令的路径下
sudo apt-get clean ---->清空默认下载位置的安装包
/var/cache/apt/archives/ ---->软件包的默认下载位置sudo apt-get install make
三、离线安装软件
离线安装软件不会检查软件依赖,也不会自动下载软件依赖,对于需要软件依赖的软件进行离线安装会报错
在线安装软件,会检查软件依赖,并主动安装软件依赖
sql---->离线安装会报错
1. 软件安装包的命名
2.离线安装软件的指令
dpkg ----->debian package的缩写
下载:sudo dpkg -i 软件包名 (重点掌握)
注意事项:如果执行指令的路径和安装包不在同一路径下,要给安装包加上路径
卸载:sudo dpkg -r 软件名 ---->不完全卸载软件sudo dpkg -P 软件名 ---->完全卸载软件
四、文件相关的指令
1.head
cat 文件名 ----->查看文件中的所有内容
head 文件名 ----->默认回显文件的前10行
head -n 文件名 ----->指定回显文件的前n行
2.tail
tail 文件名 ------>回显文件的后10行
tail -n 文件名 ----->回显文件的后n行
head和tail,默认显示前10行和尾10行,如果不足就全部显示,
如果超过10行,只显示10行
3.管道符 |
指令1 | 指令2 | 指令3 | ·····
把前一条指令的输出当作后一条指令的输入
例:
查看1.c文件的第4行:head -4 1.c | tail -1
4.find**
通常使用find查找文件,结果都是绝对路径
格式:
find 要查找的路径 -name 要查找的文件名find可以实现模糊查找,已经不记得具体的文件名,只记得部分文件名
已知文件以1开头,.c结尾,不知道具体的文件名
find 目标路径 -name 1\*.cfind的使用场景:
在项目开发的过程中,多个文件中某一个文件报错,可以使用find以及文件名,快速找到文件的位置
5.通配符
*:可以任意通配一个或多个字符
?:通配任一个字符,如果想使用?通配多个字符,多加几个?,有几个匹配几个
[]:通配[]内的任一个字符
[1234]:通配1234中的任一个字符
[2-5]:通配2-5中的任一个字符
[12347-9]:通配1234和7-9中的任一个字符
[1234,7-9]:通配1234、7-9和,中的任一个字符
6.file ---->查看文件
a.out:文件名
ELF:是一个ELF类型的文件
64-bit:支持64位操作系统
LSB shared object:小端存储
x86-64 ----->架构
version 1 (SYSV) ---->版本
dynamically linked, interpreter /lib64/l, --->链接的库
for GNU/Linux 3.2.0 ---->gcc编译器的版本
BuildID[sha1]=60b94b36154878cc979cc2aae1af6e92a45f044f, ---->动态ID
not stripped ---->文件没有被压缩过
7.wc ----->(word count)
wc 文件名
回显行号,单词个数,字符个数,文件名
wc -l 文件名 ---->回显文件的行数
wc -w 文件名 ---->回显文件单词的个数
wc -c 文件名 ---->回显文件字符的个数
8.查找字符串 ---->grep
grep "要查找的字符串" 要查找的路径 (参数)
-n:查找的同时显示字符串所在行
-i:不区分大小写
-R:递归查找 ---->只用于目标路径是目录不是文件
-w:按单词查找 grep "ubuntu$" 文件名 ---->查找以ubuntu作为结尾的所在行
grep "^ubuntu" 文件名 ---->查找以ubuntu作为开头的所在行
grep "^ubuntu$" 文件名 ---->要求开头和结尾是同一个ubuntu
练习:
1、查找/etc/passwd中Ubuntu用户所在行,并显示行号
grep "^Ubuntu" /etc/passwd -ni -----"^"的作用:
查找以指定单词为开头的所在行
2、查找/etc/passwd中sys用户所在行,并显示行号
grep "sys" /etc/passwd -niw
3、查找/etc/group中Ubuntu组所在的行,回显行号
grep "^ubuntu" /etc/group -n
9.cut ----->字符串裁剪
cut -d "分隔" -f "要截取的域" 文件名
cut -d ":" -f "1" /etc/passwd
截取/etc/passwd中,所有以":"分隔的,第一个域
10.压缩和解压缩
压缩和解压缩后源文件都不存在
gz ---->压缩生成.gz后缀的文件
xz ---->压缩生成.xz后缀的文件
bz2 ---->压缩生成.bz2后缀的文件
gzip 要压缩的文件
bzip2 要压缩的文件
xz 要压缩的文件
解压缩
unxz 要解压缩的文件 ---->把压缩文件解压出来,压缩文件.xz会消失
gunzip 要解压缩的文件
bunzip2 要解压缩的文件
三种压缩工具的压缩效率:xz > bz2 > gz
三种压缩工具的压缩时长:xz > bz2 > gz
xz需要时间更长,适用于对文件归档
gz需要时间更短,适用于临时文件传输
11.tar 文件归档并压缩
归档和拆包后源文件仍然存在
i)归档
把多个文件打包生成一个文件
tar -cvf 要生成的文件名.tar 要打包的文件
-c:归档/打包的参数
把要打包的文件生成一个新的文件.tar
tar指令提供的压缩参数:
-j:使用bz2工具压缩
-J:使用xz工具压缩
-z:使用gz工具压缩
tar -czf 生成的文件名.tar.gz 要打包并压缩的文件
tar -cjf 生成的文件名.tar.bz2 要打包并压缩的文件
tar -cJf 生成的文件名.tar.xz 要打包并压缩的文件
ii)拆包并解压缩
tar -xvf 要拆包(解压缩)的文件 ---->既可以完成拆包也可以完成解压缩
万能的拆包解压缩指令
仍然可以使用对应的压缩参数进行解压缩,-j、-J、-z
注意:
有万能的拆包指令,但是没有万能的归档并压缩指令
所以在进行归档并压缩时,压缩工具和压缩生成的文件后缀必须严格一致
五、文件权限相关的操作
1.chgrp --->修改文件的所属组用户
由于现在都是在ubuntu用户和root用户之间转换,所以需要加sudo,如果是两个普通用户之间的转换不需要加sudo
例:有文件2.c
sudo chgrp root 2.c --->把2.c文件的所属组用户改为root
2.chown --->修改文件的所属用户
由于现在都是在ubuntu用户和root用户之间转换,所以需要加sudo,如果是两个普通用户之间的转换不需要加
sudo sudo chown root: 1.c 修改1.c的所属用户和所属组用户为root
sudo chown :root 1.c 修改1.c的文件所属组用户为root
sudo chown root 1.c 修改1.c的所属用户为root
sudo chown ubuntu:root 1.c 修改1.c的文件所属用户为ubuntu,所属组用户为root
六、创建链接文件
1.创建硬链接文件 ln
硬链接就类似于复制粘贴
ln 被链接文件名 生成的硬链接文件名
硬链接文件的注意事项:
1、硬链接文件和源文件有相同的inode号 ---->inode号是文件的唯一索引
2、修改任一个文件,另一个文件都会发生变化
3、只删除硬链接文件/源文件,不会影响到另一个文件
4、当文件描述中,硬链接文件个数为0时,才表示文件被删除
5、当删除文件的硬链接文件后,再创建一个同名文件,这个同名文件是一个全新的文件
6、硬链接文件的文件类型是-:普通文件
2.创建软链接文件 ---->ln -s
软链接/符号链接
理解为wins下的快捷方式
ln -s 被链接文件的绝对路径 软链接文件的绝对路径 注意事项:
1、建议大家在创建软链接文件时,加文件的绝对路径
2、任一个文件的修改,都会影响到另一个文件
3、如果源文件被删除,链接文件会失效,如果想重新生效,再创建一个同名的源文件,软链接文件就会重新被链接
4、软链接文件的文件类型是l
5、拷贝软链接文件时,为了保持链接文件原有的属性,加上-d参数,如果不加,仅仅复制过来一个普通文件
七、用户相关的操作
1.新建用户
sudo adduser 用户名
新建用户一定需要sudo权限
新建用户时,会创建一个同名的组,如果创建用户时,同名组已经存在, 会提示组已经存在,并且用户不会创建成功 --->使用sudo delgroup 把同名组删掉
2.给新用户添加sudo权限
修改/etc/sudoers文件,需要sudo权限,切换到超级用户或者切换到有sudo权限的用户
sudo vim /etc/sudoers
打开sudoers文件,按照上面原有的内容抄下来,需要把%admin改成用户名
(不要复制粘贴)
3.删除用户
sudo deluser 用户名 ---->可以删除用户,但是不会删除用户的家目录,可以后续手动删除
sudo userdel -r 用户名 ----->删除用户的同时删除用户的家目录
4.usermod ---->修改用户的信息
改用户信息,需要保证用户不在登陆状态
sudo usermod -c 新的描述信息 用户名
sudo usermod -l 新的用户名 用户名
sudo usermod -m -d 新的家目录路径 用户名
-m -MOVE -d -HOME_DIR
sudo usermod -g 新的组 用户名 ---->需要保证目标组已经存在
查看/etc/group中记录所有已经存在的组
/etc/passwd中的一行
ubuntu:用户名
x:用户是否加密
1000:uid
1000:gid
guoq:描述信息 ------>会在图形化界面显示(开关机登陆界面)
/home/ubuntu:用户的家目录
/bin/bash:用户使用的shell解析器
八、磁盘相关的操作
1.让U盘链接到虚拟机
i)方法1:通过弹窗让U盘链接到虚拟机
ii)方法2:通过虚拟机设置的菜单栏
2.检查U盘是否被ubuntu识别
ls /dev/sd* ----->如果结果包含除了sda外的其他内容,说明U盘连接成功
可以通过df -h指令查看空间使用率
外部设备(U盘)只有在挂载的情况下,才能通过df -h查看到
3.磁盘分区
fdisk是一个磁盘分区的软件,如果没有软件,可以使用:sudo apt-get install fdisk
sdb表示整个磁盘,sdb1表示对整个磁盘空间划分后的一个分区
sudo fdisk /dev/sdb ---->使用fdisk工具,对整个物理磁盘的空间进行划分
进入fdisk工具后,输入相应的指令完成对磁盘的操作
p:打印已有的分区
n:新建分区
d:删除分区
w:写入磁盘并退出
q:不写入磁盘直接退出2048表示1M
说明磁盘分区成功
4.对分区格式化---->mkfs
make file system
sudo mkfs.要格式化的文件格式 要格式化的分区 sudo mkfs.ntfs 要格式化的分区
如果分区已经被挂载,格式化会失败,先给分区取消挂载
格式化成功的提示
5.磁盘的挂载 ---->mount
因为在linux下万物皆文件,磁盘会被识别成一个块设备文件,没有办法直接写入文件
可以选择一个已有的文件夹,让磁盘分区挂载到这个文件夹下,挂载成功后,对该文件夹的操作就相当于对磁盘的操作
sudo mount 要挂载的磁盘分区 挂载的目录
sudo umount 取消挂载的分区
sudo umount 取消的挂载点(尽量用这种)
常见的问题:
- 先检查U盘有没有被自动挂载,df -h ---->查看U盘的挂载点 umount
- 使用fidsk工具,对整个物理磁盘分区,sdb后面不带数字
- 如果后面需要对分区格式化,分区分小一点空间
- 挂载的注意事项:
挂载的目录本身存在,挂载后无法访问到目录原有的内容,如果不取消挂载,然后把U盘弹出了,就无法继续访问挂载点目录,可以通过取消挂载去解决 ,sudo umount 挂载点名
练习:
使用cut截取出Ubuntu用户的家目录,要求:不能使用":"作为分割
ubuntu@ubuntu:etc$ cut -d "/" -f "2" passwd