一、进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作,需要哪些权限。
权限:在linux下有三种用户,一种是所有者,一种是所属组,一种是其他用户。
在linux中使用命令ll(或者 ls -l)可以显示当前目录下文件的详细信息。如下图所示。
[zxy@localhost test_code]$ ll
total 12
-rwxrwxr-x. 1 zxy zxy 4686 Feb 26 23:56 a.out
-rw-rw-r--. 1 zxy zxy 74 Feb 26 23:55 test.c
在上图 rwxrwxr-x 中,每三个字符为一组,分别为所有者,所属组和其他用户。其中r表示可读权限,w表示可写权限,x表示可执行权限。
(1)当删掉 w 权限时,能够使用cd命令进入该目录,也能够使用ls查看该目录下的文件,但不能在该目录下rm、mv和touch文件。
(2)以 file 目录为例,当删掉所有者 r 权限时,能够使用cd命令进行改目录,不能使用,ls查看该目录下的文件。
(3)当删掉 x 权限时,不能使用 cd 命令进入该目录。
[zxy@localhost ~]$ ll
drwxrwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file
[zxy@localhost ~]$ chmod u-w file
[zxy@localhost ~]$ ll
total 44
dr-xrwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file
[zxy@localhost ~]$ cd file
[zxy@localhost file]$ ls
test
[zxy@localhost file]$ mv test one
mv: cannot move `test' to `one': Permission denied
[zxy@localhost file]$ rm test
rm: cannot remove `test': Permission denied
[zxy@localhost file]$ touch test1
touch: cannot touch `test1': Permission denied
[zxy@localhost file]$ cd ..
[zxy@localhost ~]$ chmod u-r file
[zxy@localhost ~]$ cd file
[zxy@localhost file]$ ls
ls: cannot open directory .: Permission denied
[zxy@localhost file]$ cd ..
[zxy@localhost ~]$ chmod u-x file
[zxy@localhost ~]$ cd file
bash: cd: file: Permission denied
[zxy@localhost ~]$ ll
total 44
d---rwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file
二、了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
/proc: proc是linux系统下一个很重要的目录。它不是一个真正的文件系统,而是一个虚拟的文件系统。它不存在于磁盘,而是存在于系统内存中。proc以文件的方式为访问系统内核的操作提供接口。很多系统的信息,如内存使用情况,CPU使用情况,进程信息等等这些信息,都可以通过查看/proc下的对应文件来获得。proc文件系统是动态从系统内核读出所需数据的。
/sys: sys是一种基于ram的文件系统,和proc一样。sys文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。简而言之,就是用户可以通过对sys文件系统的访问,来看内核的一些驱动或者设备等。
/SElinux: SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。
/bin: bin是binary的缩写,用来存放所有用户皆可用的系统程序,系统启动或者系统修复时可用,/bin 简单来说就是可执行的命令的目录。
/usr/lib: 目录 /usr/lib/ 中含有更多用于用户程序的库文件,也被用来贮存用户命令。/usr/lib系统级的。,用户级的。而/lib是内核级的,/usr/local/lib是用户级的。
/usr/local: /usr/local该目录主要用于存放那些手动安装的软件,即 不是通包管理工具或apt-get安装的软件。
/var: /var文件系统一般运行经常要改变的文件。
/tmp: /tmp文件是linux运行时产生的缓存文件,用于加速二次打开文件的速度。/tmp文件在linux关机时会被系统预设指令删除的。一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
三、了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password
du: du命令是对文件和目录磁盘使用的空间的查看。语法 du [选项] [文件]
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
df: linux中df命令参数功能是检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法 df [选项]
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。
top: top命令是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
free: free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
pstack: pstack命令可以显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID。它只有一个参数就是pid。
su: su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
语法 su [选项] [参数]
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更 PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s
--help:显示帮助;
--version;显示版本信息。
sudo(sudo -, sudo -s): sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
语法 sudo [选项] [参数]
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
adduser: adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。另一条创建用户命令是adduser ,用户删除命令userdel。
两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本
password: passwd命令原来修改账户的登陆密码,使用权限是所有用户。语法 passwd [选项] 账户名称
-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x, --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n, --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
四、使用命令安装gcc/g++, gdb, vim
(1)使用命令安装gcc/g++
[zxy@localhost ~]$ yum list | grep gcc
gcc.i686 4.4.7-18.el6 @base
gcc-c++.i686 4.4.7-18.el6 @base
libgcc.i686 4.4.7-18.el6 @base
compat-gcc-34.i686 3.4.6-19.el6 base
compat-gcc-34-c++.i686 3.4.6-19.el6 base
compat-gcc-34-g77.i686 3.4.6-19.el6 base
compat-libgcc-296.i686 2.96-144.el6 base
gcc-gfortran.i686 4.4.7-18.el6 base
gcc-gnat.i686 4.4.7-18.el6 base
gcc-java.i686 4.4.7-18.el6 base
gcc-objc.i686 4.4.7-18.el6 base
gcc-objc++.i686 4.4.7-18.el6 base
[zxy@localhost ~]$ sudo yun install gcc.i686
通过命令 yum list | grep gcc 列出gcc安装包(g++同理),再通过命令 sudo yun install
gcc.i686(选择你想要的安装包)
安装。
注:如果已经安装过gcc/g++则无需再安装。
(2)使用命令安装gdb
验证 gdb 是否已经安装,在命令行直接输入 gdb 如果运行,则已经安装。反之通过命令 yum list | grep gdb,列出gdb的安装包,再通过命令sudo yun install +(选择列出的安装包之一)安装。
(3)使用命令安装vim
验证 vim 是否已经安装,在命令行直接输入 vim 如果运行,则已经安装。反之在命令行输入下面两条命令。
sudo apt-get install vim (ubuntu)
yum install vim (redHat/Fedora/CentOS)