0,Linux历史
Linux诞生于1991年,创始人是 林纳斯.托瓦茨
Linux是一套免费使用且开源的类Unix操作系统。
UNIX系统是一个多用户,多任务的分时操作系统。
Linux可划分为四个部分:
Linux内核
GNU工具组件:
GNU由美国著名黑客 理查德·斯托曼发起的GUN project
GNU = GNU is Not Unix, 发行版权是copyleft
图形化桌面环境
应用软件
1,ubuntu 的安装
ubuntu是Linux的一个发行版本,很适合初学者学习。
(1)vmware tools安装
点击虚拟机->更新vmware tools
复制 VMwareTools-10.0.5-3228253.tar.gz 到家目录
cd ~
解压: sudo tar zxvf VMwareTools-10.0.5-322
cd vmware-tools-distrib/
sudo ./vmware-install.pl
等到返回命令行==>vmware tools安装成功了
我们就可以设置共享文件夹啦:linux与windows共享的文件夹
虚拟机(M)->设置(s)->选项->共享文件夹
cd /mnt/hgfs/
hgfs: Host Guest File Share
(2)配置网络
1.虚拟机(M)->设置(S)->硬件->网络适配器->
桥连接模式,把复制物理网络连接状态打勾
2,以太网设置(ethernet network)
Edit Connections -> Edit -> IPV4setting -> Method:DHCP
ping www.baidu.com 测试是否可以连接外网
ifconfig 查看自己的网络信息
2,APT(Advanced Packging Tool)
ubuntu中功能最强大的命令行软件包管理工具,用于获取、安装、
编译、卸载和查询软件包,以及检查软件包的依赖关系。
工作原理:
/etc/apt/sourcse.list
该文件内容为ubuntu软件源服务器地址
cat sources.list 查看文件内容看是不是163的镜像地址
如果不是怎么办呢?
cd /etc/apt
sudo mv sources.list sources.list.bak 修改源文件名字
cd /mnt/hgfs/share
sudo cp sources.list /etc/apt/ 把sourcse.list复制到该文件夹
APT命令:
apt-get:用于管理软件包,包括安装、卸载、升级操作
apt-cache:用于查询软件包
apt-proxy:用于搭建APT代理服务器
apt-show-versions:用于显示系统中软件包的版本信息
apt-config:用于读取APT配置文件的简单工具
apt-cdrom:用于将CD-ROM加入到软件源配置文件
(1)apt-get 用法
apt-get subcommands pkgname
子命令 特定包名
subcommands:
update:下载更新软件包列表信息
/etc/apt/sources.list文件只是列出来服务器的地址,
至于服务器上到底有哪些软件,我们事先不知道。这时
我们就可以用命令apt-get update,来下载服务器上有的
软件包的列表信息。
eg: sudo apt-get update
upgrade:将系统中所有软件包升级到最新版本
eg: sudo apt-get upgrade
install:安装。下载所需软件包并进行安装配置。
eg: sudo apt-get install vim
eg: sudo apt-get install ibus-googlepinyin
remove: 卸载软件包
eg: sudo apt-get remove ibus-googlepinyin
autoremove:将不满足依赖关系的软件包自动卸载
eg: sudo apt-get autoremove
source:源代码。下载某个安装包的源代码。
eg: sudo apt-get source vim
clean:删除缓冲区所有已经下载的包文件
eg: sudo apt-get clean
autoclean:删除缓存区中老版本的已经下载的包文件
eg: sudo apt-get autoclean
check:检查系统中依赖关系的完整性。
(2) apt-cache命令 完成查询软件源和软件包的相关信息
apt-cache subcommands pkgname
子命令 特定包名
subcommands:
search: 根据正则表达式检索软件包
eg: sudo apt-cache search sougou
showpkg/show: 获取软件包的常规描述信息
eg: sudo apt-cache show vim
showsrc:获取源码包的详细描述信息
eg: sudo apt-cache showsrc vim
depends:获取该软件包的依赖信息
eg: sudo apt-cache depends vim
pkgnames:列出所有已经安装的软件包的名字
eg: sudo apt-cache pkgnames
stats: 获取软件包的统计信息
eg: sudo apt-cache stats
3, vim
vim 是vi的改进版本
vi/vim是unix/linux中最基本、最常用、功能最强大的文本编辑器。
vi/vim有两种模式
编辑模式:键盘上所有输入的字符都当成文本内容
命令模式:键盘上所有输入的字符都当成命令
当进入vim时,默认是命令模式
vim 1.c
命令模式->编辑模式
i: insert 进入编辑模式后,光标不动
I: insert 进入编辑模式后,光标移动到本行行首
o: open 向下开路。在光标的下一行,新开一行
O: open 向上开路。在光标的上一行,新开一行
a: append 追尾。进入编辑模式后,光标向后移动一个字符
A: append 追尾。进入编辑模式后,光标移动到行尾。
编辑模式->命令模式 Esc
vim的退出命令
:q (quit)不保存退出(若修改过文件内容则会询问是否保存)
:q! (quit) 不保存强制退出
:w (write) 保存
:w filename 保存内容到指定的文件名(另存为,会拷贝新建一个文件)
:wq 保存并退出
:x 保存并退出
vim的删除与修改命令
x: 删除光标所在的字符
dd: delete 删除光标所在的行,并把删除的内容保存在剪切板里
ndd: n表示一个数字,删除包括光标所在的n行
r: replace 替换光标所在的单个字符
R: replace 替换光标及后面的多个字符(按Esc退出替换模式)
vim的拷贝和粘贴命令
yy: 把当前的内容拷贝到剪切板中
nyy把包括光标所在的n行的内容拷贝到剪切板中
p: paste 将剪切板中的内容粘贴在光标的所在的行的后面
P:paste 将剪切板中的内容粘贴在光标的所在的行的前面
vim撤销命令
u :undo
vim 分屏命令
:sp filename 上下分割,并打开filename文件
:vsp filename 左右分割,并打开filename文件
ctrl+ww 切换窗口
vim 搜索命令
/pattern
eg: /abc
n: 跳转到下一个搜索结果
N:跳转到上一个搜索结果
vim 光标移动命令
:set nu 显示行号
:set nonu 取消显示行号
:行号 把光标跳转到特定的行
:$ 跳转到文件的最后一行
j: 移动下一行
k: 移动上一行
h: 左移一个字符
l: 右移一个字符
vim 挂起操作
ctrl+z 挂起
fg 返回
4,查看Linux说明手册(manual)
eg: man 3 printf //查看printf的库调用相关说明
man -f printf //查看关于printf有哪些章的内容
man手册总共有9章,按q退出
1 - commands 命令
2 - system calls 系统调用
3 - library calls 库调用
4 - special files 特殊文件
5 - file formats and convertions 文件格式与其变化
6 - games for linux 游戏
7 - macro packages and conventions 宏指令数据包和协议
8 - system management commands 系统管理命令
9 - 其它
5,基本的系统维护命令
sync 同步,把缓冲区数据写入文件
shutdown 关机
shutdown -h 0 立即关机
reboot 重启
passwd [用户名] 修改密码
su username 切换用户
sudo -s 进入root用户
普通用户获取管理员权限 sudo
exit 退出用户或者终端
clear 清屏
echo "string" 在标准输出设备(终端)显示字符串
date 输出当前的日期
` ` 反撇号(TAB上面)。里面加一个命令,表示引用命令的输出结果
echo date
echo `date`
TAB键 命令自动补全
上下方向键 调出执行过的命令
6,用户管理
/etc/passwd 用户信息管理文件
用户名:密码:用户ID(UID):用户组ID(GID):用户组目录:用户shell
/etc/group: 用户组的信息管理文件,在UNIX下面用分组来管理用户
用户组名:密码:GID号:成员列表
这里组名是创建这个组的用户(组长)的名字
GID是创建这个组的用户(组长)的ID
adduser username 创建一个普通用户
userdel username 删除一个用户
7,进程管理 process
ps: process status 查看进程的状态信息
-e : every 每一个
-f :full 全部的
ps -ef 查看每一个进程的全部信息
每个进程的信息都保存在一个文件目录中
/proc/$PID/
kill : 杀死一个进程
kill -9 $PID 必杀
top : 以CPU占用率来实时排名
8,Linux文件系统
Linux文件系统的组织形式:树状
绝对路径:以"/"(根目录)开头的路径,叫绝对路径
相对路径:不以"/"(根目录)开头的路径,叫相对路径
★相对路径是以当前路径为参照的。系统在查找文件时,
本质上都是以绝对路径去查找。用相对路径时,是把
当前路径与相对路径合成绝对路径再查找。
pwd: 显示当前路径。
cd: change directory
cd /home/gec
每个目录下面都会有两个特殊的隐藏目录
. 表示当前目录
.. 表示上一层目录
cd .. 返回上一层目录
cd - 返回上一次目录
./程序名 运行该程序
ls: list status 把某个文件(包括目录)的状态信息给列出来
ls [options] [文件名/目录名]
options:
-a : all,把所有的文件都列出来
在linux下面,以.开头的文件,视为隐藏文件
-l : 把文件的详细信息列出来
例子:
-rw-rw-r-- 1 gec gec 56 Feb 6 11:22 1.c
第一个字符表示文件类型:
-:普通文件(regular file),ASCII文本文件,二进制文件
d:directory目录(文件夹)
b:block 块设备文件(任意顺序进行访问,以块为单位访问,如硬盘)
c:char 字符设备文件(串行顺序依次访问,如鼠标,屏幕)
l:link 符号链接文件,指向另外一个文件
p:pipe 管道文件
s:socket 套接字文件
后面九个字符rwx表示文件对不同对象的权限
r: read 读的权限
w: write 写的权限
x: excute 可执行权限,对目录可执行,表示可以进入目录
-:没有对应的权限
分三组
owner/group/other
1: 硬链接数
gec gec 该文件的属主和属主所在的组
56:文件的大小,单位是字节
Feb 6 11:22 文件最近的修改时间
1.c 文件名
chmod: change mode 改变文件的模式(权限)
chmod 权限 文件名
权限的指定有两种方式:
(1) u/g/o/a +/- r/w/x
chmod u+x a.out
(2) 以八进制的形式表示权限位
chmod 0777 1.c
chmod 0664 1.txt
chown: change owner 改变文件属主
chown root:root test.txt
新属主:新组
rm: remove 移除,删除
rm [options] DEST
DEST:要删除的目标,即可以是普通文件,也可以是目录
options:
-r: recursive(递归),若DEST是目录文件,必须要用
递归删除。
-f: force(强制)。非交互模式删除
交互模式:在正式删除之前会询问用户是否确定要删除
非交互模式:不询问用户是否确定删除
rm -rf Music/ 输出Music这个目录
cp: copy
cp [options] SOURCE DEST
SOURCE:源文件。即可以是普通文件,也可以是目录
DEST:目标文件。即可以是普通文件,也可以是目录
options:
-r: recursive(递归),若DEST是目录文件,必须要用
递归删除。
-f: force(强制)。非交互模式
cp 1.c Music/
cp 1.c Music/2.c
cp -rf ./Music1/ /home/gec/test/
mv: move 移动(即可以是普通文件,也可以是目录)
mv SOURCE DEST
把SOURCE移动到DEST中去
eg: mv 1.txt 2.txt //把1.txt改名为2.txt
mkdir :make directory 创建一个空目录
mkdir Music/
mkdir -p /home/gec/xx/1/
-p:parent 创建目录时,如果父目录不存在,则一并创建
rmdir :remove directory 删除一个空目录
touch filname: 创建一个空的普通文件
file filename:查看一个文件的格式。在UNIX里,文件扩展名不决定
文件的格式
显示文本文件内容
cat 把文本文件的内容全部一次性打印到终端屏幕上。
more 分屏显示一个文本文件的内容,按Enter一行一行的显示,
空格键一屏一屏的显示,按q退出。
less 分屏显示一个文本文件的内容,方向键上/下,按q退出
head -num 显示文件前num行
tail -num 显示文件末尾num行
创建链接文件
硬链接
ln target link_name
软链接(符号链接)
ln -s target link_name
硬链接文件都指向同一个inode结点,删除一个硬链接文件,
并不影响其他有相同inode号的文件(删除的本质是断链接)。
软链接文件的内容其实保存的是其链接的文件的路径名
文件的压缩与解压
文件的压缩实质上分为归档和压缩两个过程
归档文件: 将一组文件或目录打包到一个文件中去。
tar [options] tarfile filelist
-c create 创建一个归档文件
-f file 指定归档文件的名字
-x extract 释放一个归档文件
eg:
tar -cf 1.tar 1.txt 2.txt 3.txt //归档
tar -xf 1.tar //释放
压缩文件:将一个文件进行压缩
a.压缩 gzip xx ==> xx.gz
解压 gunzip xx.gz ==> xx
b.压缩 bzip2 xx ==> xx.bz2
解压 bunzip2 xx.bz2 ==> xx
我们可以一步完成归档和压缩
tar [options] tarfile filelist
-c create 创建一个归档文件
-f file 指定归档文件的名字
-x extract 释放一个归档文件
-v 显示归档或释放的过程信息
-z 由tar生成归档文件,然后由gzip压缩
-j 由tar生成归档文件,然后由bzip2压缩
eg: 压缩
tar -zcvf mp3.tar.gz 1.mp3 2.mp3 3.mp3
tar -jcvf mp3.tar.bz2 1.mp3 2.mp3 3.mp3
解压
tar -vxf mp3.tar.gz -C 解压目标目录
tar -vxf mp3.tar.bz2 -C 解压目标目录