若是在Linux中创建一个空文件,那么它还会占用空间吗?
答案是肯定的。文件不只是包含其有的内容,文件还有自身属性,比如文件名字,创建时间等。
文件=内容+属性
输入ls -l可以查看当前目录下文件对应的属性
目录其实可以理解为windows电脑上的文件夹,磁盘上的文件和目录组成一颗目录树,每个节点都是文件或目录
cd [目录名] 可以去到任意目录位置,用户可以很方便的找到某个文件
pwd可以查看当前所在目录位置
mkdir可以创建一个目录,touch可以创建一个文件,rm可以删除文件
mv可以改文件名,cat可以打印文件内容
其他常用指令:
which——查看命令所在位置; whoami——查看当前用户; tree——以树形结构展示文件;
cp ——拷贝文件; echo "hello"——把hello打印在屏幕上;
find 目录 -name 文件——在指定目录下查找文件名字;
grep ' ' 文件——行过滤工具,快速在文件中查找指定内容在哪一行;
Linux严格意义上说是一个操作系统,我们称之为“核心”,但我们用户一般不能直接使用“核心”,而是通过“核心”的外壳,也就是所谓的shell,来与“核心”交流沟通。
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者命令翻译给“核心”处理。
将核心处理结果翻译给使用者。
操作系统不想让用户直接使用操作系统的核心内容,或者为了拦截用户的一些非法举动,保护操作系统自身;再就是直接使用操作系统的难度太高,用户不擅长和操作系统打交道,使用外壳程序能更方便的使用。
就比如windows电脑上的鼠标以及图形化界面也是一种“外壳”。
linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以在linux系统下做任何事,不受限制
普通用户:在linux下做有限的事
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
使用命令 su [用户名] 可以切换用户,例如从root用户切换到普通用户user,可以使用 us user,从普通用户切换到root用户可以使用 su root。
文件和文件目录的所有者 u——User
文件和文件目录的所有者所在的组的 组内的用户 g——Group
其他用户: o——Others
使用ls -l可以查看文件属性,
第一位是文件属性,之后2~10位,每三位对应所有者、所属组和其他;使用 chmod [参数] 权限 文件名 可以更改文件权限
chmod g+w test.txt
chmod g-rw test.txt
也就是删一个文件和文件本身无关,和这个文件所在目录的权限有关;在一些公共目录下,为了防止用户乱删其他用户文件,可以将以目录设置为“粘滞位”(用chmod +t [目录]),该目录下文件只能由超级管理员、该目录所有者、该文件所有者删除。
初步了解了linux,我们可能不满与现有的linux,想要更多的指令,或者其他的功能,我们可以使用yum安装一些软件。
yum就相当于手机、电脑上的软件商店或应用管家。
yum上安装的各种各样的软件是储存在服务器端的,是由其他开源社区提供的。
对于已经掌握一部分编程能力的人来说,肯定也希望在linux上编写代码,这时候就可以使用vim。
vim简单来说就是文本编辑器。
创建一个test.c文件,输入指令vim test.c就能打开vim。刚刚进入时是处于无法输入的命令模式,按i就可以切换到能输入的插入(编辑)模式;
退出也很简单,按shift+;(键盘上冒号),会进入另一种模式(底行模式),然后输入wq就可以退出。(w是保存,q是退出)
若是想从其他两种模式变回命令模式,可以一直按esc。
在vim底行模式下,输入![外部命令] ,可以在vim中使用vim外的命令,比如:: ! ls -l
然后按空格或任意键再回到vim。
在vim编辑模式,没有鼠标,光标移动也是使用键盘方向键,遇到很长的代码会很不方便,这时可以使用指令来移动光标:
- 底行模式输入 /[代码] 可以搜索指定代码,按n跳转到下一个
- 键盘按 gg 可以快速定位到代码文本最开头
- 键盘按 shift + g可以快速定位到文本结尾
- 键盘按 数字 + shift + g可以快速定位到数字行数
- 键盘按 shift + 6(^)可以快速定位到当前行的开始
- 键盘按 shift + 4($)可以快速定位到当前行的结尾
结合这些加上 / 搜索就能比较灵活的使光标在大量代码行中移动。