linux部分指令
一.进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.
1.进入目录需要那些权限
r-------->读权限
w------->写权限
x-------->执行权限
其次可以通过chmod来增删权限,其指令如下
chmod u/g/o/a +/- r/w/x
创建一个目录,来验证一下权限,如下图
可见当目录没有r权限时,依然可以进入
当目录没有w权限时,依然可以进入目录,
但是目录没有x权限时,即显示进入不了目录,没有权限,由此可见,进入目录的权限时拥有x(可执行权限)。
相应的依据上述的方式进行验证,发现:
只有拥有x和w权限,我们才可以进入到该目录下进入touch 操作。
只有拥有x和r权限,我们才可以进入到该目录下进入ls 操作。
没有x权限,我们就不可以进入到该目录下进入mv和rm 操作。
二、查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
1、/proc:可以在这个目录下获取系统信息,这些信息在内存中,由系统自己产生。Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
2、/sys:进行管理设备文件
3、/SElinux:是强制访问安全系统(MAC)对于linux安全系统来说,SElinux测试是最充分的,这是一种基于内核的安全系统。SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
4、/bin:bin:是二进制执行文件目录,主要用于具体运用。
可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
6、/usr/local:存放软件升级包。
放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录, /var/run: 程序或服务启动。
8、/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
三、查找资料, 了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password
du命令
1.命令格式:
du [选项][文件]
2.命令功能:
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文 件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总计,只列出最后加总的值。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。
df命令
1.命令格式
df[选项][文件]
2.命令功能
显示磁盘分区上的可使用的磁盘空间
3.命令参数
-a或–all:包含全部的文件系统;
–block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或–human-readable:以可读性较高的方式来显示信息;
-H或–si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或–inodes:显示inode的信息;
-k或–kilobytes:指定区块大小为1024字节;
-l或–local:仅显示本地端的文件系统;
-m或–megabytes:指定区块大小为1048576字节;
–no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或–portability:使用POSIX的输出格式;
–sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或–type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或–print-type:显示文件系统的类型;
-x<文件系统类型>或–exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
–help:显示帮助;
–version:显示版本信息。
3.top命令:
第一行是任务队列信息,同uptime命令的执行结果。
16:26:26 当前时间
up 1 min, 系统运行时间,格式为时:分
2 users 当前登录用户数
load average : 1.22 , 0.43 , 0.15 系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。
Tasks : 140 total , 1 running , 139 sleeping , 0stopped , 0zombie
Cpu(s) : 0.3% us , 0.3% sy , 0.0% ni , 99.3% id , 0.0% wa , 0.0% hi , 0.0% si
Tasks : 140 total 进程总数
1 running 正在运行进程数
139 sleeping 睡眠进程数
0 stopped 停止进程数
0 zombie 僵尸进程数
Cpu(s) : 0.3% us 用户空间占用CPU百分比
0.3% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
99.3% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
最后两行为内存信息。
Mem : 1004412 k total , 502544 k used , 501868 k free , 31112k buffers
Swap : 2031608k total , 0k used , 2031608k free , 189720k cached
Mem : 1004412 k total 物理内存总量
502544k used 使用的物理内存总量
501868 k free 空闲内存总量
31112 k buffers 用作内核缓存的内存量
Swap : 2031608k total 交换分区总量
0 k used 使用的交换区总量
2031608k free 空闲交换区总量
189720 k cached 缓冲的交换区总量。
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
序号列名含义
PID 进程id
PPID 父进程id
RUSER Realusername
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为?
PR 优先级
NInice 值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D= 不可中断的睡眠状态
R= 运行
S= 睡眠
T= 跟踪/停止
Z= 僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考sched.h
free命令
1.命令格式
free [-bkmotV][-s <间隔秒数>]
2.命令功能:
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
3..命令参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
pstack命令
pstack命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。
su命令
切换到超级用户
sudo命令
sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务
sudo的常用参数
sudo -l :列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。
sudo -k:清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -b 命令:在后台执行指定的命令。
sudo -p 提示语:可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。
sudo -e 文件名:不是执行命令,而是修改文件,相当于命令sudoedit。
adduser命令
useradd可用来建立用户帐号
1.命令格式
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ]
2.命令参数
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的启始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID。
password命令
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。
1.命令格式:
passwd[选项][参数]
选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
参数
用户名:需要设置密码的用户名。
四、 查找资料, 学习如何使用命令安装gcc/g++, gdb, vim
以下在root权限下进行
安装 gcc:yum install gcc
安装g++:yum install gcc-c++,,,一直按y
安装gdb:yum -y install gdb
安装vim:输入命令 yum -y install vim