1.1什么是Linux
- Linux 是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中性,大型甚至是巨型项目都在使用Linux。
- Linux 操作系统的优点很多:开源免费、支持多线程、支持多用户、安全性好、对内存和文件管理优越、适合小内核程序的嵌入系统等。
- Linux 的缺点是使用命令行操作,因此操作相对困难,但正是这种字符级命令行的操作,占用的系统资源会更少,也减少了被攻击、出错的可能性。
1.2Linux和Windows的不同
Linux | windows |
---|---|
免费 | 收费 |
开源性 | 非开源 |
大部分软件都可以自由获取,同样功能的软件选择较少 | 软件资源丰富,但是大部分需要购买授权 |
主要是命令行界面 | 主要图形化界面 |
2.Linux入门须知
- 2.1 文件
文件的权限:
r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示
对于文件:
权限名称 | 可执行操作 |
---|---|
r | 可以使用cat查看文件的内容 |
w | 可以修改文件的内容 |
x | 可以将其运行为二进制文件 |
对于目录:
权限名称 | 可执行操作 |
---|---|
r | 可以查看目录下列表 |
w | 可以创建和删除目录下文件 |
x | 可以使用cd进入目录 |
需要注意的是超级用户可以无视普通用户的权限,即使文件目录权限是000,依旧可以访问。 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。
文件所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。
其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
我们再来看看如何修改文件/目录的权限。
修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限, 其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
上述示例还可以使用数字表示:
chmod 764 aaa.txt
- 2.2 Linux文件
Linux所有的内容都是以文件形式保存,包括硬件(一切内容皆文件)并且Linux不依靠扩展名区分文件类型。
Linux有多种基本类型,常见的有如下三种:
普通文件 | 如文本文件,shell脚本,Java源代码,C语言代码等,可以使用文件操作命令如vi , cat ,more , less来管理 |
---|---|
目录文件 | 相当于Windows上的文件夹,包括目录名,子目录名,可以用ls列出目录的内容 |
连接文件 | 类似于Windows下的快捷方式 |
- 2.3 Linux目录
Linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/” ,然后在此目录下再创建其他的目录。
在linux 系统中,所有的文件与目录都是根目录 / 开始的,以 / 开头的目录成为绝对目录,不以根目录 / 开头的称为相对目录。
linux 系统文件目录整理如下
/ | linux 文件系统的上层根目录,文化系统树的最顶端,称为根目录或顶级目录 |
root | 存放root 用户的相关文件 |
bin | 存放所有用户都可以使用常用命令的目录 |
home | 系统预设的使用者的家目录(宿主目录),存放普通用户的相关文件 |
sbin | 系统管理相关的二进制文件存放目录,要具有一定权限才可以使用其中命令 |
etc | 存放各种配置文件 |
var | 存放经常变化的文件,如网络连接的sock文件 |
boot | 启动目录,存放引导系统启动的相关文件 |
usr | Unix System Resource:安装软件的默认目录,相当于windows下的program files文件夹 |
dev | 设备文件保存目录 |
lib | 系统库保存目录 |
mnt | 默认挂载光驱和软驱的目录 |
opt | 额外所安装的应用程序目录,有些软件包我们可以将它安装在该目录中 |
proc | 直接写入内存的,不能直接操作,保存的是内存的挂载点 |
- 2.4常用快捷键
tab | 自动补全 |
---|---|
Ctrl+c | 强制终止当前命令执行,即杀死当前进程 |
Ctrl+l | 清屏 |
Ctrl+z | 把命令放入到后台 |
Ctrl+r | 在历史命令中搜索 |
Ctrl+a | 光标移动到命令行首 |
Ctrl+e | 光标移动到命令行尾 |
Ctrl+u | 从光标所在位置删除到行首 |
Ctrl+b | 同键盘左键 |
Ctrl+f | 同键盘右键 |
3.常用命令
用户登录linux后,可以在linux 的命令提示符后面输入命令与系统进行交互。
如下所示:[root@localhost~]#
root: 当前登录用户
localhost:主机名
~:表示家目录
#:超级用户提示符
$:普通用户提示符
linux的命令格式: 命令 [选项] [参数]
如:cp dir1 dir2
cp是拷贝命令,dir1 和dir2是参数,表示把dir1拷贝到dir2中。
4.磁盘管理
- 4.1 cd
表示切换目录(change directory)
语法: cd [目标目录]
常用的目录切换
cd ~ | 进入当前用户的家目录 |
---|---|
cd - | 进入上次目录 |
cd . | 进入当前目录 |
cd / | 进入根目录 |
- 4.2 ls
表示列出目录内容
-a | 显示目录下所有文件,包含隐藏文件 |
---|---|
-l | 显示长列表格式 |
-d | 查看目录属性 |
-h | 人性化显示文件大小 |
-i | 显示inode |
- 4.3 pwd
显示工作目录(print working directory)
执行pwd命令可以获得当前所在的工作目录的绝对路径。
- 4.4 mkdir
建立目录(make directory)
-p | 递归创建目录,即如果建立目录的上层目录没有创建,会一并建立上层目录。 |
---|
- 4.5 rmdir
删除空目录,这条命令实际操作中用得很少,我们一般用rm
注意 rmdir 命令只能删除空目录,如果要删除目录下所有文件可用:rm -rf 路径
- 4.6 df
显示磁盘的相关信息,如文件系统的使用情况
语法: df [-ahikHTm] [目录或文件名]
-a | 列出所有的文件系统 |
---|---|
-k | 以KB为单位显示各个文件系统 |
-m | 以MB为单位显示各个文件系统 |
-h | 以GB、MB、KB等格式显示 |
-T | 连同该分区的文件系统名(例如 ext3 )一起列出 |
-i | 不用硬盘容量,而以inode 的数量来显示 |
- 4.7 du
du,显示目录或者文件的大小,du 命令显示指定的目录或文件占用的磁盘空间
语法:du [-ahskm] [文件或目录名称]
-a | 列出所有的文件和目录数量 |
---|---|
-h | 以人们易读的容量格式(G/M)显示 |
-s | 显示总计,不列出每个目录所占的容量 |
-k | 以kb列出容量显示 |
-m | 以MB列出容量显示 |
5.文件管理
- 5.1 touch
touch,改变文件或者目录时间,也可以建立空文档
-a | 修改access time |
---|---|
-c | 修改时间,而不建立时间 |
-d | 后面可以接时间 |
-m | 修改mtime |
-t | 后面可以接时间,格式为[YYMMDDhhmm] |
- 5.2 cp
cp 复制命令
cp 指令用于复制文件或者目录,参数必须指定两个或者两个以上的文件或目录,并且最后一个路径必须是已经存在的目录,可以把之前指定的文件或者目录复制到该目录中。
|
-a | 该选项通常在拷贝目录时使用。它保留连接,文件属性,并递归地拷贝目录 |
---|---|
-p | 复制源文件的内容,并且会复制修改时间和访问权限到新文件中 |
-r | 若给出的源文件是一目录文件,此时cp 将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 |
如:cp -r dir1 dir2 dir3,递归复制,把dir1、dir2 复制到dir3目录中
- 5.3 mv
mv , 移动和重命名mv 命令可以移动文件或者目录,也可以更改文件或目录名称
语法:mv [源文件或者目录] [目标文件或目录]
如 mv dir1 dir2 :
把dir1 移动到 dir2目录中mv /home/hello /home/world; 把/home 目录下的hello 文件重命名为world
- 5.3 rm
rm ,删除文件和目录
使用参数“-r” 可以删除目录,否则默认是删除文件
rm -rf * ,删除所有内容,包含目录和文件
其中 -r 表示递归,-f 表示强制
- 5.5 cat
cat ,显示文件内容,将文件内容打印到标准输出设备上
语法 :cat fileName
常用参数:
-n : 对输出的行数进行编号
- 5.6 head
查看纯文本文档的前N行,写到标准输出
head -n 20 查看文本文件前20行
- 5.7 tail
查看纯文本文档的后N行,写到标准输出
tail -n 20 查看文本文档后20行
- 5.8 more, less
more ,显示文件内容带分页语法:more fileNamemore命令类似cat ,以一页一页形式显示,方便阅读,按空格键往后翻下一页,按b键(或 ctrl + pag up 上翻) 往前翻一页more + 10 fileName : 从第10 行显示fileName 内容less ,显示文件内容带分页less 与 more 类似,使用less 可以随意浏览文件
- 5.9 echo
输出字符串
语法:echo [-ne] [字符串] 或 echo [–help][–version]
echo会将输入的字符串送往标准输出
6.系统设置
- 6.1 alias
- 6.2 unalias
unalias:删除别名
- 6.3 export
export, 设置和显示环境变量
export 命令可新增、修改和删除环境变量
export -p :列出所有的shell 赋予程序的环境变量。
- 6.4 man
man [command] , 帮助,类似与dos中的help ;man实际为manual(操作说明)
man的级别:
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件得帮助,主要是 /dev 目录下的文件
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件得帮助查看命令拥有那个级别的帮助:man -f 命令