谈到Linux,关于其的有文件、用户、权限、系统和网络,理应掌握基础命令、熟悉目录结构、编写基本的shell以及深谙网络应用;
一、shell环境变量配置文件
用户主目录下的.bash_profile、.bashrc和.bash_logout只对某一个用户有效;
/etc下的profile和profile.d文件夹是为所有的用户设置环境变量等信息;
当用户登录时 ~/.bash_profile文件仅仅执行一次,默认情况下,设置一些环境变量,执行 ~/.bashrc文件,用户退出登陆时,执行 ~/.bash_logout;
用户第一次登陆时,执行/etc/profile,并从/etc/prpfile.d目录中的配置文件中搜集shell的设置;
二、$相关符号定义
$$:当前命令的进程标示数
$*:所有的位置参量
$@:与$*类似,但是当用双引号进行转义时,"$@"能够分解为多个参数,而"$*"合并成一个参数;
$#:包括位置参数的个数,不包含命令名;
$?:代表命令或者shell执行后的返回状态码;
三、OSI模型各层协议
物理层: RJ45 、 CLOCK 、 IEEE802.3 (中继器,集线器,网关)
数据链路: PPP 、 FR 、 HDLC 、 VLAN 、 MAC (网桥,交换机)
网络层: IP 、 ICMP 、 ARP 、 RARP 、 OSPF 、 IPX 、 RIP 、 IGRP 、 (路由器)
传输层: TCP 、 UDP 、 SPX
会话层: NFS 、 SQL 、 NETBIOS 、 RPC
表示层: JPEG 、 MPEG 、 ASII
应用层: FTP 、 DNS 、 Telnet 、 SMTP 、 HTTP 、 WWW 、 NFS
四、malloc/free和new/delete的区别
前者是C/C++的标准库函数,后者是C++运算符;
对象在创建时自动调用构造函数,在消亡之前自动调用析构函数,由于前者是库函数而不是运算符,不在编译器控制范文内,不能讲后者任务附加到前者上;
后者返回void指针,前者返回分配类型变量的指针;
五、硬连接和软连接的区别
- 原理
硬连接:A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。
软连接:A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
- 区别
硬连接不能对目录建立连接,软连接可以;硬连接不能跨文件系统,软连接可以;硬连接不能对空文件建立连接,软连接可以;
六、权限相关
- 文件默认权限是755,目录的默认权限是644;
七、常用命令总结
文件相关:
mkdir rmdir | touch rm | cat more less head tail | ls ln find |
wc grep sed awk | cp mv
系统管理相关:
stat who whoami uname hostname | which whereis | top uptime |
ps kill | df du | netstat ifconfig ping
关机重启:
reboot halt | shutdown -r -h now
压缩和解压缩:
tar -cvf source destination 只打包不压缩
tar -zcvf source destination 打包并用gzip压缩
tar -jcvf source destination 打包 并用bzip压缩
解压缩将c替换为x即可
用户及用户组管理:
/etc/passwd /etc/group /etc/shadow /etc/gshadow
useradd userdel adduser groupadd groupdel
su root
/etc/profile bash_profile .bash_rc