在这第一个星期的学习中,因为需要在Oracle VM VirtualBox虚拟机上的ubuntu上进行操作,所以先是了解了linux的一些背景以及一些日常使用到的基础命令。在PC端,目前的操作系统主要有着Windows、Mac os、以及Unix三大操作系,而Linux是Unix操作系统的最重要的一个分支。
Linux的基础命令有很多,在这里,我只是列举一些我认为在日常操作中会经常使用的命令以及需要注意的一些点:
touch —— 创建空白文件mkdir —— 创建目录创建平级目录 mkdir day01 day02 day03 -p 创建联级目录 mkdir -p day01/code
rm —— 删除文件rm a,txt b,txt c,txt -i : 询问是否删除 : rm -i a,txt -r : 删除非空目录(递归删除): rm -r a,txt -f : 强制删除
pwd —— 显示当前工作目录(路径)cd —— 改变工作路径/ :进入到根目录 ~ : 进入到主用户目录 . : 代表当前目录 … : 代表上一级目录
ls —— 列出文件和文件夹-a : 显示所有的文件(目录也称为文件,包括隐藏文件) -1 : 以详细的方式显示 -t :按时间先后顺序排序显示 最新的文件最先显示 -r :逆序排序显示 最新的文件最后显示
drwxrwxr-x 2 ubuntu ubuntu 4096 10月 29 16:24 code① 第一个字符表示文件类型: d – 目录 - – 普通文件 l – 链接文件 s – socket 文件 p – 管道文件 ② rwxrwx-x : 代表文件属性 第一组rwx代表 :属主 文件拥有者自己的权限 第二组rwx代表 : 属组 同组用户 第三组rwx代表 : 其他用户 r – read 代表可读权限 w – write 代表可写权限 x – excute 代表可执行权限 - – 代表没有改权限 ③ 2 表示硬链接数:只有当硬链接数为0时该文件才会被真正删除 ④ ubuntu ubuntu : 用户名 组名 ⑤ 4096 : 文件大小(目录4096) ⑥ 10月 29 16:24 : 文件最后修改时间 ⑦ code : 文件名
clear —— 清除清理界面cat ——查看文件的内容 tac —— 反向浏览-A :显示出特殊的字符 (换行–> $ tab键(制表键)–> ^I ) -n :显示行号 -E :把换行符显示成 $ -T :能够区分tab 还是空格
echo —— 显示内容经常与输出重定向搭配使用: echo [内容] > [文件] //清空写入到文件中 echo [内容] >> [文件] //追加写入到文件中
man —— Linux手册当遇到那些没遇见过得的 或是 不会使用的linux操作命令时,便可以使用 man命令 查询linux手册。
chmod —— 修改权限权限直接可以用数字来进行修改 7 rwx 111 6 rw- 110 5 r-x 101 4 r-- 100 3 -wx 011 2 -w- 010 1 --x 001 0 — 000
ln —— 硬链接数ln 路径 文件名 : 创建硬链接 ln -s 路径 文件名 : 创建软链接 硬链接:代表的是磁盘数据的一个访问途径 软链接:保存路径本身
grep —— 根据文件内容查找grep [选项] 匹配的字符串 文件名 ( 查看某个文件中是否包含某个字符串 ) -n :显示行号 -c :统计次数 -i :忽略大小写 -r :进入到目录下查找
find / -name "*.c" | xarge grep "time"统计所有的.c文件中包含time 这个字符串的记录 xarge :将前面find查找出来的,一个个作为后面grep的参数
cp —— 拷贝cp 路径/文件 路径/ (可以保留之前的名字) cp 路径/文件 路径/新文件名 ( 改变之前的名字) -r :拷贝目录 -i :询问是否覆盖(如果没有直接覆盖) -f :强制执行
mv – 剪切mv day01 ./xx/ :把day01移动到xx目录中 mv day01 ./xx/newname :把day01移动到xx目录中,并重命名newname mv day01 day02 :把day01拷贝到day02中,覆盖之前day02中的内容 mv day01 day02/ : 把day01拷贝到day02下,不会覆盖之前day02中的内容
三种模式:命令模式 、 编辑(插入)模式 、 底行模式
vi + [文件名] //进入到命令模式,只能识别命令 i,I,a,A,o,O :命令模式进入编辑模式 esc :编辑模式回到命令模式 shift + : :命令模式进入底行模式 enter :底行模式回到命令模式
文本编辑器vi/vim:会在接下来的学习中经常操作,所以一些快捷方式的了解也是必须的。
① shift zz :保存退出 ② i,I,a,A,o,O :进入编辑模式 i:在光标位置前面插入 I:在光标行首插入 a:在光标位置后面插入 A:在光标行行尾插入 o:在光标行下一行插入新行 O:在光标行上一行插入新行 ③ 移动光标位置:h(左)j(下)k(上)l(右) $ :定位到本行(光标所在行)行尾位置 ^ :定位到本行(光标所在行)行首位置 gg :定位到第一行 G :定位到最后一行(末尾行) ngg(== nG) : n代表数字,定位到第n行 ctrl + M/N :向下 shift + m :定位到屏幕中间位置 n + Enter :往后跳n行 ④ 删除行(删除的内容其实是放到剪贴板中) dd : 删除光标所在行 ndd : 删除从光标开始的n行 ⑤ 复制行 yy :复制光标所在行 nyy :从光标行开始复制n行 ⑥ 粘贴行 P :粘贴到光标所在行的下一行 ⑦ 撤销命令 u :撤销回之前的步骤 (可以一直撤销) ctrl + r :反悔撤销 ⑧ 改写 r :只能改写一个字符 R :进入到改写状态 Esc :退出改写状态
q! :强制退出(不保存) q :退出(如果修改,必须强制退出) w :保存 wq : 保存退出 n1,n2 co n3 :复制 n1,n2 mo n3 : 剪切
v : 进入可视模式,操作块 ctrl+v : 进入可视块 I : 可视块前插入 A :可视块后插入 d :删除 y :复制 c :修改 gu : 小写 gU : 大写 g~ :大小写转换 注意:按esc会影响到整个可视块的内容
本次的学习主要便是了解了linux的一些基础命令的使用操作,在我看来,重点主要在于模糊匹配,以及对vi文本编辑器的熟练使用,这是对接下来的c语言学习进行的必要的铺垫基础。
