1 ~/.bashrc
这个可以认为是linux系统的启动项,每次启动的时候都会运行一些这里边的命令;
常见的有:
alias rm='rm -i'//修改某些指令;
export LD_LIBRARY_PATH=……//制定环境变量;LD_LIBRARY_PATH是linux系统的环境变量,直接去其目录下去找lib库等;
2 gcc
gcc(gnu collect compiler)是一组编译工具的总称;它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等;
3 glibc
glibc是gnu发布的libc库,也即c运行库。glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能
4 binutils
binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。通常,binutils与gcc是紧密相集成的,没有binutils的话,gcc是不能正常工作的;
一些常用指令:
查看centos系统版本:cat /etc/redhat-release;
5 git相关
yum install devtoolset-4-gcc-c++-7.3.1
source /opt/rh/devtoolset-7/enable
gcc --version
a 增 : useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述;
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录;
-g 用户组 指定用户所属的用户组;
-G 用户组,用户组 指定用户所属的附加组;
-s Shell文件 指定用户的登录Shell;
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号;
-p 设置密码,必须是秘文,不建议使用;
用户名 : 指定新账号的登录名;
举例:
实例1 # useradd –d /home/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录);
实例2 # useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组;
这里可能新建组:#groupadd group及groupadd adm
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等;
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理;
b 删:userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除;
c 改:usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值;
另外,有些系统可以使用选项:-l 新用户名 ;这个选项指定一个新的账号,即将原来的用户名改为新的用户名;
d 查
7.2 用户密码管理
修改密码:passwd 选项 用户名
/etc/security/opasswd文件存储历史密码,如果有冲突可以修改或删除对应的历史密码;
/etc/login.defs 文件存储了一些密码要求,如果有对密码的要求不满足(比如必须带数字等),可以修改对应文件;
7.3 用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建;
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新;
7.3.1 用户组操作
增 : groupadd 选项 用户组
删 :groupdel 用户组
改:groupmod 选项 用户组
-g GID 为用户组指定新的组标识号;
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同;
-n新用户组 将用户组的名字改为新名字;
查:
7.3.2 用户组切换,适用于一个用户,有多个用户组使用命令newgrp (另一个用户组) 切换;
7.4 系统文件管理
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等;
7.4.1 /etc/passwd
每一行记录一个用户属性,举例如下,部分内容省略:
# cat /etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
usera:x:1000:1000::/home/usera:/bin/bash
含义是:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
口令是加密的,所以只能看到x;
用户标识号,一般从100开始,0标识超级用户root,0~100系统备用;
组标示号对应着/etc/group文件中的一条记录;
7.4.2 /etc/shadow
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生;
直接pwconv运行即可;
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
7.4.3 /etc/group
用户组的所有信息都存放在/etc/group文件中;
将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段;
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组;
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组;
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员;
用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
7.4.4 /etc/sudoers,他就是来存储操作超级账户的,默认只有root,可以把你想设置成超级用户的加进去;
7.5 示例:
增加一个用户名和密码都是worker的组,并且设置工作目录为/data/worker/ ;然后删除它;
groupadd worker
useradd -g worker -d /data1/worker -s /bin/bash/ -m worker
passwd worker #设置密码
userdel worker
groupdel worker
rm -rf /var/spool/mail/worker
7.6 说明:
7.6.1 最好不要直接修改etc下边的文件夹;
8 scp失效,一般是机器存储了错误的公匙,找到本机/root/.ssh/known_hosts,删除错误ip即可,下次会显示
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[ip]:36000' (ECDSA) to the list of known hosts.
root@ip's password:
完成一次成功的scp之后,你会发现你删掉的那行有出现了在/root/.ssh/known_hosts文件中;
注:从A机器传文件到B机器,known_hosts在A机器中;另,不同用户在同一台机器上,使用不同的known_hosts;