linux

命令:

在虚拟中断输入命令,shell会解析输入的命令,搜索环境变量:路径,找到了输入的命令,运行这个程序

History:历史输入命令

快捷键:

删除光标前所有的字符:ctrl+u

删除光标后所有的字符:ctrl+k

移动到最头部:ctrl+a

移动到最尾部:ctrl+e

Tab:按一次:补全命令和目录名

              按两次:列出此单词开头的命令和目录

目录结构:linux目录结构为树

/ :根目录

. :当前目录

.. :  当前目录的上级目录

Sudo:管理员权限

Tree: 查看目录结构,需要安装 sudo apt-get install tree :使用apt-get 安装 tree

Ls:查看文件或目录

-a:显示所有文件

隐藏文件:文件或目录名前边有一个点

-l:详细信息、-lh 带单位的详细信息

例如:-rwxrw-r-- 1 zhaofei zhaofei 3231145 11月 23 23:08 vimplus.tar.gz

第一个字符:文件的类型

7种:

普通文件:-

目录:d

符号链接: l

管道: p

套接字:s :socket

字符设备: c

键盘、鼠标

块设备: b

U盘、硬盘

Rwx  :文件所有者权限

Rw-  :文件所属组用户

R--  :其他人

1:硬链接计数

Zhaofei: 文件所有者

Zhaofei:文件所属组的名字

3231145 :文件大小

如果是目录,大小为4k

11月 23 23:08 :日期

vimplus.tar.gz :文件名

Cd ~ :进入家目录

Mkdir:创建目录

Mkdir 目录名

-p:创建多级目录

Touch:创建文件

Touch 文件名:如果不存在,创建文件

如果存在,更新文件的时间

Rmdir: 只能删除空目录

Rm :删除文件或目录

Rm 目录名 -ri

-r:用递归的方式处理

-i:删除的时候提示

Rm 文件名 -i

Cp : 拷贝  cp a b  把a的内容拷贝到 b,如果b不存在,创建b 再拷贝

拷贝目录要 -r 递归拷贝

Cp dir(存在)  dir1(存在) -r

将dir1目录整个拷贝到dir目录中,包括dir目录

Cp dir(存在)  dir1(不存在) -r

创建 dir1

只将dir中的内容拷贝到dir1中,不包括dir目录

Mv: 改名或者移动文件

Mv file(存在)  file1(存在)

file会覆盖file1,file会被删除

改名:

Mv file(存在)  file1(不存在)  file为文件

Mv dir(存在)  dir1(不存在) dir为目录

移动:

Mv file(文件)  dir(存在目录)

Mv dir(目录存在)  dir1(目录存在)

查看文件内容:

Cat

Cat filename : 将文件的内容打印到终端

More

More filename : 另开辟一块缓存打开文件内容

Pwd:显示当前所在目录

$:当前用户为普通用户

#:当前用户为超级用户

~:用户的家目录 <==> /home/zhaofei

根目录下常见目录:

/boot:开机启动项

/bin: binary,二进制文件,可执行程序,shell命令

/dev:device,设备,linux下一切皆文件,将硬盘、显卡、显示器抽象成文件

/lib:linux运行的时候需要加载的动态库

/mnt:手动的挂在目录

/media:外设的自动挂在目录

/root:linux的超级用户的家目录

/usr:unix system resource 系统资源目录:头文件、游戏

/usr/local:用户安装的程序

/etc:存放配置文件

/etc/passwd:用户

/etc/group:用户组

/opt:安装第三方应用程序

/home:linux操作系统所有用户的家目录(宿主目录)

/tmp:存放临时文件,重启电脑时会清空

软硬链接:ln

软链接 :快捷方式:大小为路径的字符数量

Ln - s 文件名(使用绝对路径)  快捷方式的名字

硬链接:为文件起个别名,不占用空间。每个文件都有索引节点号 inode,inode指向 磁盘中的数据块,为文件创建一个硬链接,两个文件名指向的索引节点号是同 一个,指向同一块内存

1.创建一个新文件:硬链接计数为1

2.给文件创建了硬链接:硬链接计数为2

3.删除一个硬链接:硬链接计数为1

4.再删除硬链接计数对应的文件:0

Filename  ==> 索引节点号 inode  ==>  磁盘的数据块

Ln 文件名  硬链接的名字

用户权限、用户和用户组:

1.chmod : 修改文件或目录权限

文字设定法:

Chmod who [+|-|=] mode 文件名 

Who:

U :user,文件所有者

G :group ,文件所属组

O: other ,其他人

A: all,以上所有人(默认值)

+|-|= := 覆盖

Mode:

R:读

W:写

X:执行

-:没有任何权限

练习:chmod uo-rw file.c :去掉文件所有者和其他人读写权限   chmod u+r,g-x file.c  文件所有者加读,同组用户减执行

数字设定法:

Chomd [+|-|=] mode 文件名

Mode:八进制的数 0777: 0表示八进制

第一个数字表示文件所有者的权限

第二个数字表示用户用户的权限

第三个数字表示其他人的权限

R : 4

W: 2

X:  1

-:  0

例如:0750

0:八进制

7:rwx :文件所有者的权限

5:r-x :同组用户的权限

0:  ---:其他人的权限不修改

2.chown : 修改文件所有者或所属组

Chown  新的所有者 文件名

Chown 新的所有者:新的所属组 文件名

3.chgrp : 修改文件所属组

文件查找和检索:

1.根据文件属性查找  find

文件名:

Find 查找的目录名 -name  “查找的文件名”

Find . -name “*”  :查找当前目录下所有文件

文件类型:

Find 查找目录 -type 文件类型

Find . -type f  查找当前目录下的普通文件

普通文件:在这用f 表示

目录:d

符号链接:l

文件大小:

Find 查找目录 -size 10M  查找等于10M的文件

+: 大于

-:小于

单位:

K:小写

M:大写

当前目录下查找大于10k小于100k

Find . -size +10k -size -100K

按日期:

创建日期 :-ctime -n/+n

-n: n天以内

+n : n天以外

Find . -ctime -1  查找当前目录1天以内创建的

修改日期:-mtime -n/+n

访问日期:-atime -n/+n

按深度:

-maxdepth n  最深查找到第n层

-mindepth n  搜索n层以上

高级查找:

例:查找指定目录,并列出该目录中文件详细信息

Find ./ -type d -exec ls -l {} \;

Find ./ -type d -ok ls -l {} \;

ok比 exec安全些

Find ./ -type d | xargs ls-l(shell 命令)

| :管道

2.根据文件内容查找 : grep

Grep -r(有子目录时加 -r )  “查找的内容” 搜索的路径 -n(显示查到的字符串在第几行)

例如:搜索家目录中带 hello 字符串的文件

Grep -r “hello” ~

3.总结:

(1)Find 搜索的路径 参数 搜索的内容

(2)Grep 搜索的内容 参数 搜索的路径

压缩包管理:

1.linux 下常见压缩格式

.gz  是用gzip压缩出来的

.bz2  用bzip2压缩出来的

2.常用压缩命令

Tar : 打包

参数:

C: 创建压缩文件

X: 释放压缩文件

V: 打印提示信息(可不写)

F: 指定压缩包的名字

Z: 使用gzip压缩文件  --xxx.tar.gz

J: 使用bzip2的方式压缩文件 --xxx.tar.bz2

压缩:

Tar 参数 压缩包的名字 要压缩的东西

例如:用 gz 的方式将文件 file1 目录 dir1压缩到一起

Tar zcvf test.tar.gz file1 dir1

解压:

Tar zxvf test.tar.gz

Tar zxvf test.tar.gz -C 目录  :解压到指定目录

Rar:

Rar 需要安装

Sudo apt-get install rar

压缩:

Rar a 压缩包名(不需要指定后缀) 要压缩的东西

压缩目录要加 -r 进行递归压缩

解压:

Rar x 压缩包的名字 目录

Zip/unzip:

压缩:

Zip 参数 压缩包名 要压缩的东西

参数:如果有目录: -r

解压:

Unzip 压缩包的名字 -d 解压目录

3.总结:

压缩:

Tar/rar 参数 压缩包名 原材料

解压缩:

Tar/rar 参数 压缩包名 参数 解压路径

rar解压到指定目录时不需要参数

软件的安装和卸载:

1.在线安装:  ubuntu环境下

安装:管理员权限 sudo apt-get(apt) install 安装包的名字

卸载:sudo apt-get(apt) remove 软件的名字

软件列表的更新:sudo apt-get(apt) update    :更新了软件列表下的软件

清空缓存的安装包 :sudo apt-get(apt) clean      :/var/cache/apt/archives

2.软件包安装(Ubuntu下  .deb格式)

安装:sudo dpkg -i xxx.deb  -i:install

卸载:sudo dpkg -r 软件的名字  -r : remove

Vim相关:vim是vi的扩展

Gui:用户图形接口

1.vim需要自己安装

Shell敲命令:vimtutor : vim向导

2.vim是三种工作模式

1.命令模式

2.编辑模式

3.末行模式


3.vim命令模式下的相关操作

(1)保存退出:ZZ(不会创建新文件)

(2)代码格式化:gg=G

(3)光标的移动

HJKL:左下上右

光标移动到行首:0 (零)

....................行尾:$

光标移动到文件头部:gg

....................文件尾部:G

跳转到第200行:200G

4.删除命令 : 删除其实是剪贴

(1)删除字符

光标前的字符:X

光标后的字符:x

(2)删除光标前字符串:d0

(3)删除光标后字符串:d$  <==> D

(4)删除光标所在行:dd

(5)从光标所在行向下删除3行:3dd

(6)删除光标所在行及下面所有内容:dG  :按了d以后,将光标移动到尾部

(7)删除.......................上面.................: dgg  :按了d以后,将光标移动到头部

5.撤销和反撤销

撤销:u

反撤销:ctrl+r

6.复制和粘贴

复制:

1行:yy

n行:nyy

粘贴:

p(小写):粘贴到光标的下边一行

P(大写):..............上边一行

7.可视模式:v

(1)移动光标:hjkl

(2)复制:y

(3)删除:d

(4)粘贴:

①P(小写):粘贴到光标的后边

②P(大写):粘贴到光标的前边

8.替换操作:

(1)替换一个,光标盖住的字符: r

(2)替换多个,从光标盖住的这个往后替换:R

9.查找

(1)/xxx

(2)?xxx

1)用n查看下一个关键字的位置,N查看上一个关键字的位置

(3)将光标移动到某个单词下,按# 会将所选单词都显示出来,nN切换

10.查看man文档

章节号+K(大写)

11.命令模式切换到文本编辑模式

(1)a:从光标的后面开始插入字符。A:从行尾插入

(2)i:从光标的前面开始插入字符。I:从行首插入

(3)o(小写):在光标所在下面创建一行进行插入。O:在光标所在上面创建一行进行插入

(4)s(小写):删除光标盖住的字符。S:删除光标所在行

(5)从编辑模式切换回命令模式:esc

12.Vim末行模式下相关操作:

(1)从命令模式 -> 末行模式

1)键盘输入冒号(:)

(2)末行模式下的命令:

①输入行号,实现行跳转

②保存不退出:w

③退出:q

④退出不保存:q!

⑤保存退出:wq == x (会创建新文件)

(2)末行模式 -> 命令模式:两次esc

(3)替换:

①替换光标所在行的字符串:

1):s/old/new/gc    old:要被替换的字符串,new:要替换的字符串

a.参数g:替换当前行所有的old ,如果不加,只替换第一个

b.参数c:替换时提示,是否确认替换

②替换一个范围

1):x,ys/old/new/gc      x,y是一个范围(行数)

③替换当前文档所有的

1):%s/old/new/gc

(4)分屏:水平分屏还是垂直分屏是根据分隔线

①当前文件分屏

1)水平:sp

2)垂直:vsp

②两个屏幕显示不同的文件

1)水平:sp 文件名

2)垂直:  vsp 文件名

③屏幕的关闭

1)关闭所有:qall

2)保存关闭所有:wqall

3)保存所有:wall

④屏幕的切换

1)Ctrl+w+w

⑤打开的时候分屏

1)水平:vim -on 文件名 文件名

2)垂直:vim -On 文件名 文件名

a.n可以省略,表示分屏的个数

(5)末行模式下执行shell命令

①:!+shell命令

13.Vim配置文件

(1)用户级别

①~/.vimrc

(2)系统级别

①/etc/vim/vimrc

gcc相关:

1.gcc工作流程

(1)预处理 

①调用预处理器 (cpp)

②参数:-E

③宏替换

④头文件展开

⑤注释去掉

⑥Xxx.c  ->  xxx.i(还是c文件)

(2)编译(时间最长) 

①调用编译器(gcc)

②参数:-S

③Xxx.i -> xxx.s(汇编文件)

(3)汇编

①调用汇编器(as)

②参数: -c (小写)

③Xxx.s  -> xxx.o(二进制文件)

(4)链接(没有参数)

①调用链接器 (Ld)

②Xxx.o -> xxx(可执行程序)

③gcc  xxx.c  -o  app  直接生成一个名为app的可执行程序

1)-o : 指定生成的名字

2.gcc 常用参数

(1)-v / -version :版本

(2)-I(大写i):编译的时候指定头文件路径

(3)-c:将汇编文件生成二进制文件(.o)

(4)-o:指定生成文件的名字

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,719评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,337评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,887评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,488评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,313评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,284评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,672评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,346评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,644评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,700评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,457评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,316评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,706评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,261评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,648评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,859评论 2 335

推荐阅读更多精彩内容