Linux
命令行模式常用快捷键
Tab
:自动补全命令Shift+PgUp/PgDn
:向上翻页/向下翻页Ctrl+c
:停止当前程序
Linux系统运行级别
查看当前系统的运行级别命令:runlevel
[root@lena /]# runlevel
N 3 # 返回"前一个运行级别 当前运行界别" 其中N表示无
Linux运行级别的文件存放在/etc/rc.d/
目录下:可以看到由rc0-rc6,共有7个运行级别。
[root@lena /]# cd /etc/rc.d/
[root@lena rc.d]# ll
total 36
drwxr-xr-x. 2 root root 4096 May 6 21:28 init.d
drwxr-xr-x. 2 root root 4096 May 6 21:28 rc0.d
drwxr-xr-x. 2 root root 4096 May 6 21:28 rc1.d
drwxr-xr-x. 2 root root 4096 May 12 12:42 rc2.d
drwxr-xr-x. 2 root root 4096 May 12 12:42 rc3.d
drwxr-xr-x. 2 root root 4096 May 12 12:42 rc4.d
drwxr-xr-x. 2 root root 4096 May 12 12:42 rc5.d
drwxr-xr-x. 2 root root 4096 May 6 21:28 rc6.d
-rw-r--r-- 1 root root 473 May 26 2017 rc.local
Linux7个运行级别区别如下:
-
运行级别0:系统停机(关机)状态。若将0设为默认运行级别,则不能正常启动。
-
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆。
-
运行级别2:多用户状态,无NFS。
NFS:网络文件系统,是UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
-
运行级别3:完全的多用户状态,有NFS。登录后进入控制台命令行模式。
-
运行级别4:未使用,保留级别。
-
运行级别5: 图形化模式,登陆后进入图形GUI模式 。
-
运行级别6: 重启模式。若将6设为默认运行级别,则不能正常启动,会陷入一直开机重启开机重启的循环中。
当前运行级别切换:init N
,例如输入init 0
,系统会关机;init 6
,系统会自动重启;init 5
,系统会进入图形GUI模式 …(注意,该切换是临时的)
init进程ID为1,是初始化进程,查看进程:ps -ef|grep init
初始化进程存在一个对应的配置文件:/etc/inittab
(系统配置文件),文件主要内容如:id:5:initdefault:
上面使用init N
命令的切换是临时的,重启后会恢复到默认值,若想要永久切换运行级别,需要修改文件/etc/inittab
中的initdefault
的值。修改默认运行级别:vim /etc/inittab
Linux文件目录结构
- bin:是usr/bin的快捷方式。存储二进制文件,都是可以被运行的文件。存储着最常使用的命令。
- boot:存放启动Linux使用的核心文件(连接文件、镜像文件)
- dev:主要存放外界设备(u盘、光盘…)不能直接被使用,需要挂载。在Linux中一切皆文件,访问设备和文件的方式一样。
- etc:主要 存放所有的系统管理所需要的配置文件和子目录。
- home:除了root用户外的其他用户的家目录。
- lib:存放着系统最基本的动态连接共享库
- lost+found:用于非法关机后存放文件。默认情况是空的。
- media:Linux自动识别设备会挂载到该目录下。
- mnt:当外接设备需要临时挂载的时候,挂载在该目录下。
- opt:用来主机额外安装的软件。默认是空的。(optional)
- proc:存储Linux运行时的进程, 是一个虚拟的目录,它是系统内存的映射。(process)
- root:root用户的家目录。
- run:临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。 若有/var/run目录,应该指向该目录。
- sbin:是usr/sbin的快捷方式。存储具有super权限才能执行的二进制文件,如halt、shutdown关机。(super bin)
- srv:该目录存放一些服务启动之后需要提取的数据。
- tmp:存放产生的临时文件,系统使用完会删除。(temporary)
- usr:存放用户自己安装的软件。
- var:存放程序/系统的日志文件。
Linux文件与权限
在Linux中,一切皆文件。
访问文件的身份
对一个文件来说,访问文件的一般有四种身份:
- Owner身份(文件所有者):默认是文件的创建者。可以更改。
- Group身份(与文件所有者同组的用户):当同一团队多人在同一台主机上开发的时候,可以将同一组的人员的用户设为同一组。
- Others身份(其他人):既不是文件所有者,也不是与所有者同组的用户。
- Root用户(超级管理员):拥有最大权限。
文件权限
查看文件权限
我们可以使用ll
或者ls –l
命令来查看一个文件的属性以及文件所属的用户和组。查看到的文件信息会按列显示,前十个字符依次描述了文件的类型、文件所属者的权限、文件所属组的权限、其他用户的权限,具体字符的含义如下:
-
表明这个文件的类型,其中每个字符的含义是:“d”目录;“-”文件;“l”链接文档;“b”可随机存取装置;“c”一次性读取装置(鼠标、键盘)
-
文件所属者的读权限
-
文件所属者的写权限
-
文件所属者的执行权限
-
文件所属组的读权限
-
文件所属组的写权限
-
文件所属组的执行权限
-
其他用户的读权限
-
其他用户的写权限
-
其他用户的执行权限
以上1-3表示文件所有者的权限,4-6表示文件同组用户的权限,7-9表示其他用户的权限。若有读权限,则使用“r”字符表示;若有写权限,则用“w”字符表示;若有执行权限,则用“x”字符表示;如无权限,则用“-”表示。
例如:drwxr-xr-x
表示了文件是文件夹,文件所有者有读写执行权限,文件同组用户和其他用户只有读和执行权限。
设置文件权限
设置文件权限,使用命令:chown 选项 文件所有者权限+文件所有者所属组权限+其他用户权限 文件
1.数字形式
没有任何权限=0;读权限=4;写权限=2;执行权限=1
由此可以得到0-7数值分别对应的权限:
数值 | 可读=4 | 可写=2 | 可执行=1 | 目录列表 |
---|---|---|---|---|
0 | ✖ | ✖ | ✖ | — |
1 | ✖ | ✖ | ✔ | –x |
2 | ✖ | ✔ | ✖ | -w- |
3 | ✖ | ✔ | ✔ | -wx |
4 | ✔ | ✖ | ✖ | r– |
5 | ✔ | ✖ | ✔ | r-x |
6 | ✔ | ✔ | ✖ | rw- |
7 | ✔ | ✔ | ✔ | rwx |
例如:给文件a.txt设置权限,文件所有者拥有全部权限(4+2+1=7),文件所有者同组用户拥有读和执行权限(4+1=5),其他用户只能读文件(4),那么设置文件权限的命令为 chmod 754 a.txt
2.字母形式
指定设置的身份:
- u:表示文件所有者(Owner身份)
- g:表示文件所有者同组用户(Group身份)
- o:表示其他用户(Others身份)
- a:表示所有身份(即=u、g、o)
指明要设置的权限:
- r:表示可读,read
- w:表示可写,write
- x:表示可执行,execute
- -:表示没有权限
例如:给文件a.txt(-rw-------)设置权限,要求所有者拥有全部的权限,同组用户拥有读和执行权限,其他用户只有读权限,可使用命令设置 chmod u=rwx,g=rx,o=r a.txt
此外,还可以用命令指明要更改的部分,如 chmod u+x,g+rx,o+r a.txt
去除文件所有权限:chmod a=--- 文件
为所有文件设置读权限:chmod a+r 文件
文件属性
使用ll
或者ls –l
命令时,会按列显示文件的信息,显示的内容格式为:文件类型权限 硬链接数量 文件所有者 文件所有者所在组 文件大小 最后一次更改时间 文件名
[root@lena /]# ll
lrwxrwxrwx. 1 root root 7 Aug 18 2017 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 May 27 16:01 boot
-rw-r--r-- 1 root root 144935989 Jun 2 10:32 jdk-8u291-linux-x64.tar.gz
lrwxrwxrwx. 1 root root 7 Aug 18 2017 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 18 2017 lib64 -> usr/lib64
drwx------. 2 root root 16384 Aug 18 2017 lost+found
drwxr-xr-x. 2 root root 4096 Nov 5 2016 media
修改文件属性
更改文件所有者:chown [-R] 用户名 文件
更改文件的所属用户组:chgrp [-R] 所属用户组 文件
同时更改文件的所有者和所属组:chown -R 文件所有者:所属用户组 文件
其中,当文件是目录的时候,选项-R
会迭代更改该目录下的所有文件。
Linux命令
完整的命令标准格式:命令 [选项] [操作对象]
- 若不写操作对象,默认当前对象
- 一个命令可以有多个选项、多个操作对象,但只能有一个命令
man
man 命令
:查看Linux命令的手册,英文显示,不需要联网。
退出按下q键
文件与目录管理
ls 列出目录
ls
:列出当前工作目录下的所有文件/文件夹名称
[root@lena /]# ls
bin dev home lib lost+found mnt proc run sbin sys usr
boot etc jdk-8u291-linux-x64.tar.gz lib64 media opt root samba srv tmp var
ls 选项 路径
:以指定格式显示指定路径下的目录信息
- 路径可以是绝对路径或相对路径
- 选项-l:以详细列表的形式进行展示,list
- 选项-a:显示所有文件/文件夹,包括隐藏的文件/文件夹
- 选项-h:显示文档的时候按可读性较高的形式显示,即自动切换文件大小时显示的单位
- 选项-d:仅列出当前目录的信息,而不是目录内的文件信息
[root@lena /]# ls -lh
lrwxrwxrwx. 1 root root 7 Aug 18 2017 bin -> usr/bin
dr-xr-xr-x. 4 root root 4.0K May 27 16:01 boot
drwxr-xr-x. 89 root root 12K Oct 23 20:34 etc
-rw-r--r-- 1 root root 139M Jun 2 10:32 jdk-8u291-linux-x64.tar.gz
pwd 显示当前工作目录
选项-P:显示出实际路径,而非使用连接(link)路径
[root@lena bin]# pwd
/bin
[root@lena bin]# pwd -P
/usr/bin
cd 切换目录
cd [绝对路径/相对路径]
:切换当前工作目录
绝对路径:“.”表示当前路径;“…”表示上一级目录。
“~”符号在Linux中表示家目录,命令cd ~
与cd
一样,都会切换到家目录。
mkdir 创建新目录
mkdir 选项 目录
:创建新的文件夹,make directory
- 选项-m:配置文件权限
- 选项-p:若创建目录路径上有多个不存在的目录,递归创建多层目录
[root@lena ~]# mkdir -m 761 linux
[root@lena ~]# ll
drwxrw---x 2 root root 4096 Oct 25 13:33 linux
可以一次性创建多个目录:mkdir 目录1 目录2 目录3
touch 创建文件
touch 文件
:创建文件
可以一次性创建多个文件:touch 文件1 文件2 文件3
[root@lena linux]# mkdir directory
[root@lena linux]# touch file1 file2
[root@lena linux]# ll
total 4
drwxr-xr-x 2 root root 4096 Oct 25 13:48 directory
-rw-r--r-- 1 root root 0 Oct 25 13:48 file1
-rw-r--r-- 1 root root 0 Oct 25 13:48 file2
rmdir 删除空目录
rmdir [-p] 目录
:选项-p表示,从该目录起,一次删除多级空目录
注意:若文件夹有内容,则无法删除。
[root@lena linux]# rmdir directory
rmdir: failed to remove ‘directory’: Directory not empty
rm 删除文件或目录
rm 选项 文件或目录
- 选项-f:若文件或目录不存在,则忽略,不显示警告
- 选项-i:互动模式,在删除前会