linux系统编程手册pdf(分享c语言核心技术pdf)

linux系统编程手册pdf(分享c语言核心技术pdf)

  一、文件和目录的基本概念

  1、Linux 的目录结构

  Linux 系统的优势:多用户多任务的系统 安全性更高 开源免费

  在 Linux 系统中,将所有的目录和文件数据组织为一个树型的目录结构,整个系统中只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。

  2、命令提示符

  [root@localhost~]#

  root:当前登录的用户名

  localhost:本机的主机名

  ~:用户当前所在目录,~代表家目录

  root 用户的家目录是:/root

  普通用户的家目录是:/home

  #:当前登录的用户为管理员用户

  $:当前登录的用户为普通用户

  3、切换用户用:su 用户名

  由 root 用户切换到普通用户不需要输入密码

  由普通用户切换到其他用户就必须输入密码

  4、显示当前目录所在的完整路径:pwd

  5、目录切换命令:cd

  cd /etc 切换到/etc/目录

  cd .. 返回上一级目录

  cd 返回家目录

  根目录:/

  家目录:普通用户的家目录在/home 下面,root 的家目录是:/root

  6、绝对路径和相对路径

  相对路径:是当前目录下的某个文件或路径

  绝对路径:是指目录或文件的完整路径

  7、命令行编辑的几个辅助操作

  Tab 键:自动补齐

  分号“;”:在同一行中输入多个命令,中间用;隔开

  反斜杠“\”:在一行命令后加上\,表示另起一行继续输入上下方向键:找出曾经执行过的历史命令查看历史命令:history

  快捷键 Ctrl+U:清空至行首

  快捷键 Ctrl+K:清空至行尾

  快捷键 Ctrl+L:清屏

  快捷键 Ctrl+C:终止命令的执行

  8、关机命令:shutdown (安全地将系统关机)

  shutdown 参数说明:

  [-t] 在改变到其它 runlevel 之前﹐告诉 init 多久以后关机。

  [-r] 重启计算器。

  [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。

  [-h] 关机后关闭电源〔halt〕。

  [-n] 不用 init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。

  [-c] cancel current process 取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。

  [-f] 在重启计算器〔reboot〕时忽略 fsck。

  [-F] 在重启计算器〔reboot〕时强迫 fsck。

  [-time] 设定关机〔shutdown〕前的时间。

  例如:

  /sbin/shutdown -h now-----立即关机;

  /sbin/shutdown -h 20:49----20:49 分关机

  /sbin/shutdown -h +10-----10 分钟后关机

  /sbin/shutdown -r now -----立即重启

  /sbin/shutdown -r +10 ‘The system will reboot’----10 分钟后系统

  重启并给每个登录用户发通知

  /sbin/shutdown -k now ‘The system will reboot’----仅给每个登录用

  户发通知并不真关机

  reboot init 6

  二、常用 shell 命令介绍

  shell 命令格式:命令名 [选项] [参数]

  1、文件管理命令

  ls–列表显示目录内容

  ls 显示结果以不同的颜色来区分文件类别。

  蓝色代表目录(文件夹)

  灰色代表普通文件

  绿色代表可执行文件

  红色代表压缩文件

  浅绿色代表链接文件(快捷方式)

  选项说明:

  -a 显示所有文件,包括隐藏文件(以.号开头的文件)。

  -l 以长格式(内容更详细)显示文件或目录的详细信息。

  -h 以 K、M、G 等单位显示文件大小(

  默认为字节),提高可读性

  -lh

  2、通配符的使用:

  “?”可以匹配文件名中的一个任意字符,

  “*”可以匹配文件名中的任意多个字符。

  举例:显示/etc 目录下文件名以 ns 开头,扩展名是 conf 的文件的详细信息 ls –l /etc/ns*.conf

  显示/etc 目录下文件名以 v 开头,文件名一共是 4 个字符的文件的详细信息 ls –l /etc/v?

  3、创建目录(就是新建文件夹):要考虑权限问题 mkdir –p -m

  例 1:在当前目录创建名为 test 的子目录

  [root@localhost /]:#mkdir /mnt/test

  例 2:在根目录中创建名为 public 的子目录

  [root@localhost /]:#mkdir /public

  例 3:在当前目录中同时创建 3 个子目录

  [root@localhost /]:#mkdir mp3 mp4 mp5

  当前目录为/,此时在/mnt 目录下同时创建 2 个子目录 y1 y2 [root@localhost /]:#mkdir /mnt/y1/ y2/y3

  例 4:创建连续目录

  [root@localhost /]:#mkdir – p /media/cdrom 例 5:创建目录,同时设置权限

  [root@localhost /]:#mkdir – m 775 test

  4、删除目录或文件

  删除空目录:rmdir

  例 1:删除当前目录下的空目录 mytest [root@localhost /]:#rmdir mytest

  例 2:删除连续目录

  [root@localhost /]:#rmdir – p /media/cdrom/aa

  删除文件:rm 默认只删除文件,不删除目录

  例 1:删除当前目录下文件 1.txt

  [root@localhost /]:#rm 1.txt 有提示,确认删除请输入 y [root@localhost /]:#rm -f 1.txt 无提示,直接删除

  例 2:删除当前目录下的 student 目录

  [root@localhost /]:#rm -rf /student

  5、复制文件或目录

  复制文件

  [root@localhost ~]# cp /bin/touch /root/test/toch1

  [root@localhost ~]# cp /etc/inittab /etc/inittab.bat 将文件进行备份

  复制目录

  [root@localhost ~]# cp –R /tmp /root/mnt

  6、移动(剪切–粘贴)文件或目录

  [root@localhost ~]# mv /root/test/test1.txt /root/test/test2.txt 重命名 [root@localhost ~]# mv /root/test/test2.txt /tmp/

  7、新建文件

  touch /1.txt 在/目录下新建一个 1.txt 文件

  三、查看文件内容命令

  1、cat–显示文件的内容

  cat –n 显示行号

  cat 在显示文本文件的内容时不进行停顿,因此不适合查看长文件。

  2、more 或 less 分页显示文件内容

  采用全屏的方式分页显示文件内容,当内容满屏时便会暂停,按空格键继续显示下一画面,或按 q 键跳离,适于阅读长文件。

  区别:

  当文件内容显示到文件尾时,more 命令会自动退出阅读环境,而 less 命令不自动退出,需在提示符“:”后按 q 键退出。

  3、head 和 tail–查看文件开头或末尾的部分内容

  默认情况下,head 显示前 10 行内容,tail 显示后 10 行内容。

  举例:查看/etc/inittab 文件的前 3 行内容

  查看/etc/inittab 文件的后 5 行内容

  4、wc 命令——文件内容统计

  作用:用于统计指定文件中的行数、单词数、字节数。

  语法:wc(选项)(参数)

  常用选项:

  -l 统计行数

  -w 统计单词数

  -c 统计字节数

  举例:依次统计/mnt/test/1.txt 文件中的行数、单词数、字节数分别统计/mnt/test/1.txt 文件中的行数、单词数、字节数

  四、查找命令

  1、find 命令:搜索文件与目录

  作用:是在某个指定的路径下找我们需要的文件或目录,目标是文件或目录。

  类似于在 Windows 系统中执行的“搜索”操作。

  语法:find [查找范围] [查找条件表达式]

  常用选项:

  -name 按名称查找,允许使用通配符。

  -type 按文件类型查找文件类型包括:普通文件(f)、目录(d)、块设备

  文件(b)、字符设备文件(c)

  -user 按文件所有者查找,根据文件是否属于某个目标用户进行查找。

  -size 按文件大小查找,使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括 k(注意是小写)、M、G

  # find /etc -size +1024k -name “init*” #find /etc -name 1.txt

  2、grep 命令:查找文件内容

  作用:是在某个文件中找我们所需要的某部分内容,目标是字符串。则类似于在

  WORD 中执行的“查找”操作。

  语法:grep [选项] 查找条件 目标文件

  常用选项:

  -c :计算找到 ‘搜寻字符串’ 的次数

  -i :忽略大小写的不同,所以大小写视为相同

  -n :顺便输出行号

  -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!

  –color=auto :可以将找到的关键词部分加上颜色的显示!

  注意:grep 不支持通配符,而是使用正则表达式:

  ^ 表示以什么字符开头

  $ 表示以什么字符结尾

  如:“^word”表示以“word”开头

  “word$”表示以“word”结尾

  “^$”表示空行

  五、其他辅助命令

  1、查看历史命令:history

  作用: 的 history 命令的作用是,记录执行过的命令。

  用法:history [n] n 为数字,列出最近的 n 条命令

  使用! 执行历史命令。

  ! number 执行第几条命令

  ! command 从最近的命令查到以 command 开头的命令执行 !! 执行上一条

  2.help 命令:只能查看内部命令的帮助信息

  举例:查看 pwd 命令的帮助信息

  pwd –help

  如果使用 help 命令查看外部命令的帮助信息时则会报错

  使用–help 选项查以查看外部命令的帮助信息

  3.man 命令:查看命令的帮助手册

  使用“↑ ”、“↓ ”方向键滚动文本

  使用 Page Up 和 Page Down 键翻页

  按 Q 或 q 键退出阅读环境、按“/”键后查找内容举例:查看 ls 的帮助手册

  4.输入输出重定向

  Linux 系统中标准的输入设备为键盘,标准输出设备为屏幕,但在某些情况下,我们希望能从键盘以外的其他输入设备读取数据,或者将数据送到屏幕外的其他输出设备,这种情况称为重定向。

  输入重定向:<

  输出重定向:>或>>

  输出重定向是将命令的输出结果重定向到一个文件中,而不是显示在屏幕上。

  “>”后面指定的文件如果不存在,将先建立该文件,再保存命令结果到文件中。

  “>”后面指定的文件如果存在,将先清空文件的内容,再保存命令结果到文件中。

  “>>”可以将命令结果重定向并追加到指定文件的末尾保存,而不覆盖文件中原有的内容。

  举例:将 1.txt 的内容输出重定向到 a.txt

  Cat 1.txt > a.txt

  将 1.txt 的内容追加到 a.txt

  将错误信息输出到文件

  ls /etc/hhh 2> erro

  cat > newfile

  ls > newfile

  cat > newfile < 1.txt

  5.管道符“|”

  通过管道符“|”,可以把多个简单的命令连接起来实现更加复杂的功能。

  管道符用于将“|”左边命令的执行结果作为“|”右边命令的输入。

  [root@localhost ~]# ls -lh /etc | more

  分页显示/etc 目录下所有文件和子目录的详细信息。

  [root@localhost ~]# ls -lh /etc | grep net

  显示/etc 目录下包含有“net”关键字的所有文件和子目录的详细信息。

  [root@localhost ~]# ls -l /etc/*.conf | wc –l

  统计/etc 目录下所有以“.conf”结尾的文件的个数。

  [root@localhost ~]# grep -v “^#”

  /etc/httpd/conf/httpd.conf | gerp –v “^$” 查看/etc/httpd/conf/httpd.conf 文件中除了以“#”开头的行和空行以外的内容。

  6. clear 命令–清屏

  Ctrl+l

  六、文件权限

  1、文件属性说明

  第 1 组:文件类型,其中第一个字符代表文件的类别。

  – 普通文件 d 目录 l 符号链接

  c 字符设备 b 块设备

  文件的权限

  r:可读 w:可写 x:可执行 -:没有权限

  第 2 组:文件件的连接数第 3 组:文件所有者

  第 4 组:文件属组

  第 5 组:文件大小,默认单位为字节第 6 组:文件创建时间

  第 6 组:文件名称

  2、修改文件的权限:chmod

  字母方式修改权限

  文件所有者权限(u)

  所属组权限(g)

  其他用户权限(o)

  所有用户(a)

  举例:/mnt 的权限是 drwxr-x—

  chmod u-w /mnt 权限变为:dr-xr-x—

  chmod o+rx /mnt 权限变为:dr-xr-xr-x

  chmod g+w /mnt 权限变为:dr-xrwxr-x

  chmod a+w /mnt 权限变为:drwxrwxrwx

  3、数字方式修改权限

  r=4 w=2 x=1 -=0

  4、修改文件的所有者与所属组:chown

  举例:chown teacher:teacher /test1 同时修改所有者与所属组

  chown root /test1 修改所有者

  chown :student /test1 修改所属组

  5、特殊权限:

  1)ACL:访问控制【针对其他用户当中的部份或个别用户设置特殊权限】

  setfacl -m u:stu1:rwx A

  创建一个 ACL 规则,使 stu1 用户对 A 目录具有 rwx 权限

  getfacl A 查看 ACL 规则

  setfacl -x u:stu3 A

  删除 stu3 对 A 目录的 ACL 权限,只删除了一条规则 setfacl -b A

  删除 A 目录的所有 ACL 规则

  (2)SBIT:粘滞位权限(强制位权限)【针对其他用户,只能删除自己的文件,不能删除其他的用户的文件】

  chmod o+t A

  (3)SGID:针对其他用户设置,以所属组的身份去执行。

  hmod g+s A

  (4)SUID:以文件所有者的身份执行文件,只针对可执行文件。

  chmod u+s A

推荐阅读