Linux0基础入门学习

开发环境:

VirtualBox 虚拟机工具 开源免费
Ubuntu 12.04 LTS 长期支持版本 稳定
vim 代码编辑器
gcc 编译器

Linux系统简介:

BCPL->newB->C->UNIX->Minix->Linux
Linux管理硬盘的能力非常强,所以我们看到的只有一个分区
/ 根目录,所有的文件都储存在它下面
/bin 储存系统命令    
/dev 设备文件  (一切皆文件) 
/media 多媒体目录、U盘、光驱、共享文件夹
/var 储存系统日志
/boot 储存与启动相关的文件   
/etc 储存各种软件的配置文件   	
/lib 储存普通的库文件 .a静态库 .os 共享库         
/mnt 与其他系统进行映射的目录   
/root 储存着超级用户才能使用的系统文件
/home 用户主目录,会自动生成同名的用户主目录
/opt 安装的应用的软件
/run 是一个临时的文件系统   
/usr 储存头文件

.  当前目录
.. 上一级目录
~ 用户主目录  cd

注意:Linux目录结构是树形,目录的切换只能上下,不能左右

绝对路径和相对路径:
绝对路径:从根目录开始描述一个位置
相对路径:从当前位置(工作目录)开始描述一个位置

Linux系统命令:

常用命令:

ls	显示当前目录下有哪些文件
	-a 显示隐藏文件,以 . 开头的都是隐藏文件 ,Ctrl+h
	-l 显示文件的详细信息
cd	进入一个目录
clear	清理屏幕	Ctrl+l
pwd	显示当前所在位置
whoami	显示当前用户名

文件相关的命令:

注意:不是所有的功能都有对应的命令
touch filename	创建文件(不存在则创建)
rm filename 	删除文件,不经过回收站直接删除,要慎重
cat/more/head/tail	查看文件
	cat 会把文件的所有内容都显示在终端上,适合查看内容较少的文件
	more 显示文件的开头,回车下一行,空格下一页,q退出查看
	head 只显示文件开头10行
	tail   只显示文件末尾10行
cp src dest 复制文件
mv src dest 移动文件,也具备重命名的功能

目录相关的命令:

mkdir 创建目录
	-p 可以创建多级目录
rmdir 删除目录,只能删除空目录
	rm -rf 删除非空目录  
cp -rf 复制目录
mv 移动目录、重名目录

网络相关的命令:

ifconfig 查看网络配置
	windows下查看是ipconfig
	sudo ifconfig ethn 192.168.0.xxx netmask 255.255.255.xxx
	sudo ifconfig eth0 down 禁用网卡
	sudo ifconfig eth0 up     启动网卡
ping ip地址/网址  测试网络是否连通
	ping 127.0.0.1 也叫做本机地址,可以用来测试网卡是否正常工作(禁用网卡,也能连通,就算正常)
	Linux默认一直ping,Ctrl+c结束
	Windows默认ping4次,/t 连续测试,Ctrl+c结束
ftp ip地址,然后输入用户名和密码
	ls 显示当前所处服务器有哪些文件
	pwd 显示服务器上的工作路径
	cd 切换所在服务器的工作路径
	get 下载文件
	put 上传文件
	bye 退出
	采用明码方式传输数据,不够安全,有被窃听的风险,一般公司内部使用
telent ip地址,输入用户名和密码
	远程登录一台服务器进行使用
	采用明码方式传输数据,不够安全,有被窃听的风险,一般公司内部使用	
ssh 用户名@ip地址,然后输入密码
	采用加密方式传输,因此比较安全
	exit退出服务器

其他相关命令:

tar 压缩/解压文件
	-zcvf 包名 要压缩的目录,创建压缩包
	-zxvf 包名 解压
chmod 修改文件权限
	chmod mmm 文件名 chmod 774 filename
		m = r(4) + w(2) + x(1)   0~7
	chmod +/-rwx 文件名 所有用户一起改
	目录必须要有执行权限才能访问	
find 位置 条件 查询文件
	find / -name stdio.h
grep "关键字" 文件名 过滤
	grep "printf" stdio.h

重启系统:sudo reboot
关机:       sudo init 0
更新软件源:sudo apt-get update
更新系统:   sudo apt-get upgrade

man key 查询帮助手册
	分章节管理内容
	1、系统命令
	2、系统函数
	3、标准库函数
	q键退出

Ubuntu系统使用的小技巧:

Ctrl+l 清屏
tab 自动补全命令或者文件名
up/down 调出命令执行记录
Ctrl+alt+t 快速打开终端
Ctrl+shift+t 新建终端标签页
Ctrl+alt+方向键 切换工作区
Alt+Tab 切换程序

重定向、管道和通配符:

重定向:把命令的执行结果写入到文件中
cmd > filename 如果文件存在则清空后写入,文件不存在则创建后写入
cmd >>filename 如果文件存在则追加写入,文件不存在则创建写入
管道:相当于一根管子连通两个命令,一个命令的执行结果当做另一个命令的数据源
find / | grep "key" 查询所有文件命中含有key的文件
通配符:可以进行模糊执行命令
?:代表任意的一个字符
*  :代表任意的多个字符  【rm -rf /*】

终端的配置文件:

打开终端配置文件 gedit ~/.bashrc ,在末尾另起一行添加
# 精简命令提示符
PS1='\u@\w\$ '

# 新建目录并进入
mk()
{
	mkdir $1 && cd $1
}
保存退出,命令输入
source ~/.bashrc 重新加载配置文件,使修改生效

简单的脚本:

脚本:由系统命令组成的带执行权限的文本文件,执行脚本文件时会被命令解释器读取并执行
新建脚本文件 .sh结尾
chmod +x filename
./filename

打字练习软件:typespeed

sudo apt-get install typespeed
注意:窗口必须至少80*24

vim文本编辑器:

可在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以升级(二次发开),可以扩展(安装插件)。
基本用法:
	进入vim:vim filename 文件存在则打开,不存在则创建
	输入i:进入编辑模式,编辑代码
	保存退出:按Esc键退出编辑模式,输入ZZ保存退出

vim三大模式:

	正常模式:一般用来阅读文件,或者使用快捷键快速地修改文件
	插入模式:一般用于编辑文件,输入内容
	行底模式:一般用于对vim进行配置,或者执行一些高级操作
模式切换:
	正常  输入i ->  插入
	插入  Esc   ->  正常
	正常  输入: ->  行底
	行底  Esc    -> 正常

正常模式下的常用操作:

光标移动:
	h左、j下、k上、l右
	gg 光标跳转到第一行
	G   光标跳转到最后一行
	n加回车  光标向下跳转n行	
	n-          光标向上跳转n行
	nG        光标跳转到第n行
	vim filename +n 直接进入该文件的第n行
	home 光标跳转到行首
	end    光标跳转到行尾
	PgUp 向上翻一页
	PgDn 向下翻一页
删除代码:
	x 删除一个字符
	nx 删除n个字符
	dw/de 删除一个连续的字符串,区别是删不删空格
	d$ 从当前光标处删除到行尾
	d^ 从当前光标处删除到行首
	dd 删除一行
	ndd 删除n行
	dG 从当前光标处删除到末尾
	dgg/d1G 从当前光标处删除到开头
	
复制代码:
	yy 复制一行
	nyy 复制n行
	p 粘贴在光标的下面
	P 粘贴在光标的上面
移动代码:
	删除的内容还储存在缓冲区,可以使用p\P粘贴,实现移动代码的效果
替换代码:
	r 替换一个字符
	cw 替换一个单词
	R 进入替换模式
	xp 实现调换两个字符的顺序
撤销操作:
	u 撤销上一次操作
	U 撤销一行的所有操作
	Ctrl+r 取消撤销操作

插入模式:

	i 在当前光标前进入插入模式
	I 光标跳转到行首,进入插入模式
	a 在当前光标后进入插入模式
	A 光标跳转到行尾,进入插入模式
	o 在当前行的下面插入一个空白行,进入插入模式
	O 在当前行的上面插入一个空白行,进入插入模式
插入模式下的操作:
	Ctrl+p 自动补全,去变量名、函数名时尽量开头不同
	Ctrl+i 自动缩进,相当于Tab键功能
	Ctrl+j/m 相当于回车功能
	Ctrl+c 相当于Esc功能

自定义模式:
	Ctrl+z 保存退出 任何模式都进行
	Ctrl+x 保存并编译代码,然后输出结果

行底模式下操作:

	w 写入
	q 退出
	wq 保存退出
	q! 强制退出
	x 保存退出
	X 加密,set key= ,删除密码,注意:wq保存退出才生效
	!cmd 执行系统命令
	/key 查询命令,n往下查询,N往上查询
	%s/old/new  全部替换
	set nu 显示行号
	set nonu 隐藏行号
	>n n行代码向右缩进
	<n n行代码向左缩进
	注意:在行底模式下对vim的设置只是临时有效,如果想要长期有效,
	需要把这些设置语句写入到配置文件中(~/.vimrc)

	对vim的配置:vim ~/.vimrc

对vim的学习:
	1、适可而止
	2、需要适应一段时间,大概两周时间
	3、Ubuntu 系统自带的vim教程 vimtutor

附页

set number

" 设置Tab键的宽度
set tabstop=4

" 设置自动缩进
set autoindent

" 设置智能缩进
set smartindent

" 设置不备份
set nobackup

" 设置不产生临时文件
set noswapfile

" 在插入模式下快速地返回正常模式
imap jj <ESC>

" 定义保存退出函数
func! SaveExit()
	exec "wq"
endfunc

" 映射Ctrl+z键调用保存退出函数
map <C-z> :call SaveExit()<CR>
imap <C-z> <ESC> :call SaveExit()<CR>
vmap <C-z> <ESC> :call SaveExit()<CR>

" 定义保存编译并执行代码函数
func! ComplieCode()
	exec "w"
	if &filetype == "c"
			exec "!gcc % && ./a.out"
	endif
endfunc

" 映射Ctrl+x键调用编译并执行函数
map <C-x> :call ComplieCode()<CR>
imap <C-x> <ESC> :call ComplieCode()<CR>
vmap <C-x> <ESC> :call ComplieCode()<CR>

" 定义添加头文件和Main函数
func! InsertMain()
	if &filetype == "c"
			call setline(1,"#include <stdio.h>")
			call setline(2,"")
			call setline(3,"int main(int argc,const char* argv[])")
			call setline(4,"{")
			call setline(5,"\t")
			call setline(6,"}")
			exec "5"
		endif
endfunc
map <C-p> :call InsertMain()<CR>

猜你喜欢

转载自blog.csdn.net/weixin_50901683/article/details/109014861