Linux个人笔记

1.Linux文件权限
文字设定法:
chmod [who] [+ | - | =] [mode] 文件名
操作对象who是下述字母中的任一个个或者它们的组合:
u表示用户user,g表示同组group,o表示其他用户others,a表示所有用户
操作符可以是:+添加某个权限,-取消某个权限,=赋予给定权限并取消其他所有权限
设置mode所表示的权限可用下述字母的任意组合:
r可读 w可写 x可执行 等
chmod g+r,o+r example
数字设定法:
chmod [mode] 文件名
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o).
chmod 644 mm.txt

2.文件描述符
0:表示标准输入设备
1:表示标准输出设备
2:标准错误输出设备

3.Linux关机和重启命令
关机命令有 halt ,init 0,poweroff,shutdown -h 时间,其中shutdown是最安全的。
重启命令有reboot,init 6,shutdown -r 时间(now立刻)

top命令是linux下常用的性能分析工具,能够实时显示系统中各个经常的资源占用状况,默认五秒刷新一下进程列表。

4.Unix系统代码段和数据段分开的目的
代码段:代码段是用来保存可执行文件的操作指令,也就是说她是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读操作。
数据段:用来存放可执行文件中已经初始化的全局变量,存放程序静态变量和全局变量。
BSS段:包含了程序中未初始化的全局变量,在内存中bss段全设置为零
堆:用于存放进程运行中被动态分配的内存段,大小不固定可动态扩张和缩减。
栈:用户存放程序临时创建的局部变量。

分开的目的:防止程序指令被修改,设置代码段权限为只读,数据段权限为可读写。有利于提高程序的局部性,提高cpu缓存命中率。共享指令。节省内存。

5.scp命令
scp是远程文件传输的命令
ssh user@被监控主机ip “uptime”是登录主机后执行命令。
uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获取服务器的负荷情况。
ssh用于远程登录。

6.硬链接和软连接
hard link:若一个inode号对应多个文件名,则称这些文件为硬链接,换言之,硬链接就是同一个文件使用了多个别名。
软连接(符号链接):若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。
存储文件元信息的区域就叫做inode:文件的字节数文件的拥有者ID文件的组ID文件的读写执行权限文件的时间戳文件的链接数文件数据block位置。

(1)软连接可以跨文件系统,硬连接不可以
(2)硬连接不管有多少个,都指向的是同一个I节点,会把结点连接数增加,只要结点的连接数不是0,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。 当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针, 而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的inode, 并在磁盘上有一小片空间存放路径名。
(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。

7.执行进程的命令
ctrl z 挂机一个进程,暂停的意思
fg是将进程放到前台并唤醒
bg是将进程放到后台并唤醒
ctrl h在shell中是向左删除的作用

8.rpm指令
- ivh:安装显示安装进度–install–verbose–hash
- Uvh:升级软件包
- qpl:列出rpm软件包内的文件信息
- qpi:列出rpm软件包的描述信息
- qf :查看指定文件属于哪个rpm软件包
- va :校验所欲的rpm软件包,查找丢失的文件
- e:删除包

9.Linux操作系统进程类型
包含三种不同类型的进程,每个进程都有自己的特点和属性。
交互进程:由一个shell启动的进程。交互进程既可以在前台运行又可以在后台运行。
批处理进程:这种进程和终端没有联系,是一个进程序列。
监控进程(守护进程):Linux启动时启动的进程,并在后台运行

10.Unix操作系统中shell程序设计
$$、$@、$#、$* 的含义
$$表示当前命令的进程标识数
$*表示所有位置参量,列如$1 $2等
$@与$*类似 $@能够分解为多个参数
$#表示位置参数的个数,但是不包括命令名

11./etc/mtab 和 /etc/fstab
/etc/mtab文件的作用:记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等。而/etc/fstab是系统准备装载的。
/etc/fstab文件的作用:记录了计算机硬盘分区的相关信息,启动Linux的时候,检查分区的fsck命令,和挂载分区的mount命令,都需要在fstab中的信息来正确的检查和挂载硬盘。

12.telnet ping init netstat命令
telnet:常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端。Telnet协议是TCP/IP协议族中的一员,是internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成主机工作的能力。
ping:常用的网络命令,它通常用来测试与目标主机的连通性。
init:进程和作业管理,linux进程初始化的工具。
netstat:用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于校验本机个端口的网络连接情况。

13.locate find whereis type
locate:并不真正对硬盘上的文件系统进行查找,而是对文件名数据库进行检索,而且可以使用通配符?和*。
find:从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
whereis:只能用于程序名的搜索,而且只能搜索二进制的文件、man说明文件和源代码文件。
type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

14.进程间的通讯方式有哪些
管道 :管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样 提供了两个进程之间数据流动的一种方式。
消息队列 :UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数据流以消息形式发送给任意进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。
共享内存 :通过信号灯实现存储共享(类似“红灯停、绿灯行”)
文件和记录锁定:为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享资源提供的互斥性保障。
FIFO:FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。
信号灯:作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步(协调对共享存储段的存取)。

Linux线程间通信:互斥量,信号量,条件变量

15.linux卸载设备
挂载设备用mount,卸载设备用umount,有三种方式,通过设备名,挂载点或者设备名和挂载点
umount /dev/hdc
umount /mnt/cdrom
umount /mnt/cdrom /dev/hdc

16.fork
使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。
子进程与父进程的区别在于:
1、父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,矛盾了)
2、各自的进程ID和父进程ID不同
3、子进程的未决告警被清除;
4、子进程的未决信号集设置为空集

17.Linux路由器信息
路由器信息是由{目的主机所在的网络地址,下一跳地址,子网掩码}组成
-net 后面跟上目标网络
gw 是gateway(网关入口)就是你从哪个网关去到那个目标网络
netmask是子网掩码
局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置应该是:

route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1

18.孤儿进程和僵尸进程
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程就会成为孤儿进程。孤儿进程将会被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。

19.crontab文件
crontab文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。格式如下:minute hour day-of-month month-of-year day-of-week commands。

20.rsync
rsync结合inotify可以达到实时同步,最重要的是rsync是同步差异的内容,同步差异的文件开销比其他的小,并且是基于ssh协议的,sshd服务使服务器必备的,不需要额外装其他服务。

21.vi编辑器相关命令
yy实现复制一行数据
pp实现粘贴的作用
dd的指令是剪切,可以当删除一整行用
fmt编排文本文件
cut从行中截取所需要的内容进行显示

22.log日志文件
/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/boot.log — 包含系统启动时的日志。
/var/log/daemon.log — 包含各种系统后台守护进程日志信息。
/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/user.log — 记录所有等级用户信息的日志。
/var/log/Xorg.x.log — 来自X的日志信息。
/var/log/alternatives.log – 更新替代信息都记录在这个文件中。
/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
/var/log/cups — 涉及所有打印信息的日志。
/var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。
/var/log/yum.log — 包含使用yum安装的软件包信息。
/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

23.查看Linux主机的路由器命令
route可以显示默认路由器
netstate命令需要加一个参数-route

24.tar命令
-x:extrat files from an archive即从归档文件中释放文件
-v:verbosely list files processed即详细列出要处理的文件
-z:filter the archive through gzip即通过gzip解压文件
-f:use archive file or device Archive即使用档案文件或设备
因为要解压到指定目录下,所以还 应在待解压文件名后加上-C参数

-j:是否需要用bzip2压缩或者解压
-c:创建新的档案文件

25.shell环境变量配置文件
/etc/profile
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profiled.d目录的配置文件中搜集shell的设置。
/etc/bashrc
为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取
~/.bash_profile
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行~/.bashrc文件
~/.bashrc
该文件包含专用于用户的bash shell的bash信息,当登录时以及每一次打开新的shell时该文件就会被读取
~/.bash_logout
当每次退出系统退出bash shell时,执行该文件

26.用户态切换到内核态的3种方式
*系统调用
*异常
*外围设备的中断

27.将目录做归档压缩命令
例:将 /home/ abc 目录做归档压缩 , 压缩后生成 abc.tar.bz2 文件,并将此文件保存到 /home 目录下。
tar -cjvf /home/abc.tar.bz2 /home/abc
tar -cjvf 目标目录 源目录

28.useradd创建用户时设置主目录相关的参数
-p 设定账户的密码
-d 指定用户主目录
-m 自动建立用户的主目录
-M 不要自动建立用户的主目录
-c 加上备注文字
-e 指定账户的有效期限
-f 指定在密码过期后多少天关闭该账户
-g 指定用户所属的群组
-G 指定用户所属的附加群组
-u 指定用户的id

29.grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expr ession Print,表示全局正则表达式版本,它的使用权限是所有用户。
-E 表示使用扩展表达式
^:匹配正则表达式的开始行。
$:匹配正则表达式的结束行。

30.编译ARM应用程序使用的gcc命令
arm-linux-gcc -g -o test test.c
-o 参数用于指定输出的文本,如果不指定默认输出为.out文件
-c 参数将对源程序test.c进行预处理、编译、汇编操作,生成test.0文件
-S 参数将对源程序test.c进行预处理、编译、生成test.s文件
-g 选项加入GDB能够使用的调试信息,使用GDB调试时比较方便

31.hosts文件
hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下。hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名。在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决。通过可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问。

32.shell中变量赋值方法
使用read命令,read 变量1 变量2
直接赋值,变量名=变量值
使用命令行参数赋值,$命令 参数1 参数2 参数3
使用命令行的输出结果赋值,current=‘pwd’ echo $current
从文件中读入数据

33.whatever!!!
/etc/hosts 设定用户自已的IP与名字的对应表
/etc/HOSTNAME 设定用户的节点名
/etc/resolv.conf 设置DNS
/etc/gateways 设定路由器

34.查看文件固定行的内容
方法一:tail -n +K是输出从第K行开始的内容。
先输出从第300行开始的内容,然后输出前200行
cat file1 | tail -n 300 | head -n 200

先输出前500行,然后输出其中从第300行开始的内容
cat file1 | head -n 500 | tail -n +300

方法二:直接通过sed -n命令获取指定范围的内容,其中p:列印。
sed -n ‘300,500p’file1

35.产生死锁的四个必要条件
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

36.内核的子系统
进程管理系统
内存管理系统
I/O管理系统
文件管理系统

37.shell环境中变量定义
$$shell本身的pid
$!shell最后运行的后台process的pid
$?最后运行的命令的结束代码(返回值)
$-使用set命令设定的flag一览
$#添加到shell的参数个数
$0shell本身的文件名
$@是传输给脚本的所有参数的列表

38.系统调用的函数
access
arch_prctl
brk
close
execve
exit_group
fstat
futex
getdents
getrlimit
ioctl
mmap
mprotect
munmap
open
openat
read
rt_sigaction
rt_sigprocmask
set_robust_list
set_tid_address
statfs
write
pread
pwrite
lseek

39.cat三大功能
一次显示整个文件;从键盘创建一个文件(只能是新文件cat > filename);将几个文件合并为一个文件(cat file1 file2 > file)。

40.查看当前系统的时间
who -b
last reboot
top
w
uptime

41.telnet,wget,scp和rsync
telnet为用户提供了在本地计算机上完成远程主机工作的能力,使用了Telnet协议,是TCP/IP协议族中的一员,是internet远程登录服务的标准协议和主要方式。
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
scp是有security的文件copy,可以把当前一个文件copy到远程另一台主机上,基于ssh登录,ssh采用面向链接的TCP协议传输,应用22号端口安全系数较高。
rsync是类unix系统下载的数据镜像备份工具-remote sync。支持本地赋值或者与其他的ssh、rsync主机同步。可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket链接。

42.vi编辑查找
在使用vi编辑器的时候,查找内容的方法有两种:
(1)“/”:这个查找是自上而下
(2)“?”:这个查找是自下而上

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值