读书笔记-Linux C 编程从基础到实践所有内容在
github/zxwtry/document/linux/201606/Linux C 编程从基础到实践
github链接:点击这里
001 mkdir -m 710 chap1
-m 配置权限选项710 每位数字是4+2+1形式
4:r 2:w 1:x
首位:目录所有者权限
中位:组中其他人对目录的权限
末位:系统中其他人对目录的权限
002 mkdir -p /home/case1/case2/case3
-p 如果中间目录不存在,会自动创建
003 rmdir chap1
删除chap1目录,如果目录不为空,抛错
004 rmdir -p chap/chap1/chap2/chap3/
删除chap3的同时,如果上一级目录为空,继续删除上一级
如果某一级有空文件夹或者文件,会报错,但出错之前的文件夹会删除的。
005 cd c[*?] 注:当前目录下有目录c0000 c1 c2
cd c* 进入c0000
cd c? 进入c1
006 三个特殊目录: / . ..
/ 根目录
. 当前目录
.. 上一级目录
007 ubuntu 14.04 自带的所有alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
008 ls的所有选项
-a 横着排,包括.开头
-b step1:vim \\a step2:ls (\a) step3:ls -b (\\a)
不可输出字符用反斜线加字符列出
-i step1:echo "aa" >> a step2:ls -i (403224 a)
step3:echo "bb" >> b step4:ls -i (403224 a 403229 b)
step5:mkdir c step6:ls -i (403224 a 403229 b 403235 c)
列出文件i节点的索引信息
-k 使用1024-byte快,有疑惑
-m 横着排,用","分割
-n 用数字的UID, GID代替名称
-o 显示文件的详细信息,除了组信息
-p-F 每个文件名后附上一个字符用于说明文件类型
"" 文本文档,什么都不添加
"*" 表示可执行的普通文件
"/" 表示目录
"@" 表示符号链接
"|" 表示FIFOs
"=" 表示套接字(sockets)
-q 用"?"代替不可输出的字符
-r 逆序
-s 文件名+文件大小
-t 时间顺序
-u 文件上次被访问的时间,排序
-x 横着排,不包括.开头
-A 显示除"."和".."外的所有文件
-B 不输出"~"结尾的备份文件
-C 按列输出,纵向排序
-G 输出文件的组信息
-L 列出文件名而不是链接到的文件
-N 不限制文件长度
-Q 把输出的文件名用双引号括起来
-R 列出所有子目录下的文件
-S 以文件大小排序
-X 以文件的扩展名排序
-1 一行只输出一个文件
009 linux文件类型
- 常规文件
d 目录
b 块特殊设备
c 字符特殊设备
s 信号灯
m 共享存储器
010 find-查找文件命令
find [目录列表] [匹配标准]
-amin n 查找系统中前n-1到前n分钟访问的文件
-atime n 查找系统中前n*24到前(n+1)*24小时访问的文件
-cmin n 查找系统中前n-1到前n分钟被改变状态的文件
-ctime n 查找系统中前n*24到前(n+1)*24小时访问的文件
-empty 查找系统中空白的文件,或空白的文件目录,
或者目录中没有子目录的文件夹
-false 查找系统中总是错误的文件
-fstype type 查找系统中存在于指定文件系统的文件
例如ext2
-name 使用名称匹配,支持通配符 "test*"
-gid n 查找系统中数字组ID为n的文件
-group gname 属于gname问你教案组,并且指定组和ID的文件
-daystart 从现在开始往前24小时的文件
-depth
-follow 遵循通配符链接方式查找
-maxdepth n 在某个层次目录中按照递减方法查找
-mount 不在文件系统目录中查找
find示例
find /home/TOBEDELETED 或者 find TOBEDELETED
都是将TOBEDELETED(包含自身),里面所有文件文件夹都显示出来
find [目录] -name [通配符]
如果通配符只有一个匹配项,可以不加单引或双引
如果通配符有多个匹配项,必须要加单引或双引
一般,就在通配符上面加上单引或双引吧
011 cat -v -E a.txt
会在每行结束的地方增加一个$字符
cat -n a.txt
会添加行号,行号占6个位,后面再空一个大位
012 cp [选项] 源文件或目录 目标文件或目录
-a 通常在复制目录时使用,保留链接、文件属性,并递归地复制目录。
作用等同于dpR选项的组合
-d 复制时保留链接
-f 删除已经存在的目标文件而不提示
-i 和f选项相反,在覆盖目标文件之前将给出提示,要求用户确认
回答y时,目标文件将会被覆盖,是交互式拷贝
-p 此时cp除复制源文件的内容外,
还将把其修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一个目录文件,
此时cp将递归复制该目录下所有的子目录和文件,
此时目标文件必须为一个目录名。
-l 不进行复制,只是链接文件
在源和目上任何一个进行修改都会在另外一个上有显示。
013 mv [选项] 源文件名 目标文件名
mv [选项] 源目录名 目标目录名
mv [选项] 文件列表 目录
-b 覆盖文件或目录的时候,自动备份。
使用 -S<字符串> 来指定,若未设置,则加"~"
-i 交互式
-f 通常,没有任何提示,就是移动
没有权限就报错
-u 当被覆盖的文件更新,则不覆盖源文件
014 wc [选项] 文件列表
-c 统计字节数
-l 统计行数
-w 统计字数
015 su [选项] user
-p 执行su时不改变环境参数
-c 切换到user用户并执行指令(command),然后再切换回原来用户
-s 指定要执行的shell,默认在/etc/passwd文件中已设置完成,
若用户需要更改shell时,可采用此参数
在root账户中,su root是不需要密码的。
016 sudo [选项] 命令
-l 显示出执行sudo用户的权限
-v sudo在第一次执行时或是在N分钟内没有执行(N预设为5)会问密码,
这个参数是需要重新进行一次确认,如果超过N分钟,也会询问密码。
-k 强迫用户在下一次执行sudo时查询密码(不论有没有超过N分钟)
017 进程管理命令(ps和kill)
ps [选项]
-ef 查看所有进程及其PID(进程号)、系统时间、
命令的详细目录、执行者等。
-aux 除可显示"-ef"所有内容外,还可以显示CPU及内存占用率、
进程状态
-w 以加宽方式显示,这样可以显示较多的信息
参数w最多可以写3次,含义是加宽3次,这样能够显示很长的命令行。
kill [选项] 进程号(PID)
-s 指定信号发送给进程
018 IP地址管理命令(ifconfig)
使用权限是root
可以查看和配置IP地址、网络掩码、广播地址;有两种使用形式
1, ifconfig [选项][网络接口]:用来查看当前系统的配置情况
2, ifconfig 网络接口 [选项] 地址: 用来配置指定接口
(如eth0、eth1)的IP地址,网络掩码、广播地址等。
[书中,这里的选项没有-,具体原因未知]
interface 指定的网络接口名,如eth0和eth1
up 激活指定的网络接口卡
down 关闭指定的网络接口卡
broadcast address 设置接口的广播地址
point to point 启用点对点方式
address 设置指定接口设备的IP地址
netmask address 设置接口的子网掩码地址
019 帮助命令(man)
man [选项] 命令名称
-f 只显示出命令的功能,而不显示其中详细的说明文件
-w 不显示手册页,只显示对应帮助文件的所在位置
-a 显示所有的手册页,而不是只显示第一个
020 关机和重启命令(shutdown, halt和reboot)
shutdown [选项][时间][警告信息]
a, 需要root权限
b, 系统关闭之前给系统上的所有登录用户发送一个警告信息。
c, 时间信息可以是一个精确的时间: hh:mm
d, 时间信息可以是一个时间段: +[分钟数]
-k 并不真正关机,而只是发出警告信息告诉所有用户
-f 关机后,立即重新启动
-h 关机后,不重新启动
-c 取消一个已经运行的shutdown
halt [选项]
a, 需要root权限
b, halt是最简单的关机命令,其实际上是调用"shutdown -h"命令
c, halt执行时,"杀死"应用进程,文件系统写操作完成后停止内核
-n 在关机前,不做将内存资料写回硬盘的动作
-w 并不会真正关机,只是把记录写到/var/log/wtmp文件里
-d 不把记录写到/var/lob/wtmp文件里 (-n 实际包含 -d)
-f 强迫关机,不调用shutdown这个指令
-i 在关机之前先把所有网络相关的装置停止
-p 当关机的时候,顺便做关闭电源(poweroff)的动作,
取消一个已经运行的shutdown
reboot [选项]
a, 需要root权限
-n 在关机前,不做将内存资料写回硬盘的动作
-w 并不会真正关机,只是把记录写到/var/log/wtmp文件里
-d 不把记录写到/var/lob/wtmp文件里 (-n 实际包含 -d)
-f 强迫关机,不调用shutdown这个指令
-i 在关机之前先把所有网络相关的装置停止
021 查看内核和发行版本号(uname和lsb_release)
uname [选项]
-a 显示全部
-s 显示内核名称
-n 显示网络节点主机名称
-r 显示内核发行版
-v 显示内核版本号
-m 显示系统硬件主机名称
-p 显示处理器名称
lsb_release [选项]
a, 需要root权限
-a 显示全部
-v 显示版本号
-i 显示发行版作者
-d 显示当前使用版本的相应
-r 显示当前使用版本的发行版本号
022 POSIX Portable Operation System Interface Of Unix
可移植操作系统接口
023 RPM包管理
rpm -vih file.rpm: 安装一个RPM包
rpm -e file.rpm: 卸载一个RPM包
rpm -qpR file.rpm: 查看RPM包的依赖关系
rpm -q file: 查询系统已安装的RPM包