Linux基础(文件管理、用户管理、权限管理)
文章目录
Linux操作系统基础
(一)文件管理
1. 概述
-
Everything is a File
,即Linux系统,本质是一个文件系统,文件目录结构如下:
Linux系统的目录结构是一个倒树型,其最大的目录是/
根目录,根目录其余的二级目录大多是在安装系统时创建的。 - 使用命令查看系统的目录结构:
- 对目录的解释:
/bin:Binary的缩写,这个目录存放着最经常使用的命令;
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件;
/dev :Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的;
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录;
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的;
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库;
/media:Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下;
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了;
/opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的;
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息;这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
/root:该目录为系统管理员,也称作超级权限者的用户主目录;
/sbin:s就是Super User超户,这里存放的是系统管理员使用的系统管理程序;
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs,
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统,该文件系统是内核设备树的一个直观反映,当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建;
/tmp:这个目录是用来存放一些临时文件的;
/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录;
/usr/bin:系统用户使用的应用程序;
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序;
/usr/src:内核源代码默认的放置目录;
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件;
/run:是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件应该被删掉或清除,如果你的系统上有 /var/run 目录,应该让它指向 run;
注意:
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动;
/bin、/sbin、/usr/bin、/usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的;bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
2.常用命令
cd
切换当前工作目录至某一目录;ll
列出来的结果详细,有时间、是否可读写等信息 ,像windows里的详细信息;ls
只列出文件名或目录名,就象windows里的列表;
ll
是ls -l
别名 ,ls -l 是 ll 命令的完整命令
我们可以通过cd /某一个目录
然后ls
查看该目录下的内容;
pwd
目前所在的工作目录的绝对路径名称;cat
用于连接文件并打印到标准输出设备上,不能作用于目录;touch
用于修改文件或者目录的时间属性,包括存取时间和更改时间,若文件不存在,系统会建立一个新的文件;mkdir
建立一个子目录;mv
用来为文件或目录改名、或将文件或目录移入其它位置;
命令 | 结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名 |
mv 目录名 文件名 | 出错 |
rm
用于删除一个文件或者目录;
rm test.txt
rm:是否删除一般文件 “test.txt”? y
rm homework
rm: 无法删除目录"homework": 是一个目录
rm -r homework
rm:是否删除目录 “homework”? y
rm -r *:删除当前目录下的所有文件及目录,慎用!
cp
用于复制文件或目录;
cp file /tmp/:将名为file文件复制到tmp目录下;
cp file /tmp/newfile:将名为file文件复制到tmp目录下并改名为newfile;
cp –r test/ newtest:用户使用该指令复制目录时,必须使用参数"-r"。
注意: Linux命令太多!我们很难记住,输入命令开头一个或几个字母,再使用 Tab
键可以列举出所有以它开头的命令,结合命令 --help
,学会使用该命令!
3.vim编辑器
- 使用
vim
命令进入,i 进入输入模式(INSERT),编辑完成,ESC进入命令模式,输入:
,再加 q 退出程序,或者 w 保存文件,或者 wq 保存并退出 - 直接进入vim编辑器:没有进入指定的文件,即没有文件名;wq 后需要加文件名!
- 复制粘贴:在命令模式下,
yy
或者y需要复制的行数y
:y3y 即复制三行;p
粘贴,退出INSERT模式下使用,复制行数从你光标处开始算往下数! - 剪贴:在命令模式下,
dd
- 撤销:在命令模式下,
u
- 查找:在底线命令模式下,输入
/ 查找的内容
或者?查找的内容
,会将所查找的文本标黄;n 键往下匹配文本、N 键网上匹配文本 - 替换:在底线命令模式下,输入
:%s/需要替换的文本/新内容/g
- 设置行号:在底线命令模式下,
:set nu
- 取消行号:在底线命令模式下,
:set nonu
- 分屏:
Ctrl-w s
将当前视窗分割成两个水平视窗;Ctrl-w v
将当前视窗分割成两个垂直视窗 - 取消分屏:在底线命令模式下,
:only
- 使用分屏同时编写多个文件:
vim -O/o file1 file2...
,大O表示垂直分割(vertical),小o表示水平分割(默认horizontal) - 移动光标,也就是切换分屏;也可以移动分屏,比如将左分屏移动到右边。
ctrl+w 和 h(H):左
ctrl+w 和 j(J) : 下
ctrl+w 和 k(K):上
ctrl+w 和 l(L): 右
ctrl+w 和 w:各种切换
4.输入输出重定向
比如 :我们通过find命令查找etc目录下的 passwd文件,由于权限问题,会出现以下:
0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
- 如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
find /etc -name passwd 2> /dev/null
结果: - 将错误重定向到/dev/null,将正确的重定向到test中:
结果: - 重定向追加:
>>
>
使用多次后,它会覆盖之前的内容,只输出一次,>>
不会覆盖内容,多次追加:
&>可以将错误信息或者普通信息都重定向输出 - 输入重定向:
- 管道:
|
| 表示,上一条命令的输出,作为下一条命令参数(输入)
(二)用户管理
1. 概述
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统,每个用户账号都拥有一个唯一的用户名和各自的口令,用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
用户信息存储目录:
/etc/passwd:存储所有用户登录名清单
/etc/group:存储有关本地用户组的信息
/etc/shadow:存储 Linux 系统中用户的密码信息(影子文件)
/home/username:用户的主目录
/etc/skel:默认的用户目录架构
2. 常用命令
- 增加用户:
useradd 用户名
登录用户:su - user1
退出当前用户:logout/exit/Ctrl+d - 增加一个组:
groupadd 组名
- 删除一个组:
groupdel 用户组
- 增加一个用户放入指定的组中:
useradd -g user1 user2
- 附加组:增加权限,将user1再附加到newgroup组中:
usermod -G newgroup user1
- 删除帐号
userdel 用户名
- 修改密码
passwd
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。 - chage命令:修改用户密码一些权限
chage -m 30 -M 90 -W 7 -I 15 -E 2020-12-31 user1
-m:设置密码前的最小天数
-E:将帐户到期日期设置为EXPIRE日期
-M:设置密码前的最大天数
-W:设置警告天数
-I:超过期限,预留的时间
-d:设置上次密码的日期
(三)权限管理
1.概述
- Linux的文件和目录有以下三种方式:
r 、w 、x:可读,可写 、可执行
r-可读(read)
w-可写(write)
x-可执行(execute) - 在Linux中,常用的文件类型为以下三种:
d
:目录 directory-
: 二进制文件 binaryl
: 软链接文件 link - 如:
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
第一个字符表示:文件类型,2-4字符表示:文件所有人权限,5-7字符表示:文件所有组权限,8-10字符表示:其他人权限。
所以上面可翻译:这是一个二进制文件,所有者可读可写 、不能执行,所属组可读 、不能写 、不能执行,其他人可读 、不可写 、不能执行,硬连接数为1,所有人为root,所有组为root,文件大小为158,创建时间或最后修改时间为Jun 7 2013,文件名为/etc/hosts。
2.chmod命令
改变文件或目录权限
- 为了方便表示,linux用了一个很简单的方法来区别,r用4表示,w用2表示,x用1表示,把他们对号入座:r - 4、 w - 2、 x - 1
所以第一个字符表示类型是目录,不考虑,接下来的三个三位数(r-xr-xr-x)就可以这么转换:(4+0+1)+(4+0+1)+(4+0+1)= 555
所以555能代表什么就懂了~ - 数字转权限和权限转数字
1)数字—>权限
例如 764 :对应的就是将7分解为4 、2 、1,将6分解为4 、2 、0,将4分解为4 、0 、0,所有对应权限为rwxrw-r--
654: 6=4+2+0, 5=4+0+1, 4=4+0+0 结果为:rw-r-xr--
2)权限—>数字
例如drwxrw-r--
: 第一位d代表类型,不参与计算,rwx=4+2+1=7,rw-=4+2=0=6, r-- = 4+0+0=4最终结果为764
3)演示:创建一个目录
初始值为:drwxrwxr-x
:转化为数字的值为:775
我们将它权限修改为:drwxrwxr--
,即chmod 774 dir
:
//下篇再见…谢谢