1. 有关命令及其权限问题
以bin目录为例,查看该目录的相应权限,先入命令ls -ld bin,显示:dr-xr-xr-x. 2 root root 4096 Mar 2 03:08 bin/
d表示该文件是目录文件,r表示读权限,w表示写权限,x表示执行权限,如果没有某一权限用“-”表示。d后面三个字符表示该目录的用户即文件拥有者的三种权限,再后面三个表示组用户的三中权限,再后面三个表示其他用户的三种权限。ls结果的第三列表示文件的用户名即文件的拥有者,第四列表示组用户名。
注意:root用户具有一切权限,即使将其权限去除,但它还可以执行该命令。
1)cd:切换到某一目录下,如cd bin:进入bin目录。
权限:进入某一目录,当前用户必须对该目录有执行权限。
如:dr-xr-xr--. 2 root root 4096 Mar 2 03:08 bin/
如果将当前用户切换到普通用户(即为其他用户),则cd bin时就会显示权限不被允许等相关信息。(-bash: cd: bin: Permission denied)。
2)touch:创建文件或者将已存在文件的时间标签更新为系统的当前时间。用法:touch 文件名
权限:创建一个文件,当前用户对该文件所在的目录必须具有写权限。
如:dr-xrwxr-x. 2 admin admin 4096 Mar 4 23:10 day01
当前用户为admin(即为文件拥有者),现在要在day01目录下创建一个test.c文件,因为day01的拥有者对其没有写的权限,所以不能创建文件,会出现touch: cannot touch `test.c': Permission denied
3) ls:列举当前目录下的相关文件或子目录。
使用方法:ls [选项] [文件或目录名]
选项:
-a:显示当前目录下的所有文件
-l:后跟文件名,显示文件的详细信息。后跟目录名,显示目录中文件或子目录的详细信息
-ld:后跟目录名,显示该目录的详细信息
-i:显示文件索引号
权限:ls一个目录,当前用户必须对该目录具有读权限。
如:d-wxrwxr-x. 2 admin admin 4096 Mar 4 23:10 day01
当前用户为admin(即为文件拥有者),现在想要查看day01目录下的相关文件,输入命令ls后,显示:ls: cannot open directory .: Permission denied,因为文件拥有者没有读权限。
4) rm:删除文件,用法:rm 文件名
权限:所有使用者
如果有执行权限,同时该文件所在的目录具有t权限,那么该文件只能由以下用户删除: root用户,文件所有者,目录所有者
5) mv:移动或重命名文件或目录,命令执行后,源文件或目录不存在。
权限: 所有使用者
如果有执行权限,同时该文件所在的目录具有t权限,那么该文件只能由以下用户移动: root用户,文件所有者,目录所有者
2. 根目录的子目录的内容
/bin:存放二进制可执行命令,存放的是普通用户使用的命令
/dev:存放系统设备文件
/home:存放具有登录账号的用户名
/lost+found:一般情况下是空的,当突然停电或非正常关机时,文件临时存放在这里
/proc:可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
/sbin:系统的管理命令,这里存放的是系统管理员使用的程序
/srv:系统启动服务时可以访问的数据库目录
/tmp:临时文件,重启后自动清空
/var:该目录存放那些经常被修改的文件,包括各种日志、数据文件;
/etc:系统所有的配置文件都在这个目录中
/lib:存放着和系统运行相关的库文件,系统最基本的动态链接共享库;
/media:存放着可移除的设备,比如软盘,光盘
/opt:主要给源码安装软件时选择的安装目录位置,但是目录没有在PATH环境变量中
/root:超级用户的目录
/selinux:主要用来加固操作系统,提高系统的安全性
/sys:管理设备文件
/usr: 最大的目录,用户的应用程序和文件几乎都存放在该目录下;
/usr/lib:含有更多用于用户程序的库文件
/usr/local:用来安装第三方软件的目录,该命令下面的一些子目录往往都是被加入到PATH环境变量中的,这样安装在/usr/local目录下的软件就可以在命令行执行、启动。
3. Linux下的重要命令
1) du:查看目录或文件大小,默认单位是k,是建立在文件系统能看到的基础上的,也就是我们能在文件系统里看到的文件才会被统计。
使用方法:
du [选项] [文件名/目录名]
du 目录名:显示该目录的总大小及递归显示所有目录的大小,目录缺省时,默认显示当前目录
du 文件名:显示本文件的大小
选项:
-a:显示该目录的总大小及递归显示所有目录及文件的大小
-b:以字节为单位显示
2) df:查看磁盘使用情况,单位是k
使用方法:
df [选项] [文件名/目录名]
选项: -a:显示全部的档案系统和各分割区的磁盘使用情况
3) top:linux上进行系统监控的指令,具体参数详解见以下博客:
http://www.cnblogs.com/edgedance/p/7044753.html
4)free:显示有关内存使用的情况,如下图:
total:物理内存总数
used:已经使用的内存数
free:空闲的内存数
shared:多个进程共享的内存总额
buffers Buffer:缓存内存数
cached Page:缓存内存数
-buffers/cache:应用使用内存数
+buffers/cache:应用可用内存数
Swap:交换分区,虚拟内存
5) pstack:查看目标程序下的所有正在进行线程
输入命令:ps aux | grep test.c (test.c为目标程序),找到pid
再输入:pstack pid 找到该程序下的所有正在运行的线程
6) su:切换用户名
使用方法:
su 用户名:切换到指定的用户,但不切换环境变量到指定用户下
su - 用户名:切换到指定的用户,表示将当前的环境变量也切换到新用户的环境变量
切换到root用户时,也可直接输入su,当root用户切换到其他用户时,不需要密码,其他用户切换到root或其他用户之间相互切换时,需要密码。
7) sudo:表示获取临时的root权限命令
例如,/etc/shadow文件只能root用户才能打开和编辑,但加上sudo表示临时使用root权限来编辑/etc/shadow密码文件
若要一个用户具有使用sudo的权限,首先要在root用户下打开/etc/sudoers文件中,找到如下语句:
root ALL=(ALL) ALL
假如此时要使admin用户有使用sudo的权限,只需要在上述语句的后面加入如下语句即可:
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
之后,就可以在admin用户下执行一些root用户才可以执行的权限了,但是前提要加上sudo。
选项:
-s:执行指定的shell
8) adduser:创建用户
使用方法:adduser 用户名
注意:只有root权限才可以执行该命令
该用户被登记在/etc/passwd文件中,可查看该文件来查看新添加的用户。
9) password:修改密码(只能本用户或root用户可以修改)
当前用户是root用户时,输入:password 普通用户名,给该普通用户修改密码
输入:password,给当前用户修改密码。
4. 相关工具的安装
1) gcc/g++:linux中c/c++编译器
gdb:linux中的调试器
vim:linux中多模式编辑器
安装时输入命令:yum -y install 工具名