1 操作系统
操作系统分为系统内核(kenel)和外壳(shell),其中内核是操作系统的核心部分,它由操作系统中管理存储器,文件,外设和系统资源的那部分组成。内核通常运行进程并提供进程间通信(ipc)的机制。
2 shell
它是接收用户命令,然后调用相应的应用程序的“提供使用界面”的软件(命令解析器)。作为命令语言,它交互式解释和执行用户输入的命令或者自动的解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
3 shell的类型
1.BourneShell:提示符是“#”为根用户,普通用户是“$”;下个版本是bash
2.C Shell: 类似C编程语言,不兼容BournShell语法,tcsh是csh的增强,完全兼容;提示符是“#”为根用户,普通用户使用“%”
测试环境:Ubuntu13.10初始shell:bash
4文件系统
简单了解目录与子目录的概念即可
4.1查看用户账户文件
more /etc/passwd --用户信息文件
more /etc/shadow –用户密码文件(已加密)
more /etc/group --用户组配置文件
5 Unix(Linux)常用命令
Unix/Linux下区分大小写,命令格式为:命令 [-选项] [参数]
选项,参数为可选,中间以空格隔开
clear – 清屏
pwd – 打印当前路径
cd – 改变路经
特殊路径:/ :根目录
.. :上一级目录
. : 当前目录
~:用户主目录
ls – 显示内容-a(显示全部内容,包括隐藏文件) -l(详细形式显示)
d rwx r-x r-x 22 root root 4096 1月 25 20:16 .
1 2 3 4 5 6 7 8 9 10 11
1:文件类型:目录(“d”) 普通文件(“-”) 链接文件(“l”)
2:文件拥有者对文件的操作权限:r(读) w(写) x(执行) -(无对应操作)
3: 同组者对文件的操作权限
4:其他人对文件的操作权限
5:文件的硬链接数(详见-ln命令)
6:文件拥有者
7:文件的属组
8:文件的大小(byte)
9: 最后修改时间
10:文件名
注:w—写权限,对目录来说可生成、删除文件和子目录 x—执行权限,对目录来说,可查找该目录下的内容。2—u(用有者,权限最高) 3—g(同组人) 4—o(其他人)
chmod—修改权限
1 符号模式 chmod u+w filename 或 chmod a+x filename
2绝对模式 chmod 777 filename 或 chmod 421 filename
4 – 读 2 –写 1 – 执行 三位八进制组合
touch – 创建文件
mkdir – 创建文件目录 -p(创建多层目录)
cp – 文件拷贝命令
cp ./a.txt ~/
mv –文件移动命令(也可用于重命名)
rm/rmdir –删除命令
rm 用于删除文件
rmdir删除文件夹;但是一般使用rm-r删除文件夹及其子文件和子文件夹
ln – 创建链接
ln a.txt b –创建硬链接 ln -s a.txt c --创建软链接
硬链接&软链接:
硬链接本质上是硬盘文件数据的另一个访问路径,删掉原文件a.txt,系统关闭了a.txt对磁盘文件数据的访问路径,不影响硬链接b,而软链接里面只保存了目标文件的位置,当删除目标文件时,软链接文件也失去了访问磁盘数据的通路。
cat more head tail – 文件查看命令
cat – 适合小文件
more – 适合大文件,全部内容查看,回车下一行,空格下一屏,q退出
head/tail – 查看文件的头或尾的几行
/var/log/dmesg – 保存了系统启动过程中内核打印的信息
find – 文件查找命令find 目录条件 [处理命令]
find . -name ".cpp"
-name 按照文件名查找
-mtime 按照文件的更改时间来查找 -n 更改时间距现在n天内+n更改时间据现在n天
-type 按照文件类型查找:b-块设备文件d-目录c-字符设备文件p-管道文件l-符号链接文件f-普通文件
-depth 查找当前目录,然后查找子目录
更多指令man find
find . -name".c" -exec cp{}d6\;把找到的文件复制到d6目录下
exec表示切换,如exec sh切换到sh shell
{}表示前者找到的文件\;表示就用这个字符本身,不用这个字符的特殊含义,也相当于";"
grep – 内容查找命令
命令的选项:
-n(数字):显示匹配行上下n行
-c(count): 打印匹配的行数,不打印内容
-i(ignore):忽略大小写
ps – 查看进程-f(full)
kill – kill任务编号 通过发信号让进程终止
kill %任务编号 终止后台某个任务
su – 切换用户
passwd – 修改密码
文件通配符:*匹配任意多个字符?匹配一个任意字符[]匹配一个范围内字符 正则表达式
输入输出重定向:
输出重定向文件&键盘输入改为文件输入:
追加重定向:
| – 管道符:将一个命令的输入作为下一个命令的输入
ps命令
ps -l
s表示睡眠状态,等待时间片
r执行状态
T挂起状态,不等时间片,不需要时间片,啥都不干
Z状态,表示结束了没回收
& – 后台运行
jobs – 查看后台任务
Ctrl+Z 将程序后台并挂起
fg [n] – 把带+的任务调到前台来执行
bg[n] – bg把暂停的后台任务放到后台执行起来,默认是+的任务
who 查看哪些用户在使用主机
who am i 查看自己是哪个用户
w命令相当于whowhere when what
history显示你用过的命令
.bash_history就是存放以前用过的命令的文件
du磁盘使用情况du -h -s使用空间总和
df 剩余多少空间 df -h
' '单引号括起来的命令,会把命令结果输出来
env显示环境变量
echo $PS1 PS1用来指示命令提示符
echo $PATH shell通过这些目录找可执行文件
alias c=clear alias给命令起别名
which/whereis
history – 命令历史
;– 命令分隔符:分隔多个命令
\ – 续行符
注意:修改PATH变量,编辑~/.profile文件(本用户生效),最后添加export PATH=$PATH: .(要添加的路径),最后终端输入source~/.profile,重新加载文件。若对所有用户修改,则编辑/etc/.profile
6 vi/vim基础指令
a.两种命令模式:
从命令进入到插入状态ia o
插入返回到命令状态Esc键
b.退出:
:q!回车 强制退出,不保存
:wq=:x 保存退出
ZZ也是保存退出
:w 文件名字 另存为:新文件
c.移动光标:
移动到行首0行尾shilft+4
移动到屏幕的行首:H末尾L屏幕中间M
翻页ctrl+f后退ctrl+b
想要到某一行去:用:+行号 或者行号+G
w移动下一个单词的开头b上一个单词的开头e下一个单词的末尾
d.插入:
i a o insert
i是正规的从命令模式进入插入模式,在光标位置前面插入
insert是命令,插入,覆盖之间的转换
a原来光标位置后面插入
o在光标位置下面重启一行,不会截断原来的行
I 在行首插入
A 在行尾追加
O 在光标位置上面插入空行
e.行号:
: set nu显示行号在左边
: set nonu取消行号
f.删除
插入模式下用delete,Backspace键
命令模式下删除:x 3+x删除3个字符
dw删除到下一个单词的开头,删除到本单词的结尾de
删除到本单词的开头db
dd删除一整行3dd删除3行,删除从光标位置到行尾d$,删除到行首d0
:9,16删除第9到16行
恢复:u命令p,4p重复插入4分,粘贴在光标位置之后
P粘贴在光标位置之前,p在后面粘贴
g.移动
:8,11m18从第8行到11行移动到第18行后面
dd剪贴(删除)一行,3dd剪贴3行,p粘帖
h.复制
:8,11co18
3yl复制3个字符,p
yw复制一个单词(带末尾的空格),ye不带末尾的空格
yy复制一行,复制3行,3yy
i.替换
r+替换内容,4r替换4个字符
s把一个字符换成多个字符
cw替换整个单词cw ce
cc替换一整行c0 c$
:5,8s/wf/妻子/g 5到8行把所有的wf替换成妻子,g表示全部
全文替换:ctrl+g得到这个文件多少行
:1,38s/wf/妻子/g
也可以::1,$s/wf/妻子/g $表示最后一行
:%s/wf/妻子/g %表示从第一个到最后一行
j. ~可以把大写换成小写,小写换成大写
k.查找
/a 查找当前光标所在位置后面的a
?q 查找当前光标所在位置前面的q字符