前言:
对于长期扎根在Windows这样普罗大众系统中的我,以前并没有任何不适,实话说,如果不是我们学期末课设需要学习CentOS,我应该也不会这么快踏进Linux的大门,从昨天装系统到今天,要说真正体验到了CentOS的快捷那是有点不太现实,但是它确实给了我很多惊喜。
Linux下权限、重要命令及各文件夹的用途介绍:
- 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.;
- 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp 等
- 了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password 。
一、权限:
权限对于Linux管理是很重要的。权限管理就是对文件权限管理。
(r 读权限;w 写权限;x 执行权限)
- cd 需要 x 权限 ; touch 需要 wx 权限 ; ls 需要 rx 权限 ; rm 需要 rwx 权限; mv需要 wx 权限。
二、各文件夹的用途介绍:
- /proc:此目录的所有数据都在内存里,如 系统核心,外部设备,网络状态。由于所有数据都储存在内存里,所以不占用磁盘空间;
- /sys:该目录不能直接操作,存放类似于/proc的文件系统,在linux2.6内核中最新出现,包含的文件用于获得硬件状态并反映内核看到的系统设备树。它使用了/proc中的很多帮助;
- /SElinux:SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略;
- /bin:可执行的二进制文件目录,如ls mv cat …
- /opt:存放第三方软件。第三方软件在安装时默认会找到这个目录,所以如果你没有安装此类软件时,它是空的,但如果你一旦把它删除,以后再安装此类软件可能会碰到麻烦。
- /media:存放挂载和自动挂载设备的标准位置。如远程文件系统和可移动介质;
- /srv:系统启动服务时可以访问的数据库目录;
- /var:放置系统执行过程中不断改变的文件,如随时更改的日志文件;
- /var/log,/var/log/message: 所有的登录文件存放目录;
- /var/spool/mail: 邮件存放的目录, /var/run: 程序或服务启动;
- /tmp:一般用户或正在运行的程序存放临时文件的目录,任何人都可以访问,重要的文件不可以放在此目录下;
- /dev:设备特殊文件;
- /etc:系统管理和配置文件;
- /etc/rc.d:启动的配 置文件和脚本;
- /home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
- /lib:标准程序设计库,又 叫动态链接共享库,作用类似windows里的.dll文件;
- /sbin:系统管理命令,这 里存放的是系统管理员使用的管理程序;
- /tmp:公用的临时文件存储点;
- /root:系统管理员的主目录;
- /mnt:系统提供这个目录是 让用户临时挂载其他的文件系统;
- /lost+found:这个 目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这里;
- /usr:最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6:存放x window的目录。
/usr/bin:众多的应用程序。
/usr/sbin:超级用户的一些管理程序。
/usr/doc:linux文档。
/usr/include:linux下开发和编译应用程序所需要的头文件。
/usr/lib:常用的动态链接库和软件包的配置文件。
/usr/man:帮助文档。
/usr/src:源代码,linux内核的源代码就放在/usr/src/linux 里。
/urs/local:存放软件升级包。
/usr/local/bin:本地增加的命令。
/usr/local/lib:本地增加的库根文件系统。
注意:
通常情况下,根文件系统所占空间一般应该比较小,因为其中的绝大部分文件都不需要经常改动,而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏。除了可能的一个叫/vmlinuz标准的系统引导映像之外,根目录一般不含任何文件。所有其他文件在根文件系统的子目录中。
三、部分重要命令:
- du:作用是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。
主要参数:
a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计- top: 基本格式df [options]
作用:命令用来显示执行中的程序进程,使用权限是所有用户
主要参数:
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。- df: 命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
主要参数:
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以1024字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示inode信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
-P:使用POSIX输出格式。
-T:显示文件系统类型。- free: 格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
作用:free命令用来显示内存的使用情况,使用权限是所有用户。
主要参数:
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。- su格式 su [选项]… [-] [USER [ARG]…]
作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
主要参数
-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , –login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
-m, -p ,–preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:欲变更的使用者账号,ARG传入新的Shell参数。- adduser:
(1)创建用户命令两条:
adduser 0
useradd
(2)用户删除命令:
userdel
两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。- password
(1) 修改用户密码。
附加:
更新yum源:
● 将yum源换为国内的源,使下载速度加快,并防止被墙(有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。这时候需要将yum源设置为国内镜像站点。国内主要开源的开源镜像站点应该是网易和阿里云了。);
具体方法参考:将yum源换为国内的源
● 更换完成后,输入命令 yum makecache (主要目的是将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度);
● 安装完成后,安装g++/gcc 、vim;
●今天在linux的服务器上安装C/C++的编译器gcc和g++,运行了如下两条命令:
1 yum install gcc
2 yum install g++
然后发现gcc可以正确安装,但安装g++时却提示: Cannot find a package matching g++
后在网上搜索后才发现,原来在linux下,C++的编译器不是g++这个名称,而是gcc-c++,由此看来的确是我想当然了。然后直接运行
1 yum install gcc-c++ libstdc+±devel
就可以了。安装完成后在linux下输入: which g++,就看到g++已经安装完成(一般是在 /usr/bin 目录下)
● 输入 yum install gdb 随后输入 y 即可;
●最后,输入gcc -v、gdb -v检查是否安装成功。
结语:
天天编程,天天向上!