Ubuntu_Linux入门教程
安装
- 略
常规操作
全屏显示:进入全屏模式
挂起/冻结
由于开关机的不便性 使用挂起/冻结可以保存linux系统状态
硬件参数设置
先关机后设置
右下角有状态栏:显示当前硬件状态
快照与系统恢复
右键ubuntulinux 有快照
点击拍摄快照之后会保存当前系统状态
在虚拟机目录下就会有后缀为snapshot字样的文件
当系统出问题的时候可以快速还原到快照状态
文件系统
- 对于Linux来说 使用统一的目录树结构,且没有盘符这个概念
- . 代表当前目录 ..代表上级目录
- bin
用户目录
Linux系统上支持多个用户,每个用户一个目录
权限机制:对于普通用户操作的范围只有用户目录,对于root用户可以操作所有范围
常用命令行
列出子项 ls
查看根目录
1
ls /
查看详细信息
1
ls -l /home
要点与细节:按住tab键可以自动补全输入的命令和路径
输入历史可以按↑↓箭头翻阅
宿主机与虚拟机之间可以拷贝粘贴,例如图片和文字
目录切换 pwd
print working directory
1
pwd
切换目录 cd
change directory
1
cd /home/zlinni
几个特殊的目录:
- ~ 主目录
- . 当前目录
- .. 上一级目录
绝对路径 从根节点开始 /
相对路径 从当前路径开始 ./dir==dir
新建文件 touch
touch
1
touch 文件名
输入内容 cat
cat 文件名
1
2
3
4cat files
#查看files中内容
cat -n files
#查看n行内容cat>用户名
1
2cat>files
#往cat中输入内容 以ctrl+d结束其他方式输入 > (输出重定向)
1
2date > file
#往file中输入date
创建目录 mkdir
make directory
1
mkdir abc
使用-p参数可以将路径的层次目录全部创建
1
mkdir -p abc/123/test
删除目录 rmdir
remove directory,如果目录非空 操作失败
1
rmdir abc
删除文件或者目录 rm
remove
1
rm -rfabc
删除abc目录连同子项一起删除,r表示recursive,f表示force
复制文件或者目录 cp
copy
1
2cp -rf example example2
cp -b example example2 #备份
移到文件或目录 mv
move
1
2mv hello helloworld #把文件a移到b中
mv simply.txt simply2.txt #改变名字
归档 tar
tape archive 档 案打包
创建档案包
1
tar -cvf example.tar example
c means create
v means verbose 显示详情
f means file
多目录打包
1
tar -cvf xxx.tar file1 file2 file3
还原档案包 (解压)
1
2
3tar .xvf example.tar
tar -xvf example.tar -C outdir
# -C参数指定目标目录,默认解压到当前目录下归档并压缩
前面的tar没压缩体积大
并档并压缩
1
tar -zcvf example.tar.gz example
解压缩
1
2tar -zxvf example.tar.gz
tar -zxvf example.tar.gz -C outdir
软链接 ln
即Windows下的“快捷方式”
ln link
1
2
3
4
5ln -s source link
#-s 表示soft软链接(默认为硬)
eg:
ln -s example example2
#便创建了一个名为example2的快捷方式,内部是example的内容特点:
- 删除软链接对源文件不会有影响
- 删除源文件则软链接失效
- 使用ls -l 可以清楚的看到快捷方式
直接看颜色
可以看出/bin指向的是user/bin目录
硬链接
用户管理
添加一个用户
1
sudo useradd -m test1
修改用户密码
1
sudo passwd test1
删除用户
1
sudo userdel test1
超级用户
首次使用时,需要给root设置密码
1
sudo passwd root
切换到root用户
1
2su root
# switch user退出
1
exit
用户和组
创建组
1
groupadd boys
创建用户
1
2useradd -m -g boys ming
# -g表示添加用户 同时将用户加到boys组修改现有用户到新的组
1
usermod -g boys Zlinni
查看用户和组
1
2cat /etc/group
#每一行表示一个group消息,名字+id查看用户列表
1
2cat /etc/passwd
#每一行表示一个用户的信息
文件的权限
-owner 文件的属主
-r 文件是否可读 read
-w 文件是否可写 write
-x 文件是否可执行 excute
使用ls -l查看:
- 第一个字符
1
2
3d 表示目录
l 表示link软链接
- 表示为一个文件剩下的九个字符
1
2
3
4
5r w - r - - r - -
#权限分为三部分 自己 | 同组 | 别人
# r 可读
# w 可写
# x 可执行
直接在图形界面上看属性
修改文件权限 chmod
change file mode
1
2
3chmod o+w simply.txt
# o 表示other
# +w 表示增加write权限more
1
2
3
4
5
6
7
8chmod a+w simple.txt
#所有人all添加w权限
chmod a-w simple.txt
#所有人减去w权限
chmod u+w simple.txt
#仅用户user自己的权限 +w
chmod o-w simple.txt
#修改别人的other权限-w
修改文件属主 chown
- change owner
- 在/opt
打印 echo
echo
1
2
3
4
5echo 'helloworld'
#打印出helloworld
var1 = 22;
echo $var1
#打印出22
指令使用说明 man
manual
1
man 指令名
历史指令 history
history
1
2history 10
#查询最近的十条
文本编辑器 vim
三种模式
命令模式 按键i转化为输入模式 输入冒号进入底线模式
输入模式 按键esc转化为命令模式 先esc再冒号进入底线模式
底线模式 最下面一行输入指令
1
2
3
4
5#退出命令
:wq 保存并退出
:wq! 保存并强制退出
:q 直接退出
:q 直接强制退出输入到光标左边是i input
输入到光标右边是a after the cursor
最左边 大写I
最右边 大写A
输入到光标上边是大写O
输入到光标下边是小写o
替换字母 r replace
剪切一个字母 x
剪切一个单词 dw
剪切一行 dd
粘贴 p paste
复制 y
复制一个单词 yw
复制一行 yy
在底线模式输入set number显示行号
查找单词 /单词 按下n就到下一行
替换单词 :s/旧单词/新单词
1
2
3
4替换前三行
:1,3 s/old/new
第一行到最后一行
:1,$ s/old/new移动 :1 move 4 把第一行和第四行进行交换
复制 :1 copy 4 把第一行复制到第四行后面
删除 :1 d
查找grep
语法
1
2
3
4
5
6
7
8
9
10
11grep ‘查找内容’ 查找文件
grep -i ‘查找内容’ 查找文件
#可以忽视大小写 ignore
grep -e ‘查找内容’ 查找文件
#用表达式expression去反映查找的内容
grep -v ‘查找内容’ 查找文件
#显示不匹配的内容 versus
grep -n ‘查找内容’ 查找文件
#显示行号
grep -e '\(hello\)\{2,3\}' 搜索出现2-3次hello的那行
正则表达式
1 | . 一个字符 |
指令
- 指令1 | 2 | 3
Shell 编程基础
程序编译
程序解释
编辑一个 文本文件 保存为xxx.sh
1
2#!/bin/sh
echo "hello,world"添加可执行权限
1
chmod +x xxx.sh
执行程序
1
./hello.sh
shell中的变量
shell是一个脚本编程语言
定义变量
执行命令
if判断逻辑 while循环逻辑
自定义函数
1
2
3
4
5
6定义变量
OUTDIR = /opt
使用变量
echo "output to : ${OUTDIR}"
ls ${OUTDIR}
环境变量
- 定义环境变量
1
2
3
4
5
6定义环境变量
export OUTDIR = /opt
显示环境变量
echo ${OUTDIR}
查看所有环境变量
printenv - 可分为全局环境变量和局部环境变量
1
2全局环境变量由系统预定义且使用在bash进程
一般使用大写字母表示全局 小写表示局部
环境变量的赋值和访问
赋值
1
count=0,等号左右没有空格
访问
1
$count
使用export命令让局部变量变成全局变量
变量的赋值和运算
字符串长度
1
2
3expr length "$str"
若要传值 使用反引号
c = `expr length "$str"`查找字符串位置
1
2
3expr index $str a (要查找的字符串)
* 注意 从1开始
* 有多个字符进行匹配则返回索引最小的值字符串截断
1
2
3expr substr $str 2 3
2 开始位置
3 结束位置字符串匹配
使用expr必须在运算符前面添加 \ 进行转义,且数字与运算符中间需要腾出空格
1
2计算(1+2)*5
expr \( 1 \+ 2 \) \* 5使用$[]做运算不需要
1
result = $[(1+2)*5]
输入输出重定向
输出重定向和附加输出重定向
输出重定向 覆写原来的内容
1
date > file1
附加输出重定向 添加的内容在原先的结尾后面
1
date >> file1
输入重定向和附加输入重定向
原理同上
输入重定向
1
参数 < file1
附加输入重定向
1
参数 << file1
特别的
1
2
3
4cat < file > file2
等同于
cat > file2 < file
都是先输入重定向获取file的内容再输出到file2
错误输出重定向和附加错误输出重定向
错误输出重定向
1
{error message} 2 > file
附加错误输出重定向
1
{error message} 2 >> file
eg
1
2
3
4
5lsls
得到错误信息 bash:lsls:command is not found
lsls 2 > file
cat file
得到错误信息
管道功能
第一个命令的结果作为第二个命令的输入以此类推
1
命令1 | 命令2 | 命令3
eg 由于/etc里面的文件很多 可以通过管道将列表结果传输到more显示
1
ls /etc | more
shell编程
创建和执行shell脚本
创建的格式
1
2#!bin/sh
echo hello world!
执行 1
1
2. hello.sh(假设刚刚创建的文件是这个)
且注意.之后跟空格执行2
1
2
3先赋予权限
chmod u+x hello
./hello.sh两种执行方式的区别
1
2. hello.sh其实是执行了source hello.sh 不会创建新的进程
./hello.sh则是执行了bash hello.sh 创建新的进程
分支选择结构
if
基本语法
1
2
3
4if 条件
then
命令
fi如果将if和then写在同一行 需要在then前面加;
1
2
3if 条件; then
命令
fi如果有两个分支,就可以使用if-else语句,格式为
1
2
3
4
5
6if 条件
then
命令1
else
命令2
fi
case-in
基本语法
1
2
3
4
5
6
7
8
9
10
11case 表达式 in
条件1)
命令1
;;
条件2)
命令2
;;
...
*)
命令n
esaceg
循环结构
while循环
基本语法
1
2
3
4while 条件
do
命令
done
until循环
考试
单选
20道
填空题
基础指令
简答题
基础指令
- 三道 加起来20分
编程题
单独做个脚本
两道 加起来20分
考察内容2-4
基础知识和课后习题部分
1
2
3
4
5
6
7
8#!bin/sh
index = `expr length ""$1"`
whle($index>0)
do
str = $str`expr substr "$1" $index 1`
index = $[$index-1]
done
具体内容
ls -l 第一个字母代表和后面三个字母代表
1
2
3
4-a 列出所有项目
-l 以列表形式写出文件
-R 用于递归列出子目录中的的内容
-d 只列出目录
cd 熟悉两种路径跳转 当前文件夹和上级文件夹
1
2
3cd .该级
cd ..上级
cd ~主目录root
新建文件和新建文件目录
1
2touch file
mkdir 文件名
删除文件 rm
1
rm 文件名
删除空的文件夹 rm dir
1
rmdir 文件夹
如果文件夹非空 rm
1
2rm -r
强制删除 实质是递归删除
分页指令 more、less
1
more 文件名
关机方法 shutdown halt 还有?
1
poweroff 断电
重启 reboot shutdown -r 还有
1
?
输出echo
l输入变量在脚本里read
通配符 字母数量未定用* 一个字母用? 代表a-j中间一个数 [a-j]
1
2ls /etc/???.conf 列出etc下面由三个字母构成的文件
ls /etc/[a-c]*.conf 列出etc下面由a-c其中一个字母开头的文件
命令后面加取地址符号& p48 代表放入后台执行
1
代表该指令放入后台执行
grep查找 文本的查找 使用通配符 开头^ 结尾$
1
2
3
4
5
6
7
8
9
10
11grep ‘查找内容’ 查找文件
grep -i ‘查找内容’ 查找文件
#可以忽视大小写 ignore
grep -e ‘查找内容’ 查找文件
#用表达式expression去反映查找的内容
grep -v ‘查找内容’ 查找文件
#显示不匹配的内容 versus
grep -n ‘查找内容’ 查找文件
#显示行号
grep -e '\(hello\)\{2,3\}' 搜索出现2-3次hello的那行
通过文件名查询文件 find +name -t 查找类型
1
输出重定向 > >>
1
参见笔记
管道 |
第四章p60脚本编程
1
参见笔记
x执行权限 chmod u+x file
默认bash 解释器 source解释器 区别
1
2bash 会创建新的进程
source 不会
变量代表输入参数的个数 $# 所有输入参数放到什么变量 第一个参数用什么表示
1
2
3命令行的参数个数$#
所有输出参数保留在$*
第一个参数用$1表示
变量的运算 数值类型和字符类型
1
参见笔记
数字的加减乘除 expr 注意*前面加 \ 转义
bc计算器
expr的好处是可以将结果赋值给其他变量·``
长度 、 抽取子字符串
p77 条件的判断
数字方面的a》b
1
2
3
4
5
6-eq =
-ge >=
-le <=
-gt >
-lt <
-ne ≠
字符串的比较 两个字符串是否相等 包括长度判断
1
2
3
4
5=
!=
<>
-n 长度是否大于0 是否为空
-z 长度是否=0
文件的判断 判断是否为文件 文件夹
以上都是单个
多个判断自己看
循环结构 for 依次输出五个单词等
1
2
3
4
5
6#!bin/sh
for(i=0;i<5;i++)
do
echo $i
donewhile
1
2
3
4
5
6#!bin/sh
while 条件
do
xxx
done
加两个(())等同于c的环境
用户管理 知道怎么新建更改删除用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25useradd 新增用户
选项:
-e 该选项后面给出的是日期参数
-c commit 该选项后面给出的是注释参数
-d directory 该选项后面给出的是路径参数
-g 该选项后面给出组群id或组群名称参数 用于指定用户所属的初始组群
-G 附加组群
-u 数字参数 指定uid
-r 说明创建的是系统用户
useradd -G study -u 1000 testuser
passwd -S testuser 查看用户密码状态
passwd testuser 修改testuser的密码
ctrl+d结束输入
usermod 修改用户账号设置
和useradd选项相同,新增一条:
-l 后面给出的是新用户名参数
usermod -c "user for test" testuser
usermod -l tuser testuser
userdel 删除命令
userdel -r tuser
包括用户组的
1
2
3groupadd
groupmod
groupdel
p102 切换到另外一个用户的命令 su
1
2su study
切换到study用户
文件管理第七章 当ls -l 哪个代表他的类型
1
2
3
4
5
6
7
8ls -l/xxx
- 普通文件
d 目录
c 字符设备文件(鼠标键盘
b 块设备文件block(硬盘
l 符号链接文件link
s 套接字
p 管道pipe
块状的设备文件 b
字符类型的 c
链接文件 l
一个是硬链接 一个是软连接的创建
1
2
3
4
5
6
7硬链接是目标文件的一个副本 软连接符号链接类似快捷方式记录文件所在路径
ln命令创建链接文件
默认创建硬链接
-s 创建符号链接
touch target
ln -s target symtarget
ls -l symtarget
文件权限 增加和减少权限
1
2
3
4
5
6
7
8
9
10
11
12rwx
r 4
w 2
x 1
read write execute执行
分三部分 文件所有者 属组组员 其他用户
eg
-rw-r--r--
root用户对其有可读可写权限 其他用户均只有可读权限
chmod u+x
针对三类人
1
root用户 属组用户 和其他用户
权限管理的两种模式 字母的数字的如何转换
1
第八章 硬盘的文件系统
开机的时候以哪一种文件格式去挂载盘ext4
系统盘是ext4
fat32是单个文件不能过4g
ntfs就可以
/etc/fstab p133
挂载一个硬盘的命令
1
2
3
4创建一个空节点
mkdir /mnt/usb
mount -t ext4 /dev/sda /mnt/usb
mount -t 类型 挂载区 挂载位置
卸载盘的命令
1
umount
挂载盘之前 格式化的命令
1
mkfs.ext3/dev/sdc1
普通使用的是什么格式 (linux下)
1
分区工具 p151 查询分区的具体信息的命令
1
fdisk -l
更改盘的分区命令
1
t
硬盘的配额限制命令
1
quotacheck
查看当前的盘 打开所有的配额功能 关闭配额功能 更改配额信息 更改配额信息的时候是哪两种配额 针对大小和针对信息的
1
2
3
4
5
6
7
8
9quotaon 打开全部配额功能
quotaoff 关闭配额功能
-u user
-g group组群
-v 详细信息
-a 全部扫描
-avug
quota 报告配额使用情况
repquota 报告
逻辑卷 为什么需要逻辑卷
1
四个1gb 形成一个4gb
怎么样建立一个逻辑卷 使得这个逻辑卷随时可以增加随时可以减少 三个步骤
1
2
3
4
5
6
7pvcreate xxx
将分区转换为物理卷
vgcreate juanzu xxx
指定物理卷用于卷组创建
lvcreate juanzu luojijuan
新建和删除的功能对应的指令
1