文档库 最新最全的文档下载
当前位置:文档库 › Linux 截图

Linux 截图

Linux 截图
Linux 截图

Linux 截图.txt 实验内容:实验内容:

1、$ pwd

2、

$

cat file1 file2 file3

3、$

ping –c 3 https://www.wendangku.net/doc/a79764412.html,

4、$

uname –n

5、$ ls

6、使用man 命令来获得每个Linux 命令的帮助手册,用man ls, man passwd, man

pwd命令得到ls、passwd、pwd 三个命令的帮助手册。也可以使用:命令名 --help 格式来

显示该命令的帮助信息,如who --help,试一下这些命令。

Man ls:

man passwd

man pwd

Help::

7、有多少用户正在使用你的Linux 系统?给出显示的结果

8、使用下面的命令显示有关你计算机系统信息: uname 显示操作系统的名称)(,

uname –n(显示系统域名)

9、使用whoami 命令找到用户名。然后使用who -a 命令来看看你的用户名和、

同一系统其他用户的列表。

Whoami

who -a:

2 Linux 应用实训项目 2:shell 基本命令:实验目的:实验目的:

练习data、cal、pwd 等几个常用的Linux 命令。

实验内容:实验内容:

1、用命令date 显示当前的时间,给出显示的结果。

2、用cal 命令显示下列年份的日历:4、52、1752、1952、2005、2006 a) 出你显示

以上年份年历的命令

3、用pwd 显示你的主目录(home directory)名字,给出pwd 显示的结果。

4、使用write 命令和已经登录系统的一个朋友进行通信。

5、使用alias 命令显示系统中的命令的别名,给出显示的结果。

6、使用uptime 命令判断系统已启动运行的时间和当前系统中有多少登录用户,给

出显示的结果。

7、通过因特网或Linux 的man 命令得到下面的shell 命令、系统调用和库函数功能

描述及每个命令使用例子:

Command touch Example Use

Short Description

cp

mv

rm

mkdir rmdir ls pwd

3 Linux 应用实训项目 3: 文件编辑实验目的:实验目的:

1. 2. 3. 练习用pico 编辑器编辑文本文件;练习用vi 编辑器编辑文本文件;练习用emacs 编辑器编辑文本文件;

实验内容:实验内容:

1、pico 文本编辑器的使用:

a. b.

在shell 提示符下,输入pico 并按键;在pico 的文本区,将光标置于首行并输入文字: This is txet that I have enteres on a lioe in the pico editor. 按键和方向键来修正拼写错误;

c.

按三次键;

d. 输入:This is a line of text three lines down from the 按键; first lin

e. e.

f. 在File Name To Write 提示后输入linespaced,并按键;

g.

h. 按下键回到shell 提示符下;在shell 提示符下输入more linespaced 并按键。

以上步骤完成后,屏幕上看到了什么?

2、运行pico 并创建带有3 行文本的一个文件。然后,使用pico 的剪切和粘贴功

能来复制这3 行,使该文件包含9 行文本。以prob3 为文件名保

3、vi 编辑器的使用: a. 在shell 提示符下,输入vi firscrip 并按键。vi 的界面将出现在显示屏上; b. c. d. 输入a,输入ls –la,并按键;输入who,并按键;输入pwd,再按键。这时屏幕将如下图所示:

e. 输入:wq,并按键;

f. 在shell 提示符下,输入bash firscrip 并按键;

g. 观察结果。当前的工作目录中有多少个文件?他们的名称和大小?还有谁在使用你的计算机系统?当前的工作目录是什么?

4.

在系统中运行vi 并创建一个bash shell 脚本文件,它包含下面行: echo $SHELL chsh –l

然后以sheller 为名保存该文件并退出vi。在shell 提示符下,输入bash sheller 并按键。屏幕上给出了当前的shell 和一个linux 文件,该文件的内容包含系统中可用的其他shell。给出运行的结果。

5.

登录你的Linux 系统,运行emacs 程序,编辑一个新文件,使用-nw 命令选项。 a. b. 在文件的第一行输入你的名字;在文件的第二行输入“"The emacs editor is the most complex and customizable of the Linux text editors".”

4 Linux 应用实训项目 4:文件与文件系统结构:实验目的:实验目的:

1. 2. 3. 4. 5. 6. 学习如何创建一个Linux 目录的层次结构;学习有关绝对路径和相对路径;学习有关主目录(home directory)、登录目录、工作目录(当前目录);学习如何有效导航Linux 目录层次;学习有关文件内容类型和隐含文件;学习有关文件属性。

实验内容:实验内容:

1、显示你登录目录的绝对路径,给出这个会话过程。

2、在系统中,执行cd professional/courses 命令,回答下列问题: a、你的主目录的绝对路径是什么?给出获得该绝对路径的命令以及命令输出。

b、acm 目录的绝对路径是什么?

3、改变目录到/usr。在这个目录下有多少个文件和目录。他们的文件内容类型是什么?

4、在/usr/bin 目录下有多少个普通文件、目录文件和链接文件?

5、你系统中的Linux 内核映像文件在那个目录中?给出这个可执行内核映像文

件的名称和文件内容类型。

6、Linux 系统规定,隐含文件是首字符为”.”的文件,如.profile。在你的系统

中查找.profile ,他们在什么地方,给出这两个文件部分内容。 .profile 在主目录下:

内容:

7、显示你的主目录下的所有隐含文件的文件名。给出你的会话过程。

8、目录的inode 号是多少?

5 Linux 应用实训项目 5:文件安全:

实验目的:实验目的:

1. 2. 3. 4. 学习Linux 的文件访问权限,用户的类型和文件访问权限的类型;学习如何确定一个文件的访问权限;学习如何设置和改变一个文件的访问权限;学习如何在文件或目录的创建时设置缺省访问权限。

实验内容:实验内容:

1、根据下列的要求,写出得到这些信息的会话过程:

a. b. c. d.

你的用户名;你的用户ID;你的组ID 和组名字;在你同一组中的其他用户名。

2、系统管理员给你的主目录设置的权限是什么?

3、假设文件或目录:/ 、 /etc/passwd 长列表格式显示这些文件. (1)/:

、~ 、.profile (在你的主目录中)。用

(2) /etc/passwd :

(3)~:

(4).profile:

4、对于上题中的文件和目录,给出用八进制表示的权限。 (此处以.profile为例) .profile:

5、在~/tmp 目录下创建名为d1、d2 和d3 的目录。在d1 目录下,用touch 命令创建一个名为f1 的空文件。给出d1、d2、d3 和f1 的访问权限。给出完成这些工作的会话。

6、用umask命令显示当前的掩码。把你的主目录设置为当前目录,然后在

~/temp/d1目录下,创建d11目录,用touch命令创建f2空文件。在temp目录下用编辑器创建hello.c文件,该文件的内容如下:

#include main(void) {printf (“Hello, world!\n”); } 再运行命令gcc –o greeting hello.c ,生成了可执行文件greeting。长列表显示f2、 hello.c、greeting和d1文件访问权限。(1)当前掩码:

(2)在~/temp/d1目录下,创建d11目录,用touch命令创建f2空文件:

(3)长列表显示f2、 hello.c、greeting和d1文件访问权限

7、用命令mkdir ~/temp/d3/d31创建~/temp/d3/d31目录,然后长列表显示这个目

录。

6 Linux 应用实训项目 6: 基本文件处理

实验目的:实验目的:

1. 学会如何显示文本文件的内容;

2. 学会如何复制、追加、移动和删除;

3. 学会如何合并文件;

4. 学会如何确定文件的大小;

5. 学会如何比较文本文件;

6. 学会使用各种打印命令。

实验内容:实验内容:

1、创建几个大小不等的文本文件,供本实验和后面几个实验用。用man cat > mediumFile 命令创建中等大小的文件;用man bash > largeFile 命令创建一个大文件;在创建一个名字为smallFile关于学生数据的小文件。

2、使用cat 和nl 命令显示smallFile 文件内容并显示行号。两个命令的输出应该完全一样。给出完成这项任务的命令。

3、用more 命令显示smallFile 出你的命令。(1)smallFile :

和mediumFile 文件内容,每屏显示18 行。给

(2)mediumFile:

4、显示largeFile 文件的开始12 行内容,显示smallFile 文件的最后5 行内容,要用什么命令?哪个命令能显示smallFile 文件从第6 行开始到结束,给出你的会话。(1)显示largeFile 文件的开始12 行内容,显示smallFile 文件的最后5 行内容。

(2)显示smallFile 文件从第6 行开始到结束

5、本实验目的观察使用带-f 选项的tail 命令。复制smallFile 文件,文件名为

dataFile,创建一个文件名为ch7.c 的c 语言文件,内容如下:

#include main() {int i; i = 0; sleep(10); while (i < 5) { system("dat) ; sleep(5); i++;} while (1) {

system("date"); sleep(10);} }

现在依次运行下列三个命令。第一个命令生成一个c语言的可执行文件,文件名为generate;第二个命令是每隔5秒和10秒把date命令的输出追加到dataFile文件中,这个命令为后台执行,注意后台执行的命令尾部加上&字符;最后一个命令tail –f dataFile,显示dataFile文件的当前内容和新追加的数据:

gcc ch9.c –o generate generate >> dataFile & tail –f dataFile

6、(1)在前面你已把dataFile 文件复制为smallFile 文件的拷贝。用ls –l 命令观察这两个文件的修改时间是否一样。它们是不同的, dataFile 文件的修改时间应该是这个文件的创建时间。这两个文件的inode 号是多少?时间:

Inode号:

(2)再把文件名dataFile 改成(移动) newDataFile,文件newDataFile 的inode 多少?与dataFile 文件的inode 号是否相同,若相同,为什么?然后再把文件newDataFile 移动到/tmp 目录下,文件/tmp/newDataFile 的inode 号是多少?比较结果如何,为什么?

与dataFile 文件的inode 号是否相同。

它们的inode号都是相同的。

7、在屏幕上显示文件smallFile、mediumFile、largeFile 和/tmp/newDataFile 的字节数、字数和行数。

7 Linux 应用实训项目 7:高级文件处理:实验目的:实验目的:

1. 2. 3. 4. 5. 6. 学习如何压缩和解压文件;学习如何排序文本文件;学习如何搜索文件或目录;学习如何查找文本文件的内容;学习如何搜索某个Linux 命令存放在何处;学习如何对文本文件使用cutting 和pasting 字段的数据库操作。

实验内容:实验内容:

1(1)显示文件mediumFile 和largeFile 文件的大小。

(2)用gzip 命令压缩文件 mediumFile 和largeFile,压缩后的文件名字是什么?给出这两个文件压缩前后的大小及压缩率。

(3)如果你系统中有zmore 命令,使用这个命令显示压缩文件mediumFile 的内

容。

(4)最后再解压这两个文件。给出会话过程。

2、以GPA 作为关键字排序文件s mallFile 中的数据,忽略空格。给出会话

过程。

3、搜索你的主目录,找到所有的HTML 和C 程序文件(文件有.html、.htm 或.c 扩展名)显示符合要求的文件路径和文件名。,给出你的会话。 Html:

Htm:

.C:

4、下面的命令在什么地方:ftp、ssh、tar、telnet、passwd和find? (1) ftp:上传、下载、连接和中断服务器(2)ssh:对目录和文件的各种管理 (3) tar:对文件压缩和解压(4)telnet:远程登录(5)passwd:让用户更改密码(6)find:文件查找

5、用下面的smallFile 文件(是前面smallFile 文件的增强版,蓝色字体部分为smallFile 文件的内容),并完成以下任务:(用grep 命令)(1)显示计算机科学专业(CS)学生的行及行号。给出你的会话。

(2)显示first name 为John 的学生的行及行号。给出你的会话。

(3)显示first name 或last name

为Lee 的学生的行及行号。给出你的会话。

(4)显示e-mail 地址以 .org 结尾的学生的行及行号。给出你的会话。

8 Linux 应用实训项目 8:文件共享:实验目的:实验目的:

1. 2. 3. 学习如何创建和使用硬链接和软(符号)链接;学习关于链接和文件访问权限之间的关系;学习关于硬链接和软链接的本质内容。

实验内容:实验内容:

1、在上面的文件系统结构中,删除temp 目录下的所有文件和目录。给出会话过程。

2、在~/tmp 目录下创建名为d1、和d3 的目录。 d2 把文件smallFile 拷贝到d1 目录

下,长列表格式显示文件smallFile,显示的内容包括inode 号、访问权限、硬链接数、文件大小。给出完成这些工作的会话。

3、创建一个名字为newFile.hard 硬链接到d1 目录下的smallFile 文件。长列

表格式显示newFile.hard 文件,与smallFile 文件的属性进行比较。你如何确是链接数吗?给出你的定smallFile 和smallFile.hard 是同一文件的两个名字,会话过程。

确定smallFile 和smallFile.hard 是同一文件的两个名字,是前面的inode来确定的。

4、使用硬链接文件smallFile.hard 显示smallFile 文件的内容。然后取消你本人对smallFile 文件读(r)权限,再显示文件的内容,发生了什么?根据以上练习,你能推断出什么?对smallFile 文件增加读权限,再一次显示文件内容,发生了什么?最后作一个smallFile 文件的备份,并删除 smallFile 文件,用 smallFile.hard 显示smallFile 文件内容,又发生了什么?请你解释一下练习过程中的现象(1)硬链接文件smallFile.hard 显示smallFile 文件的内容

(2)然后取消你本人对smallFile 文件读(r)权限,再显示文件的内容,发生了什么?根据以上练习,你能推断出什么?

推断出对smallFile操作可以影响到newFile.hard

(3)对smallFile 文件增加读权限,再一次显示文件内容,发生了什么?

两个文件又可以读了。

(4)最后作一个smallFile 文件的备份,并删除 smallFile 文件,用smallFile.hard 显示smallFile 文件内容,又发生了什么?

删除smallFile文件,对newFile.hard文件没有影响。

5、恢复/temp/d1/smallFile 文件。创建一个名字为~/temp/d2/smallFile.soft 软链接到~/temp/d1/smallFile 文件。长列表格式显示smallFile.soft 文件,比较这两个文件的属性。你如何确定smallFile 和smallFile.soft 是两个不同的文件?是这两个文件的大小吗?给出你的会话过程。

根据inode号来确定这两个不是同一个文件。

6、使用软链接文件smallFile.soft 显示smallFile 文件的内容。然后取消你本人对smallFile 文件读(r)权限,再显示文件的内容,发生了什么?根据以上练习,你能推断出什么?对smallFile 文件增加读权限,再一次显示文件内容,发用生了什么?最后作一个smallFile 文件的备份,并删除 smallFile 文件, smallFile.soft 显示smallFile 文件内容,又发生了什么?请你解释一下练习过程中的现象。(1)使用软链接文件smallFile.soft 显示smallFile 文件的内容。

(2)然后取消你本人对smallFile 文件读(r)权限,再显示文件的内容,发生

了什么?根据以上练习,你能推断出什么?

对smallFile操作会影响软连接smallFile.hard,致使smallFIle.hard文件不可读。

(3)对smallFile 文件增加读权限,再一次显示文件内容,发生了什么?

两个文件都可读了。(4)最后作一个smallFile 文件的备份,并删除 smallFile 文件,用smallFile.soft 显

示smallFile 文件内容,又发生了什么?请你解释一下练习过程中的现象。

7、综合以上对软连接和硬链接的总结:几个硬连接=几个拷贝,所以源文件被删除后,还有几个备份。几个软连接=几个指向源文件的path,所以源文件被删除后,虽然有路径但是没有源文件了。因此,硬连接不能跨不同的文件系统。软连接能跨不同的文件系统。硬连接记录的是目标的 inode;软连接记录的是目标的 path。

9 Linux 应用实训项目 9:管道与 I/O 重定向:

实验目的:实验目的:

1. 2. 3. 学习如何使用Linux 的I/O 重定向和管道操作;学习使用I/O 重定向和管道操作完成单个命令不能实现的复杂任务;学习如何使用I/O 重定向、管道和FIFOs 去完成单个命令不可能实现的复杂任务。实验用到的命令:|、<、>、find、cat、who、sort、cut、head、ls、wc 等

实验内容:实验内容:

1、查找并显示你主目录下foobar 文件的绝对路径,错误信息重定向到

/dev/null 中。给出你的会话。注:可用find 命令

2、有一个banner 程序,输入从标准输入设备中读入,输出送到标准输出设备中。现在运行这个程序,要求输入从student.records 中读入,输出结果重定向错误重定向到error.log 文件中。用一条命令来实现上述到output.data 文件中,过程。

3、用cat 命令创建一个名字为test.data 文件,文件内容如下。文件创建成功后,

用cat 命令显示这个文件的内容。给出你的会话过程。 This data is to be stored in a file called test.data by using the cat command. We can create the test.data file with this data by using a text editor such as vi. However, the purpose of this exercise is to show an interesting use of output redirection.

4、用一行命令显示当前登录到系统中的用户的数量。给出命令和输出结果。

5、用一行命令显示第一个登录到系统中的用户的名字。给出命令和输出结

果。提示:使用who、sort、cut、head 命令和管道实现。

6、计算命令 ls –l 的输出中的字符数、单词数和行数,并把它显示在显示器上。给

出命令和输出结果。

7、在/usr/bin 目录下,有多少个符号连接文件?给出这个命令和它的输出。

10 Linux 应用实训项目 10:进程:

实验目的:实验目的:

1. 2. 3. 4. 5. 了解有关Linux 进程的属性;学习有关Linux 的前台、后台进程及守护进程;学习有关Linux 命令的顺序执行和并发执行;学习有关挂起和终止进程;了解Linux 的信号。

6. 了解你系统中Linux 进程的层次结构。

实验内容:实验内容:

1、在你进入系统中,有多少进程在运行?进程init、 cron的ID

是多少。给出你得到这些信息的会话过程。(1)有多少进程在运行?

(2)进程init、cron的ID是多少。 1、860;1104 2、显示进程之间的父子关系。

2、有多少个sh、bash、csh、tcsh进程运行在你的系统中?给出会话过程。

(1)sh:

(2)bash:

(3)csh、tcsh进程不存在 3、写一个命令行,实现find 和sort 命令的并发执行。find 命令显示在你的主目

sort 命令以GPA 作为关键字排序smallFile 文件,且忽录下foobar 文件的路径;略字段间的空格。两个命令的错误信息重定向到/dev/null 中。 find 命令的输出重定向到find.out 文件中,sort 命令的输出重定向到sort.out 文件中。当命令运行结束后,显示find.out 和sort.out 的内容。给出会话过程。

4、给出一个命令,终止ID 为12345 的进程和ID 为2 的作业。

5、写一命令行,使得date 、uname –a 、who 和ps并发执行。给出会

话过程。

6、在shell 下执行下面的命令。3 个pwd 命令的运行结果是什么? $ pwd $ bash $ cd \usr $ pwd $… $ #终止shell $ pwd 注:“$”为系统提示符

7、用pstree 命令显示你系统中进程层次结构。

11 Linux 应用实训项目 11:系统调用:

设计目的

加深对进程概念的理解,明确进程和程序的区别;进一步认识并发执行的实质;实现Linux 中进程通信的两种方式:软中断和管道通信。

设计内容

1、进程的创建和控制

编写一段程序,使用系统调用 fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。每个进程在屏幕上显示一个字符,记录屏幕上的显示结果,并分析原因。修改以编写的程序,将每个进程输出一个字符改为每个进程输出一句话。#include #include #include void main() { pid_t p1,p2; p1=fork(); if(p1<0) printf("error in fork!\n"); else if (p1 == 0) printf("child process b\n"); else { p2=fork(); if(p2<0) printf("error in fork!\n"); else if (p2 == 0) printf("child process c\n"); else printf("parent process a\n"); }

}

2、进程的软中断通信

使用系统调用 fork()创建两个子进程,使用系统调用 signal()让父进程捕捉用 alarm 函数设置时钟的时间段终止时产生的信号,当捕捉到该信号后,父进程使用系统调用 Kill()

向两个子进程发出信号,子进程捕捉到信号后分别输出子进程被杀死信息后终止,父进程等待两个子进程终止后,输出父进程被杀死信息后终止程序。记录屏幕上的显示结果,并分析原因。

#include; #include; #include; #include; #include; int wait_flag; void stop(); int main() { int pid,i,j; pid=fork(); /*创建子进程*/ if(pid>0) /*以下是父进程代码*/ { wait_flag=0; printf("This is parent:\n"); sleep(5); /*父进程等待 5 秒*/ kill(pid,17); /*向子进程发出信号 17*/ printf("The kill signal has send!!\n"); wait(0); /*等待子进程的结束信号*/ printf("The parent is ended!!\n"); } else /*以下是子进程代码*/ {wait_flag=0; printf("This is child:\n"); signal(17,stop); /*若接收到信号 17 则执行 stop 函数*/ while(1) /*循环等待*/ {/*若执行了 stop 函数,wait_flag 会变为1,则子进程结束*/ if(wait_flag>0) {printf("The child is ended!!\n"); exit(0); } }/*end of while*/ }/*end of child process*/ return 0; }/*end of main*/ void stop() /*信号执行句柄函数*/ { wait_flag=1; /*若执行此函数,可让全局变量 wait_flag 变为 1*/ } 3、进程的管道通信进程的管道通信使用系统调用 pipe()建立一个管道;两个子进程分别向管道写信息,父进程则从管道读出来自子进程的信息,显示在屏幕上。记录屏幕上的显示结果,并分析原因。

#include #include #include #include #include #include #include #include #include "rw.h"//读管道的时候需要用这个自己写的read循环读,否则一次可能读不全 #define MAX 1024 int main (int argc,char *argv[]) { int fd1[2]; int fd2[2]; int pipe1,pipe2; size_t n=1; pid_t pid; char buf1[MAX] = {0}; char buf2[MAX] = {0}; char buf3[MAX] = {0}; int fd; ssize_t read_num; if(argc != 2) { printf("usage:\"pipe_print name\n\""); exit(0); } if((pipe1=pipe(fd1)) == -1 )//父向子传信息的管道 { perror("pipe1"); exit(1); } if((pipe2=pipe(fd2)) == -1)//子向父传信息的管道 { perror("pipe2"); exit(1); } if((pid=fork()) < 0) { perror("fork"); exit(1); } else if(pid == 0)//子进程{ close(fd1[1]);/*关管道1写端*/ close(fd2[0]);/*关管道2读端*/ sleep(1); if(read(fd1[0],buf2,MAX) == -1)/*读取父进程传来的文件名*/ { exit(1); } if(( fd = open(buf2,O_RDONLY,0) ) < 0)/*打开文件*/ { perror("open error"); exit(1); } while(Read(fd,buf1,MAX) > 0)/*读文件放入buf1*/ { Write(fd2[1],buf1,MAX);/*写入管道2*/ memset(buf1,0,MAX);/*清空buf1以免出错*/ } close(fd1[0]); close(fd2[1]); exit(0); } else//父进程 { close(fd2[1]);/*关管道2的写端*/ close(fd1[0]);/*关管道1的读端*/ n=strlen(argv[1]); if(Write(fd1[1],argv[1],n) == -1)/*把命令行参数发给管道1*/ {

exit(1); } while((read_num=Read(fd2[0],buf3,MAX)) > 0 )/*读取管道2中的信息放在buf3中*/ { if(read_num == -1) { perror("read"); exit(1); } if(Write(1,buf3,MAX) < 0)/*把buf3中的信息写在表准输出上*/ { perror("write"); exit(1); } memset(buf3,0,MAX);/*清空buf3以免出错*/ } putchar('\n'); close(fd1[1]); close(fd2[0]); if(waitpid(pid,NULL,0) == -1)/*父进程等待子进程关闭回收子进程资源*/ { perror("wait"); exit(1); } } }

1

女娲炼石补天处,石破天惊逗秋雨。寄意寒星荃不察,我以我血荐轩辕。

常用linux命令(面试常用)

date显示系统日期 cd.. 返回上级目录 pwd 显示当前路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a显示隐藏文件 ls -lh 显示权限 tree 显示文件和目录由根目录开始的树形结构 shutdown -h now 关闭系统 mkdir dir1 创建目录 rm -f file1 删除文件 rmdir 删除目录 cp 复制文件 find /-name file1 从/开始进入根文件系统搜索文件和目录 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 passwd 修改口令 passwd user1 修改一个用户的口令 gunzip file1.gz 解压一个file1.gz的文件 gzip file1 压缩文件 cat file1 从第一个字节开始查看文件 grep Aug /log/massages 在 massage文件中查找关键字Aug grep ^Aug /log/massages 在 massage文件中查找以Aug开头的词汇df 查看磁盘空间占用情况,使用权是所有用户 free 查看内存的使用情况 quota 显示磁盘使用情况和限制情况,使用权是超级用户 lp 打印文件 ifconfig 查看和更改网络接口的地址和参数 ping检测主机网络接口状态,使用权限是所有用户 Telnet 远程登录 ftp 文件传输 more一页一页显示档案内容 who 查看目前谁在线 finger 查看关于系统用户的信息 clear 清除屏幕

Linux 系统主机安全加固

Linux主机安全加固 V1.0 hk有限公司 二零一五年二月

一、修改密码策略 1、cp /etc/login.defs /etc/login.defs.bak 2、vi /etc/login.defs PASS_MAX_DAYS 90 (用户的密码不过期最多的天数) PASS_MIN_DAYS 0 (密码修改之间最小的天数) PASS_MIN_LEN 8 (密码最小长度) PASS_WARN_AGE 7 (口令失效前多少天开始通知用户更改密码) 按要求修改这几个密码选项,修改完之后保存(:wq!)退出即可。 二、查看系统是否已设定了正确UMASK值(022) 1、用命令umask查看umask值是否是 022, 如果不是用下面命令进行修改: cp/etc/profile/etc/profile.bak vi/etc/profile 找到umask 022,修改这个数值即可。 三、锁定系统中不必要的系统用户和组 1、cp /etc/passwd /etc/passwd.bak cp /etc/shadow /etc/shadow.bak 锁定下列用户 2、for i in admlp sync news uucp games ftp rpcrpcusernfsnobodymailnullgdm do usermod -L $i done 3、检查是否锁定成功 more /etc/shadow 如:lp:!*:15980:0:99999:7:::lp帐户后面有!号为已锁定。 4、禁用无关的组: 备份: cp /etc/group /etc/group.bak

linux常用命令

新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。 由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握。本章我们就来介绍Linux的常用基本命令。 Linux常用命令 1.Linux命令基础 Linux区分大小写。在命令行(shell)中,可以使用TAB键来自动补全命令。即可以输入命令的前几个字母,然后按TAB键,系统自动补全命令,若不止一个,则显示出所有和输入字母相匹配的命令。 按TAB键时,如果系统只找到一个和输入相匹配的目录或文件,则自动补全;若没有匹配的内容或有多个相匹配的名字,系统将发出警鸣声,再按一下TAB键将列出所有相匹配的内容(如果有的话)以供用户选择。 首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中―系统管理员‖拥有最高权限。 在启动Linux后屏幕出现如下界面显示:Red Hat Linux release 9 (Shrike) Kernel 2.4.20.8 on an i686

login: 输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个―#‖提示符时,表明你登录成功! 屏幕显示Linux提示符:[root@localhost root]#_ 这里需要说明的是―Red Hat Linux release 9 (Shrike)‖表示当前使用的操作系统的名称及版本。―2.4.20.8‖表示Linux操作系统的核心版本编号。―i686‖表示该台电脑使用的CPU的等级。 下面我们来介绍常用基本命令 一,注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout

LINUX常用数据结构

/* * List definitions. */ #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } /* * List functions. */ #define LIST_INIT(head) { \ (head)->lh_first = NULL; \ } #define LIST_INSERT_AFTER(listelm, elm, field) { \ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ (listelm)->field.le_next->field.le_prev = \ &(elm)->field.le_next; \ (listelm)->field.le_next = (elm); \ (elm)->field.le_prev = &(listelm)->field.le_next; \ } #define LIST_INSERT_HEAD(head, elm, field) { \ if (((elm)->field.le_next = (head)->lh_first) != NULL) \

Linux桌面Ubuntu图文安装教程

Ubuntu随着微软的步步紧逼,包括早先的Windows黑屏计划、实施,逮捕番茄花园作者并判刑,种种迹象表明,中国用户免费使用盗版Windows的日子将不会太长久了,那么这个世界上有没有即免费又易用的操作系统呢?答案是有,那就是Ubuntu操作系统。Ubuntu 被授予PC World 2006 World Class Award,证明了Ubuntu成为世界最好的100个产品之一。Ubuntu是一个流行的Linux操作系统,基于Debian发行版和GNOME桌面环境,和其他Linux 发行版相比,Ubuntu非常易用,和Windows相容性很好,非常适合Windows用户的迁移,预装了大量常用软件,中文版的功能也较全,支持拼音输入法,预装了Firefox、Open Office、多媒体播放、图像处理等大多数常用软件,一般会自动安装网卡、音效卡等设备的驱动,对于不打游戏不用网银的用户来说,基本上能用的功能都有了,在Windows操作系统下不用分区即可安装使用,就如同安装一个应用软件那么容易,整个Ubuntu操作系统在Windows下就如同一个大文件一样,很容易卸载掉。下面我就介绍一下Ubuntu操作系统安装使用的方法,供Ubuntu新手参考,希望能起到Linux扫盲的作用。 一、什么是Ubuntu? Ubuntu 是一个南非的民族观念,着眼于人们之间的忠诚和联系。该词来自于祖鲁语和科萨语。Ubuntu(发音"oo-BOON-too"——“乌班图”)被视为非洲人的传统理念,也是建立新南非共和国的基本原则之一,与非洲复兴的理想密切相关。Ubuntu 精神的大意是“人道待人”(对他人仁慈)。另一种翻译可以是:“天下共享的信念,连接起每个人”。“具有ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能,因为他/她拥有适度的自信,而这源自如下认识:自己乃是属于一个更大的整体,当他人受到伤害或死去时,当他人受到折磨或压迫时,这个整体就会消失。”——大主教 Desmond Tutu。作为一个基于 GNU/Linux 的平台,Ubuntu 操作系统将 ubuntu 精神带到了软件世界。 Ubuntu 是一个完全基于 Linux 的操作系统,它不但免费,而且有专业人员和业余爱好者共同为其提供技术支持。Ubuntu 爱好者社群背后的理念是“Ubuntu 哲学”:软件应该是免费的,世界各地的用户都应能够用上以他们自己的语言为界面语言的软件,他们能力上的缺失也不应该成为使用软件的障碍。此外,他们也应该拥有按照个人需要任意定制和修改软件的自由。 二、下载Ubuntu Ubuntu有三个版本,分别是桌面版(Desktop Edition),服务器版(Server Edition),上网本版(Netbook Remix),普通桌面电脑使用桌面版即可,下载地址请点这里,32位CPU 请选择32bit version,上网本则可下载Netbook Remix,目前Ubuntu已经占据三分之一的上网本市场,仅次于WIndows XP系统。Google的Chrome操作系统强有力的对手就是Ubuntu Netbook Remix。 按照电脑种类,安装方式,以及下载方式选择。 1.电脑种类 PC (Intel x86) - 一般 Intel 系列电脑 Mac (Power PC) - Power PC 系列电脑 64-bit PC (AMD 64) - AMD 64 位处理器 2.安装方式

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.wendangku.net/doc/a79764412.html,/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令将你的代码树与Linus的代码树最新状态同步: $ git pull 安装内核源代码 内核包有GNU zip(gzip)和bzip2格式。Bzip2是默认和首选格式,因为它的压缩比通常比gzip更好,bzip2格式的Linux内核包一般采用linux-x.y.z.tar.bz2形式的文件名,这里的x.y.z是内核源代码的具体版本号,下载到源代码包后,解压和抽取就很简单了,如果你下载的是bzip2包,运行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下载的是gzip包,则运行: $ tar xvzf linux-x.y.z.tar.gz 无论执行上面哪一个命令,最后都会将源代码解压和抽取到linux-x.y.z目录下,如果你使用Git下载和管理内核源代码,你不需要下载tar包,只需要运行git clone命令,它就会自动下载和解压。 内核源代码通常都会安装到/usr/src/linux下,但在开发的时候最好不要使用这个源代码树,因为针对你的C库编译的内核版本通常也链接到这里的。 应用补丁

linux系统主机双网卡环回测试要点

Linux下双网卡主机的回环测试 一、设计任务及要求 路由器测试早期采用“回绕测试法”(Loop-back Test Method,LTM),即测试器将测试数据的目的IP地址指定为测试系统(SUT)自身的IP地址,测试器发出的测试数据将被路由器的输入单元直接返回测试系统。单台主机多网卡的测试系统也可以进行回绕测试,在RFC2544文档中有相关描述,本实验的任务就是在linux下的双网卡主机进行回绕测试,也可叫做环回测试,待测设备可以是路由器或者交换机,主机的双网卡分别和交换机或路由器的两个接口相连,数据由一个网卡出来经过待测设备之后再从另外一个网卡回来,这就是整个实验测试的任务。 实验要求:网卡之间能够进行ICMP报文和TCP或UDP报文的传输。 二、实验的解决思路 Linux的内核对从一个网络地址发往另一个网络地址的数据包,如果这两个网络地址同属一个host,则这个数据包会直接在内部转发,根本不会放到网络设备上,本实验的解决思路是在主机上制定两个不属于任何主机的ip,再将网卡的IP地址进行绑定,增加两条相关的路由,用防火墙进行ip 地址转换。 三、实验操作 实验场景如图所示: 图1:双网卡主机测试环境如图所示 其ip地址分别为192.168.1.108(有线网卡),另一个的IP地址为192.168.1.101(无线网卡),有线网卡通过一台路由器进行连接,路由器的网关是192.168.1.1,有线网卡和无线网卡通过路由器的Dhcp自动获得分配的IP,可以连接外网。其配置如下图所示: 图2:linux下主机的网络配置图

在主机上增加两条路由,route add 192.168.1.11 dev eth0; route add 192.168.1.22 dev wlan0; 上面的两个ip地址是不属于任何主机,目的地址为192.168.1.11的数据包由eth0转发,目的地址为192.168.1.22的数据包由wlan0转发。网关都是0.0.0.0,其配置如下所示: 图3:主机路由表 给这两个不属于任何主机的ip地址绑上主机网卡的MAC地址,即设置两条静态arp项。 arp -i eth0 –s 192.168.1.11 00:1B:77:07:78:F6 arp –i wlan0 –s 192.168.1.22 00:1B:24:1C:0B:B4 添加mac地址如下图所示: 图4:主机mac地址表 下面是iptables的地址转换配置: iptables –t nat -F iptables -t nat -A POSTROUTING -s 192.168.1.108 -d 192.168.1.11 -j SNA T --to-source 192.168.1.22 iptables -t nat -A PREROUTING -s 192.168.1.22 -d 192.168.1.11 -j DNAT --to-destination 192.168.1.101 iptables -t nat -A POSTROUTING -s 192.168.1.101 -d 192.168.1.22 -j SNAT --to-source 192.168.1.11 iptables -t nat -A PREROUTING -s 192.168.1.11 -d 192.168.1.22 -j DNA T --to-destination 192.168.1.108 这是iptables的SNAT和DNA T转换,也是本实验的关键所在。 第一行是将从192.168.1.108出去的包的源地址改为192.168.1.22; 第二行是将目的地址为192.1686.1.11的包改为192.168.1.101; 第三行是将从192.168.1.101出去的包的源地址改为192.168.1.11; 第四行是将到192.168.1.11的目的地址的包改为192.168.1.108; Ping –I 192.168.1.108 192.168.1.11 即源地址为192.168.1.108,目的地址为192.168.1.11,发ICMP报文,下面是抓到的图

中文版Linux 桌面操作系统初级教程

《中文版Linux 桌面操作系统初级教程》郭守华宋雪娇编著 Linux操作系统支持多种安装方式。本章将讨论从硬盘安装对红旗Linux、共创Linux等各种版本的Linux都适用的通用方法。从硬盘安装Linux操作系统,首先要准备安装包,Linux操作系统的安 装包通常是一个或多个ISO镜像文件(一般通过网络下载就可以得到);其次,要通过某种手段启动镜像 文件中的系统安装程序;接下来,按照安装程序的提示信息进行安装就可以了。安装过程中,需要指 定Linux操作系统的安装位置,这主要涉及硬盘分区的一些知识。 综合来看,学习Linux操作系统的安装,关键要学会两点:第一、如何Linux操作系统准备硬盘 空间?第二、如何启动ISO镜像文件中的安装程序。 硬盘分区 通常,在使用硬盘时,都要进行分区。如果把未分区的硬盘比做一张大白纸,那么分区后的硬 盘就相当于这张大白纸被画上了几个大方框。一块硬盘被分成多个分区之后,各分区之间是相对独立 的,每个分区都可以有自己的文件格式,例如FAT16、FAT32、NTFS等等。 Linux操作系统需要的硬盘分区 要安装一个操作系统,一般来讲都要为它准备专门的分区。专门,意味着不能与其他操作系统 合用一个分区,也意味着不要与用户自己的数据文件合用一个分区,前者是因为不同的操作系统可能 需要不同格式的磁盘分区,后者则更多地出于用户数据安全和系统维护方便的考虑。从最低配置角度 讲,Linux 操作系统需要一个EXT2或EXT3格式的硬盘分区作为根分区,大小在2~5G就可以。另外还 需要一个SWAP 格式的交换分区,大小与内存有关:如果内存在256M以下,交换分区的大小应该是内存 的两倍;如果内存在256M以上,交换分区的大小等于内存大小即可。 Windows硬盘分区管理工具 管理硬盘分区的工具有很多,在网上也可以找到详细的使用指导。为了方便读者,本书整理收 录了Windows 环境下运行的PQMagic4.0 的使用方法,其它版本的PQMagic的使用方法也基本相同。

Linux内核结构详解教程

Linux内核结构详解教程 ─────Linux内核教程 linux内核就像人的心脏,灵魂,指挥中心。 内核是一个操作系统的核心,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性。内核以独占的方式执行最底层任务,保证系统正常运行。协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等. 严格说Linux并不能称做一个完整的操作系统.我们安装时通常所说的Linux,是有很多集合组成的.应称为GNU/Linux. 一个Linux内核很少1.2M左右,一张软盘就能放下. 内容基础,语言简短简洁 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章及教程基本能满足不同水平的朋友学习。 红联Linux门户: https://www.wendangku.net/doc/a79764412.html, 红联Linux论坛: https://www.wendangku.net/doc/a79764412.html,/bbs 红联Linux 论坛大全,所有致力点都体现在这 https://www.wendangku.net/doc/a79764412.html,/bbs/rf/linux/07.htm

目录 Linux内核结构详解 Linux内核主要五个子系统详解 各个子系统之间的依赖关系 系统数据结构 Linux的具体结构 Linux内核源代码 Linux 内核源代码的结构 从何处开始阅读源代码 海量Linux技术文章

Linux内核结构详解 发布时间:2006-11-16 19:05:29 Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。

Linux内核主要五个子系统详解 发布时间:2006-11-16 19:05:54 1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。 2.内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3.虚拟文件系统(VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 5.进程间通讯(IPC) 支持进程间各种通信机制。 处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。

Linux 主机安装 RPC

1.在RedHat Linux,需要下载一个安装包rstatd.tar.gz,并且需要安装。安装包中具体的说明比较复杂,,为了简便起见,这里直接给出配置的命令。 首先把rstatd.tar.gz文件放到用户目录下,进行解压(可以在windows下直接解压,然后把rpc.rstatd 目录及其下所有文件拷贝到用户目录下)。然后进入rpc.rstatd目录,执行:./configure 命令解释:配置,详细的就不说了,反正它自己会执行的,命令执行完毕后再敲入:make 命令解释:编译安装包,执行完毕后敲入:make install 命令解释:安装程序、数据文件和其他文档。之后敲入:rpc.rstatd 命令解释:运行rstatd服务。 2.下载并安装rstatd rpc.rstatd下载地址[linux用] https://www.wendangku.net/doc/a79764412.html,/projects/rstatd/files/ # tar –xzvf rpc.rstatd-4.0.1.tar.gz # ./configure ---配置 # make ---编译 # make install ---安装 # rpc.rstatd ---启动rstatd进程 3. 打开/etc/xinetd.conf 里面内容是: # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { instances = 60 log_type = SYSLOG authpriv

log_on_success = HOST PID log_on_failure = HOST cps = 25 30 } includedir /etc/xinetd.d 4.重启xinetd: A: # service xinetd reload B: # /sbin/service xinetdrstart 5. 修改/etc/xinetd.d/下的三个conf文件 rlogin ,rsh,rexec这三个配置文件, 打这三个文件,将里面的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中禁止服务) 或是把# default: off都设置成 on ,并把“#”去掉,这个的意思就是在xinetd启动的时候默认都启动上面的三个服务! 6.启动rstatd: # rpc.rstatd 在启动rpc.rstatd时,会报错“Cannot register service: RPC: Unable to receive; errno = Ction refused”。 解决方法如下:

红旗Linux_6.0_SP1桌面安装图解教程(图)完整版

(完整)红旗Linux 6.0 SP1桌面安装图解教程(图)(2009-01-23 13:52:19) 一.准备工作: 1.请先购买一套红旗Linux 6.0 SP1桌面正式版安装光盘或下载镜像文件。 原文及Linux6.0下载地址:https://www.wendangku.net/doc/a79764412.html,/read.php?tid=37981.htm 2. 除非硬件环境过于陈旧或新潮,一般情况下都能被系统支持,如果不放心请到官方网站查看相关硬件兼容性列表。 3.安装Red Flag Linux Desktop 6.0 SP1前请先将硬盘上的重要数据做好备份,以避免在安装过程中发生意外,带来不必要的损失。 二.安装红旗Linux 6.0 SP1桌面版: 上图显示∶用图形界面方式安装或升级安装Red Flag Linux请按回车键,如用文本方式安装或升级安装Red Flag Linux则请输入“text”后按回车键。在些,以图形界面方式安装红旗Linux6.0 SP1桌面正式版为例,即直接回车后继续,将出现如下图所示画面。

进入中文界面的安装向导,阅读许可协议后,请选择“接受”并单击“下一步”按钮,很快即出现如下图所示画面。

选择安装分区及分区方式是安装Linux的关键步骤,因为如果操作失误将会有丢失硬盘数据的危险,所以应慎重选择。使用Disk Druid手工分区可随心所欲进行分区。 在此,以“使用Disk Druid进行手工分区”为例。选择“使用Disk Druid进行手工分区”后请单击“下一步”按钮。 如果原计算机上已存在其他Linux或其他操作系统,将会有如下三个选项∶ 1、删除系统内所有的Linux分区; 2、删除系统内所有分区; 3、保存所有分区,使用现有的空闲空间。 请根据实际情况,进行相应选择,并单击“下一步”按钮。 该步列出了硬盘中的所有分区详细信息。在这里准备将硬盘划分为三个分区∶第一个约256MB(内存2倍)用作交换区,剩余空间用于安装系统。如果还有多余空间,也可作为其他分区处理。 此时,就可以根据硬盘使用情况来决定如何分区了。 在分区列表中选择一个空闲空间后,请单击“新建”按钮。

Android本质上就是一个基于Linux内核的操作系统

Android本质上就是一个基于Linux内核的操作系统。与Ubuntu Linux、Fedora Linux 类似。只是Android在应用层专门为移动设备添加了一些特有的支持。既然Android是Linux内核的系统,那么基本的启动过程也应符合Linux的规则。如果研究过其他Linux 系统应该了解,一个完整的Linux系统首先会将一个Linux内核装载到内存,也就是编译Linux内核源代码生成的bzImage文件,对于为Android优化的Linux内核源代码会生成zImage文件。该文件就是Linux内核的二进制版本。由于zImage在内核空间运行,而我们平常使用的软件都是在应用空间运行(关于内核空间和应用空间的详细描述,可以参考《Android深度探索(卷1):HAL与驱动开发》一书的内容,在后续的各卷中将会对Android的整体体系进行全方位的剖析)。内核空间和应用空间是不能直接通过内存地址级别访问的,所以就需要建立某种通讯机制。 目前Linux有很多通讯机制可以在用户空间和内核空间之间交互,例如设备驱动文件(位于/dev目录中)、内存文件(/proc、/sys目录等)。了解Linux的同学都应该知道Linux的重要特征之一就是一切都是以文件的形式存在的,例如,一个设备通常与一个或多个设备文件对应。这些与内核空间交互的文件都在用户空间,所以在Linux内核装载完,需要首先建立这些文件所在的目录。而完成这些工作的程序就是本文要介绍的init。Init是一个命令行程序。其主要工作之一就是建立这些与内核空间交互的文件所在的目录。当Linux内核加载完后,要做的第一件事就是调用init程序,也就是说,init是用户空间执行的第一个程序。 在分析init的核心代码之前,还需要初步了解init除了建立一些目录外,还做了如下的工作 1. 初始化属性 2. 处理配置文件的命令(主要是init.rc文件),包括处理各种Action。 3. 性能分析(使用bootchart工具)。 4. 无限循环执行command(启动其他的进程)。 尽管init完成的工作不算很多,不过代码还是非常复杂的。Init程序并不是由一个源代码文件组成的,而是由一组源代码文件的目标文件链接而成的。这些文件位于如下的目录。 /system/core/init 其中init.c是init的主文件,现在打开该文件,看看其中的内容。由于init是命令行程序,所以分析init.c首先应从main函数开始,现在好到main函数,代码如下: int main(int argc, char **argv) { int fd_count = 0; struct pollfd ufds[4]; char *tmpdev; char* debuggable; char tmp[32]; int property_set_fd_init = 0; int signal_fd_init = 0;

linux常用命令大全

& &命令可用在其他任何命令的后面,它用来通知计算机在后台运行某一命令。通过把作业放在后台,用户可以继续使用当前的shell来处理其他命令;如果命令在前台运行的话,那么用户在此进程结束前不能继续使用当前的shell。 adduser adduser命令由root或其他具有权限的管理员用来创建新用户,跟在adduser命令后面的是所要创建的帐号名,例如:adduser flying alias alias命令用来设置命令的别名或替代名。一般说来别名往往是实际命令名的缩写。例如用户为ls设置一个别名dir: alias dir=ls 若仅输入alias本身时,系统将显示当前所有的别名。 bg bg命令用来迫使被挂起的进程在后台运行。例如,当你已经在前台启动了一个命令时(没有在此命令后使用&),你才想到这一命令将运行较长一段时间,但你这时还需使用shell。在这种情况下,可通过ctrl+z挂起当前运行的进程。此时你既可以使它长期挂起,也可以通过输入bg把这一进程放到后台运行。这样shell就可以用来执行其他的命令了。 cat cat通常是用来在屏幕上滚动显示文件的内容。它的格式是: cat〈filename〉 cd cd用来改变目录。这一命令非常有用,它有三种典型的使用方法。 cd移到目录树的上一层 cd~移动到用户的主目录,与单独使用cd相同 cd directory name改变到指定的目录 cp cp用来拷贝对象。例如要把file1拷贝到file2,用如下命令: cp file1 file2 dd dd命令用来转换文件格式。 fg fg命令用来激活某个被挂起的进程并使它在前台运行。当有一个进程正在运行时,由于某种原因需要挂起它,在执行完其他任务后,需要重新把这一进程调到前台运行,这时便可用bg命令使这一进程继续运行。 find find命令用来查找指定目录的文件。当找到后将按照用户的要求对文件进行处理。语法是: find以它为起点进行搜索的目录想要查找的文件名或元字符对文件执行的操作 grep grep命令用来在指定的对象中搜索指定的文本。语法是:grep〈text〉〈file〉。它还可以和其他命令的结果联合使用,例如: ps -ef|grep-v root 这一命令要求grep接受ps命令的输出,并除去所有包含单词root的进程(-v的含义是显示与文本不匹配的内容)。在不使用-v选项时,这一命令将显示进程清单中所有包含单词root的进程。 halt halt命令用来通知内核关闭系统,它是一个只能由超级用户执行的命令。 hostname 既可以用来显示系统当前的主机名或域名,也可用来设置系统的主机名。 login 当向系统注册时,将使用login。login命令也可用来随时从这一用户改变到另一用户。 logout

LINUX(主机)下通过虚拟机(Windows)电信天翼宽带上网

电信宽带多机共享(1号多机上网)教程 服务器篇 主系统(真实系统):Ubuntu 10.10 (Linux) 虚拟机软件:Oracle VM VIRTUALBOX 4.1.6 虚拟系统:Windows XP SP3 电信天翼3G手机号码捆2M校园宽带, 国内上网时间:120小时 天翼客户端V1.6 是这样的,因为我这个上网的天翼客户端不支持Linux,而我的主系统又是Linux,学校本科生宿舍没有校园网,所以我不得不通过虚拟机来实现(因为网上查到主机通过虚拟机实 现上网的方式很多,但大多数是采用多网卡技术上网,例如两台计算机三网卡,一张网卡 与电信公司服务器相连,另一张网卡与第一张网卡桥接,同时将网络属性设置为共享,则 此卡相当于一个服务器,第二台计算机的第三张网卡自动获取第二张网卡的分配的IP上网。但是本人是个穷学生,没有多余的钱买网卡,而虚拟机则正好提供了我所需要的虚拟网卡)。 通过虚拟机做服务器的方法,方法很简单,但有很多注意事项,我总结的经验如下,仅供参考。注:windows7下大家有兴趣可以去试试看(最好用教程的方法来做),原理一样,应 该可行 1.启动虚拟机

2.设置虚拟机网络 虚拟机网卡为桥接(Bridging)状态,目的是让虚拟机和真实主机在同一网段(例如真实主机为192.168.1.3,虚拟机为192.168.1.10;两者的掩码和网关一样,掩码为255.255.255.0,网关为192.168.1.1,DNS推荐为:8.8.8.8,8.8.4.4) 3.启动虚拟xp sp3系统

4.更改虚拟机xp网络设置。 我们可以看到 Vnet_PPPoE是电信的天翼客户端在安装的时候为我们设置一个网络, 先连接接天翼客户端,确保它能正常连上电信的服务器

Linux内核模式

Linux内核模式 Linux内核模式 Linux内核模式 目前,操作系统内核的结构模式主要可分为整体式的单内核模式和层次式的微内核模式。而Linux0.11是采用了单内核模式。单内核模式的主要优点是内核代码结构紧凑,执行速度快,不足之处主要是层次结构性不强。 在单内核模式的系统中,操作系统所提供服务的流程为:应用主程序使用指定的参数值执行系统调用指令(init x80),使CPU从用户态(User Mode)切换到核心态(Kernel Model),然后操作系统根据具体的参数值调用特定的系统调用服务程序,而这些服务程序则根据需要在底层的一些支持函数以完成特定的功能。在完成了应用程序所需要的服务后,操作系统又从核心态切换回应用态,返回到应用程序中继续执行后面的指令。因此概要地讲,单内核模式的内核也可以粗略地分为三个层次:调用服务的主程序层,执行系统调用的服务层和支持系统调用的底层函数。 2.2 Linux内核系统体系结构

Linux 内核主要由5个模块构成,它们分别是:进程调度模块,内存管理模块,文件系统模块,进程间通信模块和网络接口模块。 进程调度模块用来负责控制进程对CPU资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得Linux支持进程使用比实际内存空间更多的内存容量。并可以利用文件系统把暂时不用的内存数据块会被交换到存储设备上去,当需要时再换回来。文件系统的模块用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其他操作系统兼容的多种文件系统格式。进程间通信模块子系统用于支持多种进程间的信息交换方式。网络接口模块提供对多种网络通信标准的访问并支持许多网络硬件。 这几个模块之间的依赖关系如下图 由图可以看出,所有的模块都与进程调度模块存在依赖关系。因为它们都需要依赖进程调度程序来挂起(暂停)或重新运行它们的进程。通常,一个模块会在等待硬件操作期间被挂起,而在操作作完后才继续运行。

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

Ubuntu Linux的桌面环境和初始设置

Ubuntu Linux的桌面环境和初始设置 来源Terry's Blog 在开始配置和使用Ubuntu 之前,我们一起来了解Ubuntu 的基本界面和操作。 1. 登录Ubuntu GDM 是Ubuntu 的默认登录界面,让使用者可以登录Ubuntu。启动Ubuntu 之后,点击用户账户名称,然后输入密码,点击“登录”按钮就可以进入系统。 需要注意的是,屏幕下方有一些选项可供选择: 语言:选择桌面环境所使用的语言,所有在语言支持中安装的语言都可以在此选择。 键盘布局:选择适合使用键盘的键盘布局,通常而言保持默认的USA 设置即可。 桌面环境:选择所要使用的桌面环境,不同的桌面环境决定了不同的界面风格和操作习惯。Ubuntu 11.04 之前的版本只内置一个桌面环境,但Ubuntu 11.04 中引入Unity 桌面作为默认桌面环境,在桌面环境选项中被称为Ubuntu 桌面,原来的桌面环境与之并存,在桌面环境选项中则被称为Ubuntu 经典桌面。因此可以选择Ubuntu 和Ubuntu 经典桌面两种不同的桌面环境。 辅助工具:提供方便有障碍人士使用计算机的工具。 关机按钮:点击此按钮可以访问关机菜单,提供关机和重新启动的选项。 Unity 桌面和Ubuntu 经典桌面存在外观和操作上的区别,不过本质上没有太大的区别,所以请自主选择适合自己的界面。下面我们来分别了解一下两种桌面环境。 2. Ubuntu 经典桌面简介 进入Ubuntu 经典桌面之后,界面如下图所示:

下面了解一下Ubuntu 经典桌面的各个部分: 顶部面板: 顶部面板左端是主菜单,包括三个菜单: 应用程序:这一菜单会将已安装的程序分类管理,而且还可以启动用于安装卸载程序的Ubuntu 软件中心。 位置:用于访问常用目录的菜单。 系统:在此可以找到调整系统设置和个人偏好的选项。 主菜单右侧是常用软件的启动器(类似于Windows 中的快捷方式),我们可以在顶部面板空白处右击,选择“添加到面板”添加指向任何位置、文件、应用程序的启动器,或者也可以将主菜单中的启动器拖放到此处。 顶部面板右侧是通知区域,用于显示系统状态,包括系统是否有更新、输入法、网络连接状态、音量、电池电量等等,一些程序在运行时也会在通知区域添加图标。通知区域最右侧是关机按钮,在此可以锁定屏幕、关机、重新启动或者注销,还可以访问用于调整系统设置的控制中心。 桌面: 当我们放入光盘或插入U 盘时,相应的图标都会自动出现在桌面上,便于用户访问。我们还可以将应用程序菜单中的启动器拖放到桌面上。 在桌面右击会出现桌面菜单,可以创建启动器、文档和文件夹,还可以设置桌面背景。 底部面板 底部面板左侧图标是显示桌面。单击这个图标会使所有窗口最小化。 底部面板的中间区域与Windows 任务栏类似,会列出当前打开的窗口。 随后是工作区切换器,用于在不同虚拟桌面之间切换。 底部面板最右侧的图标是回收站,里面存放了被删除的文件。 Unity 桌面简介 进入Unity 桌面之后,界面如下图所示:

相关文档