Tap:命令补全,文件命令补全
ctrl+c:终止正在运行的程序
硬实时与软实时:
硬实时系统有一个刚性的,不可改变的时间限制,
它不允许任何超出时限的错误。软实时的时限柔
性灵活,可以容忍偶然的超时错误。
两者最关键的差别在于,软实时只能提供统计意
义上的实时。例如,用户操作DVD时,只要98%的
情况能正常播放用户可能就满意了。
linux常用命令:
1.mkdir +目录名(创建新的目录)
mkdir /home/work
在/home目录下创建work目录
mkdir -p:创建目录(级连创建)
mkdir -p d2/d22(一步创建d2下面的d22)
2.cd +目录名(进入新的目录)
cd /home
进入home目录
cd ..
返回上一级目录
cd ../..:
返回两级菜单
3.ls 【选项】目录名
ls /home
显示home目录下的文件与目录,不包含隐藏文件
ls -a /home
显示/home目录下的文件与目录,包含隐藏文件
ls -l /home (可缩写为 ll )
显示/home目录下的文件与目录的详细信息】
ls -R /home
子目录递归显示
4.touch[文件】 文件名
touch hello.c
在/home目录下创建hello.c文件
5.pwd
显示当前目录的绝对路径
6.复制文件/目录 cp
cp[选项】 源文件 目标文件/目录
cp /home/hello.c /tmp
把/home/hello.c拷贝到/tmp目录下
cp -r /home/dir /tmp
把/home/dir,目录下的内容拷贝到/tmp目录下
cp -r:复制一个目录到另一个
cp -r testsubdir/ bakdir
cp 01.c 02.c
cp 01.c ../
(cp 01.c ../ -i:覆盖时交互提示)
cp 01.c 02.c ../:同时复制两个文件到上一级
cp 01.c /home/linux
cp 01.c ../02.c:将01.c复制到上一级中新建的02.c中去
7. 移动或更名 mv
mv [选项] 源文件或目录 目标文件或目录
mv /home/tt /home/tt1
将home目录下的tt文件更名为tt1
mv /home/tt /tmp
将/home目录下的tt移动到/tmp目录下
mv 01.c ../ 移动
mv test2.c test_second.c 更名
mv test3.c ../test_three.c 移动并更名
8. 删除 rm
rm【选项】 文件或目录
rm /home/tt
删除/home目录下的 tt文件
rm -r /home/tt
删除/home目录下的tt目录
rm -r:删除目录下的目录
rm -r bakdir/
(rm test3.c -i:删除时交互提醒)
rm -rf *.o:删除所有以 .o 结尾的文件
9.改变文件权限 chmod
chmod [who] +/-=【mode】文件名
r w x
1 1 1
0 0 0
1能 0不能
chmod 444 tt
tt文件设为可读
10.插入快捷方式 ln
ln [选项】 文件名 链接名
ln -sf hello.c 22
将22作为快捷方式插入hello.c文件
11.查看目录大小 du
du [选项】目录
du -b /home
以字节为单位显示/home这个目录的大小
df -k
以KB为单位显示磁盘使用情况
12.查找文件 find
find 路径 -name ‘文件名’
find / -name hello.c
查找根目录下的hello.c的文件
find ./ -name ‘hel*’
在当前目录及其子目录中寻找名为hel开头的文件
find ./ -name ‘hello.c’
在当前目录及其子目录中寻找名为hello.c的文件
find /mnt/hgfs/share-2/ -name msg2.c
在/mnt/hgfs/share-2 目录下寻找名为msg2.c的文件
13.网络配置 ifconfig
ifconfig eth0 192.168.0.1
配置eh0这一网卡 ip地址为192.168.0.1
14.帮助 man
man 命令名
man ping
查看ping的使用方法
man 1 (+命令) 例如: man 1 ls
man 2 (+系统调用) man 2 open
man 3 (+库函数) man 3 strcpy
15.打包与压缩
tar [选项】目录或文件
tar cvf tmp.tar /home/tt
将目录下所有文件或目录打包成tmp.tar文件
tar xvf tmp.tar
将打包文件在当前目录下解开
tar cvzf tmp.tar.gz /home/ddd
将/home/ddd目录下的所有文件和目录打包并压缩成一个tmp.tar.gz文件
tar xvzf tmp.tar.gz
将打包压缩文件tmp.tar.gz在当前目录下解开
16.查看文件 cat
cat hello.c
查看hello.c文件
cat 01.c:将程序显示出来
cat -s 01.c:多个空行合并成一个空行显示
cat -b 01.c:加行号显示(nl 01.c与之等同)
17.压缩解压 gzip
gzip [选项】文件名
gzip /root/a.cfg
压缩文件
gzip -d /root/a,cfg.gz
解压文件
bzip2 /root/anaconda-ks.cfg
压缩文件
bzip2 –d /root/anaconda-ks.cfg.bz2
解压文件
---------------------
ctrl+l: 清屏
pip install bzip: 安装库
bzip: 解压文件
mount: 查看磁盘文件
grep: 查找字符串
ps -elf: 查看当前运行进程
ps -elf|grep test: 抓取名为test的进程
Ctrl+z: 将进程切换至后台,同时获取了终端的使用权
fg: 与上一个Ctrl+z 匹配,将之前切至后台的终端再切换回来
kill -9 test: 杀死名为test的进程
free: 查看内存
grep “hello ”
在当前目录及其子目录中,查找包含hello字符串的文件
ping +IP地址: 检查网络是否连通
top: 挂起
useradd: 用户添加
userdel: 删除用户
passwd: 修改密码
su: 切换用户
sudo: 超级用户
ln -s source filename:
创建source文件的软链接target(目的地址
ln source target:
创建source文件的硬链接target
touch 01.c 新建c文件 w!—强制保存退出
vim 01.c 新建并编辑文件 (esc,:wq—退出界面)
gcc 01.c 编译文件
head 01.c:默认显示前10行程序
head -(x) 01.c:显示前(x)行程序
tail 01.c:默认显示后10行程序
tail -(x) 01.c:显示后(x)行程序
vi3个模式:插入模式(INSERT),
命令行~(刚进入时的模式,按i开始编程),
底行~(光标在底部,保存并退出时用)
命令:
(n)x, 从光标位置的连续n个字符被剪切
(n)dd, 从光标位置的连续n行被剪切
u,撤销
(n)yy,从光标位置的连续n行被复制
p或P: 粘贴到下面或上面
vi的保存与退出
Esc, 进入命令行状态
:wq=:x,保存并退出
:q!, 强制退出
:w, 随手保存
:w test1.c,先保存一份备份(不退出)
:!pwd, 查找文件所在路径
:!data,查看时间
:r head.h,录入.h文件
进入文件后
i, 开始编辑
I, 直接跳到语句前面(注释用)
a, 光标后移并开始编辑
A, 直接跳到语句后面(注释用)
o, 在下面新增一空行
O, 在上面加一空行
为test文件创建硬链接如下:
shell-test:/u/nanaal/shell$ cp -l test test1
shell-test:/u/nanaal/shell$ ln -l test test2
shell-test:/u/nanaal/shell$ ls -li
total 12
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test1
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test2
命令ls显示的第一列为文件索引,在文件系统每个文件都有一个
唯一的索引值。从上面的信息可以知道,test、test1、test2
共享一份文件,且链接计数为3(ls显示结果的第三列)。
根据上面信息,硬链接可表示为:
Note:
硬链接的所有文件必须在一个硬盘上,如test在磁盘/dev/sda1上面,那么test1和test2也必须在/dev/sda1上面。
为test文件创建软链接如下:
shell-test:/u/nanaal/shell$ cp -s test test3
shell-test:/u/nanaal/shell$ ln -s test test4
shell-test:/u/nanaal/shell$ ls -li
total 12
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test1
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test2
4298103063 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test3 -> test
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls命令的输出结果可以看到, test3和test4的文件索引值
均与test的索引值不同,即test3和test4均是新的文件,但是
文件大小比test小,且链接计数为1. 软链接文件test3、test4
只保存了源文件test的文件信息,并没有对test文件指定的
数据进行拷贝。根据上面信息,软链接可表示为如下:
Note:
软链接的所有文件可以保存在不同的磁盘上。如test在
磁盘/dev/sda1上面,test3和test4可以保存在/dev/sda2上面。
修改文件
1) 修改源文件test
2) 修改硬链接文件test1或test2
3) 修改软链接文件test3或test4
修改上面的文件,会发现所有的文件均跟着修改了,这这方面,软链接和硬链接没有区别。
删除文件
1)删除硬链接文件
shell-test:/u/nanaal/shell$ rm -rf test1
shell-test:/u/nanaal/shell$ ls -li
total 8
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test2
4298103063 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test3 -> test
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出可以看到,删除文件test1后,test和test2的链接计数由3变成了2. 文件test和test2可以正常阅读。
2) 删除软链接文件
shell-test:/u/nanaal/shell$ ls -li
total 8
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test2
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出来看,删除文件test3,对其他文件没有任何影响。且文件test和test4可以正常阅读。
3) 删除源文件
shell-test:/u/nanaal/shell$ rm -rf test
shell-test:/u/nanaal/shell$ ls -li
total 4
4298659818 -rw-rw-r--. 1 nanaal nanaal 6 Apr 19 06:24 test2
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出可以看出,删除文件test后,test2的链接计数由2变为1,可以阅读。
文件test4属性没有任何变化,但是已经不能阅读。硬链接和软链接在这点的不同,
可以表示如下:
硬链接文件删除操作:
软链接文件删除操作: