第一章(Linux概念)
课后习题
- GNU的含义是
“GNU's Not Unix”
,这是一个递归缩写,表示GNU是一个自由的、类Unix操作系统的项目。 - *Linux一般有3个主要部分:
内核(kernel)、命令解释层(Shell或其他操作环境)、实用工具
。 /etc/sysconfig/network
文件主要用于设置基本的网络配置,包括主机名称、网关等。- 一块网卡对应一个配置文件,配置文件位于目录
/etc/sysconfig/network-scripts/
中,文件名以ifcfg-
开始。 /etc/resolv.conf
文件是DNS客户端用于指定系统所用的DNS服务器的IP地址。- POSIX是
“Portable Operating System Interface”
的缩写,重点在规范核心与应用程序之间的接口,这是由美国电气与电子工程师学会(IEEE)所发布的一项标准。 - 当前的Linux常见的应用可分为
企业应用
和个人应用
两个方面。 - *Linux的版本分为
内核版本
和发行版本
两种。 - *安装Linux最少需要两个分区,分别是
根分区(/)
和交换分区(swap)
。 - *Linux默认的系统管理员账号是
root
。
1.Linux最早是由计算机爱好者( B )开发的。LT
A.Richard Petersen B.Linus Torvalds
C.Rob Pick D.Linux Sarwar
2.下列中( C )是自由软件。
A.Windows XP B.UNIX C.Linux D.Windows 2008
3.下列中( B )不是Linux的特点。(免费、自由、开放;多任务、多用户)
A.多任务 B.单用户 C.设备独立性 D.开放性
4.Linux的内核版本2.3.20是( A )的版本。 (主版号.次版号.修正号,中间的次版号如果是偶数表示稳定,奇数表示测试版)
A.不稳定 B.稳定的 C.第三次修订 D.第二次修订
5.Linux安装过程中的硬盘分区工具是( D )。
(在Linux系统安装过程中,可以采用Disk Druid、RAID和LVM等方式进行分区。安装完成后,在Linux系统中还有fdisk、cfdisk、parted等分区工具。)
A.PQmagic B.FDISK C.FIPS D.Disk Druid
6.Linux的根分区系统类型可以设置成( C )。(Linux系统使用ext2/ext3/ext4文件系统,其他的为window 文件类型)
A.FATl6 B.FAT32 C.ext4 D.NTFS
7.以下哪个命令能用来显示server当前正在监听的端口? ( D )
A.ifconfig B.netlst C.iptables D.netstat
8.以下哪个文件存放机器名到IP地址的映射? ( A )
A./etc/hosts B./etc/host C./etc/host.equiv D./etc/hdinit
9.Linux系统提供了一些网络测试命令,当与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,请从下面的命令中选出满足该目的的命令。( )
A.ping B.ifconfig C.traceroute D.netstat
第二章(常用的命令)
课后习题
1.在Linux系统中命令区分
大小写。在命令行中,可以使用Tab
键来自动补齐命令。
2.如果要在一个命令行上输入和执行多条命令,可以使用分号
来分隔命令。
3.断开一个长命令行,可以使用反斜杠“\”
,以将一个较长的命令分成多行表达,增强命令的可读性。执行后,Shell自动显示提示符“>”
,表示正在输入一个长命令。
4.要使程序以后台方式执行,只需在要执行的命令后跟上一个&
符号。
1.( D )命令能用来查找在文件TESTFILE中包含4个字符的行。
A.grep '??? ’ TESTFILE B.grep '…. ’ TESTFILE
C.grep '^ ??? $ ’ TESTFILE D.grep ’ ^….$ ’ TESTFILE(匹配只有四个字符的行)
2.( B )命令用来显示/home及其子目录下的文件名。
A.ls -a /home(-a : 所有文件包括.开头的隐藏文件,即all)
B.ls -R /home (-R;目录向下面递归,即可显示所有文件名)
C.ls -l /home( -l : 长格式显示,显示详细信息)
D.ls -d /home (-d :如果home是目录则显示home名称,里面文件不显示,通常和-l 一起使用)
3.如果忘记了ls命令的用法,可以采用( C )命令获得帮助。
A.?ls B.help ls C.man ls D.get ls
4.查看系统当中所有进程的命令是( D )。
A.ps all B.ps aix C.ps auf D.ps aux
5.Linux中有多个查看文件的命令,如果希望在查看文件内容过程中用光标可以上下移动来查看文件内容,则符合要求的那一个命令是( C )。
A.cat B.more C.less D. head
- cat :查看所有文件内容
- more: 分页显示,enter移动下一行,space 移动下一页,q退出 ,无法向上。
- less :上下翻页,左右移动
- head: 显示开头部分,-n 2 显示前2行;-c 2 显示前两个字符
- tail:从尾部开始,-n 2 显示倒数两行;-c 2显示倒数两个字符
6.( C )命令可以了解您在当前目录下还有多大空间。(du 看文件的大小 ;df 显示系统全部磁盘的使用量情况 )
A.df B.du / C.du . D.df .
- ’ . ':表示当前目录
- ’ … ':表示当前目录的父目录
- ‘’ ~ ‘:表示家目录
7.假如需要找出 /etc/my.conf 文件属于哪个包(package),可以执行( C )命令。
A.rpm -q /etc/my.conf B.rpm -requires /etc/my.conf
C.rpm -qf /etc/my.conf D.rpm -q | grep /etc/my.conf
8.在应用程序启动时,( B )命令设置进程的优先级。
A.priority B.nice C.top D.setpri
9.( C )命令可以把f1.txt复制为f2.txt。
A.cp f1.txt | f2.txt B.cat f1.txt | f2.txt
C.cat f1.txt > f2.txt D.copy f1.txt | f2.txt
输入/输出重定向和管道符:
- 命令 > 文件 :将输出重定向文件中,覆盖文件内容(原数据清空)
- 命令 >> 文件 :将输出重定向文件中,追加到文件中
- <:输入重定向。
- 2> 和 2>> : 错误重定向,将命令的错误信息重定向文件中。
- &> :同时输出重定向和错误重定向
10.使用( B )命令可以查看Linux的启动信息。
A.mesg –d B.dmesg C.cat /etc/mesg D.cat /var/mesg
相关知识点
- pwd :打印当前目录路径
- cd :切换目录、
- ls :列出文件或目录名称
- mkdir :创建目录 (make dir 制作目录,即创建目录);参数 -p 向上递归,eg : mkdir -p dir1/su1 如果dir1 不存在,创建文件夹 dir1,再创建文件夹 su1
- rm:删除文件或目录;参数**-R** 向下递归删除,目录下所有文件和目录。
- cp : 用于文件或目录的复制
- 复制指定的源文件,并定义新文件的名称:cp File1.cfg File2.cfg
- 参数-a :复制文件时,保留其原始权限及用户归属信息 all所有属性:cp -a File1.cfg File2.cfg
- 参数-f : 将指定文件复制到/etc目录中,并覆 f 盖已有文件,不进行询问。
- 参数-r :向下递归复制所有子文件。
- mv :文件或目录的移动 move ;
- -i : 提示
- -f:无论目标文件是否存在,强制覆盖。
- touch :创建文件名或目录名
- diff :比较两个文件的不同 different
- ln :文件链接
- ln aa bb :硬链接,aa 和 bb 两个文件同时指向同一块存储空间;任何一个文件内容的修改都会影响另外一个,因为都指向同一个存储空间。
- ln -s aa cc : 软连接,相当于快捷方式,cc 删除不影响 aa 文件,但aa 删除 cc 无法找到。
- find :文件查找
- grep :文件中指定字符查找 ,常与正则表达式连用
- 其他命令:
- clear : 清除屏幕内容
- man : 帮助手册 man ls
- who : 当前登录的用户终端信息
- echo:输出到屏幕
- wget:网络文件下载
第三章(shell 与 vim 编辑器)
课后习题
1.*由于核心在内存中是受保护的区块,因此我们必须通过 shell
将我们输入的命令与Kernel沟通,以便让Kernel可以控制硬件正确无误地工作。
2.系统合法的shell均写在/etc/shells
文件中。
3.用户默认登录取得的shell记录于 /etc/passwd
的最后一个字段。
4.bash的功能主要有: 命令编辑功能
;命令与文件补全功能
;命令别名设置功能
;作业控制
、前台与后台控制
;程序化脚本
;通配符
等。
5.*shell变量有其规定的作用范围,可以分为局部变量
与 全局变量
。
6.set
可以观察目前bash环境下的所有变量。
7.通配符主要有*
、?
、[]
等。
8.*正则表示法就是处理字符串的方法,是以 行
为单位来进行字符串的处理的。
9.*正则表示法通过一些特殊符号的辅助,可以让使用者轻易地 查找
、删除
、替换
某个或某些特定的字符串。
10.正则表示法与通配符是完全不一样的。通配符
代表的是bash操作接口的一个功能,但 正则表达式
则是一种字符串处理的表示方式。
学习通作业
- (判断题)一般地,Linux下编辑文本文件可以用 vim 来完成。( )
- A. 对
- B. 错
正确答案: 对
- (判断题)进入文本编辑器vim后,未编辑时可在插入模式下输入:q退出vim环境。
- A. 对
- B. 错
正确答案: 对
答案解析:
不编辑时可使用冒号进入底行模式,插入模式下必须先使用“esc”键
- (判断题)pwd命令的作用是显示当前工作目录。
- A. 对
- B. 错
对正确答案: 对
- (判断题)如果要在一个命令行上输入和执行多条命令,可以使用“&”来分隔命令。使用 分号 ,& 后台执行;
- A. 对
- B. 错
正确答案: 错
- (判断题)在Linux系统中命令区分大小写。
- A. 对
- B. 错
正确答案: 对
- (判断题)要使程序以后台方式执行,只需在要执行的命令后跟上一个“$” 符号。& 与字符
- A. 对
- B. 错
正确答案: 错
- (单选题)若终端中输入命令是:[ root@localhost ~]# echo ‘my current dir is
pwd
and my logname is $LOGNAME ‘ ,则输出结果可能是:( )
- A. my current dir is
pwd
and my logname is $LOGNAME - B. my current dir is
pwd
and my logname is root - C. echo ‘my current dir is
pwd
and my logname is $LOGNAME ‘ - D. my current dir is /root and my logname is root
正确答案: A:my current dir is pwd
and my logname is $LOGNAME;
答案解析:
单引号内字符原样输出
- (单选题)若终端中输入命令是:[ root@localhost Desktop]# echo “she says “hello” to me”,则输出结果可能是:( )
- A. she says
- B. she says hello to me
- C. echo “she says “hello” to me”
- D. she says “hello” to me
正确答案: B
答案解析:
双引号内字符除特殊符号外原样输出,双引号不输出
- (单选题)若终端中输出内容是: /usr/local/ sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin, 则输入的命令可能是:( )
- A. # echo $LOGNAME
- B. # echo $PATH
- C. # echo $HOME
- D. # echo $$
正确答案: B
- (单选题)Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用的命令是( )。
- A. less
- B. cat
- C. more
- D. menu
正确答案: A:less;
- (多选题)若终端中输出内容是:” / root/Desktop” ,则输入的命令可能是:( )
- A. [ root@localhost Desktop]# pwd
- B. [ root@localhost Desktop]# PWD
- C. [ root@localhost Desktop]# echo pwd
- D. [ root@localhost Desktop]# echo $PWD
正确答案: AD:[ root@localhost Desktop]# pwd; [ root@localhost Desktop]# echo $PWD;
- (填空题)存盘退出vim编辑器,应键入_:wq___;
相关知识点
shell: 用户与操作系统内核之间的接口,起到用户和操作系统之间进行交换作用,重要的功能是命令解释
shell 环境变量:
- 变量定义:name=string #没有空格
- 变量的作用域:局部和全局 (export var2,将var2 设置为全局变量)
- 常见环境变量:HOME (当前用户目录)、PATH(bash 寻找可执行文件搜索路径)、PWD(当前工作路径);set 环境变量=变量的值(设置环境变量的值)
正则表达式: 详情 https://www.runoob.com/regexp/regexp-rule.html (P73)
-
(1)以“P”开头。
[root@server01 ~]# grep -n ^p data (^匹配行头)
(2)以“y”结尾。
[root@server01 ~]# grep -n .y$ data( *表示前一个字符零次或多次)
(3)以“m”开头以“d”结尾。
[root@server01 ~]# grep -n ^m.*d$ data ( ’ ^m ’ 以m开头 ; '. *’ 表示任意字符出现零次或多次 ; ’ d$ ’ 以d结尾)
(4)以“e”“g”或“l”开头。
[root@server01 ~]# grep -n ^ [egl] data (‘[]’,匹配方括号内的任意一个字符)
(5)包含“o”,它后面跟着“u”。
[root@server01 ~]# grep -n ou data
(6)包含“o”,隔一个字母之后是“u”。(.匹配单个任意字符)
[root@server01 ~]# grep -n o.u data
(7)以小写字母开头。
[root@server01 ~]# grep -n 1 data (^开头是[]内的任意字符,[a-z] 小写字母范围)
(8)只含有一个数字的行。
[root@server01 ~]grep '^ [0-9] ′ d a t e ( 开 头是 [ ] 内的任意字符, [ 0 − 9 ] 数字范围, ' date(^开头是[]内的任意字符,[0-9] 数字范围, ′date(开头是[]内的任意字符,[0−9]数字范围,行结束)
(9)以“s”开头,包含一个“n”。
[root@server01 ~]# grep -n ^ s.*n . * data (
^s
s开头,.*
表示任意数量的任意字符,n
表示字符串中必须包含字母 “n” ,.*
再次表示任意数量的任意字符 )(10)只含有4个字母。
[root@server01 ~]# grep -n ‘^ [a-zA-Z] \ {4 \ }$’ data (行刚好是四个字母,\ { n \ } 匹配前一个字符n次)
(11)只含有4个字母,但不包含“f”。
[root@server01 ~]# grep -n ‘^ [a-eg-zA-Z] \ { 4 \ }$’ data
shell脚本:
- 执行shell脚本:
- bash aa.sh
- chmod +x aa.sh 添加执行权限 ; ./aa.sh 执行aa.sh
- sh aa.sh
- 编写脚本 vim aa.sh
- 第一行宣告:#!/bin/bash
vim 编辑器:
- 工作模式三种:命令模式(i、o、a)-> 进入输入模式(😃->进入末行模式(wq保存退出)
- 命令模式下的粘贴:p 光标之前粘贴 ;shift + p 光标之后粘贴
- 命令模式下查找: /swap 向下查找 ;?svap 向上查找 ; s /the /The /g 所the 替换成 The /g 表示全局替换所有行 ;1,10 /the/The/g 一到十行替换
- 常见命令:
w
、wq
、q!
、:w[fielname]另存为新文件名filename
、:n1,n2 w[filename]n1-n2内容存储到filename
第四章(用户和组管理)
课后习题
1.Linux操作系统是==多用户
、多任务
==的操作系统,它允许多个用户同时登录到系统,使用系统资源。
2.Linux系统下的用户账户分为两种:==普通用户
==和 超级用户root
。
3.root用户的UID为==0
,普通用户的UID可以在创建时由管理员指定,如果不指定,用户的UID默认从1000或500
==开始顺序编号。
4.在Linux系统中,创建用户账户的同时也会创建一个与用户同名的组群,该组群是用户的 主群组
。普通组群的GID默认也从 1000
开始编号。
5.一个用户账户可以同时是多个组群的成员,其中某个组群是该用户的==主组群
(私有组群),其他组群为该用户的附属组群
==(标准组群)。
6.在Linux系统中,所创建的用户账户及其相关信息(密码除外)均放在==/etc/passwd
==配置文件中。
7.由于所有用户对/etc/passwd文件均有==读取
权限,为了增强系统的安全性,用户经过加密之后的口令都存放在/etc/shadow
==文件中。
8.组群账户的信息存放在==/etc/group
文件中,而关于组群管理的信息(组群口令、组群管理员等)则存放在/etc/gshadow
==
文件中。
1.哪个目录存放用户密码信息?( )
A./etc B./var C./dev D./boot
2.请选出创建用户ID 是1200、组ID是1000、用户主目录为/home/user01的正确命令。( )
A.useradd -u:1200 -g:1000 -h:/home/user01 user01
B.useradd -u=1200 -g=1000 -d=/home/user01 user01
C.useradd -u 1200 -g 1000 -d /home/user01 user01
D.useradd -u 1200 -g 1000 -h /home/user01 user01
3.用户登录系统后首先进入下列哪个目录?( )
A./home B./root的主目录
C./usr D.用户自己的家目录
4.在使用了shadow口令的系统中,/etc/passwd和/etc/shadow两个文件的权限正确的是( )。
A.-rw-r----- , -r-------- B.-rw-r–r-- , -r–r–r—
C.-rw-r–r-- , -r-------- D.-rw-r–rw- , -r-----r—
- /etc/passwd 文件包含了用户的账户信息,但不包含密码,所有用户可读。
- /etc/shadow 文件包含了用户的密码信息,为了安全起见,该文件只有root用户具有读写权限,其他用户只有读取权限。
5.下面哪个参数可以删除一个用户并同时删除用户的主目录?( )
A.rmuser –r B.deluser –r C.userdel –r D.usermgr -r
6.系统管理员应该采用哪些安全措施?( )
A.把root密码告诉每一位用户
B.设置telnet服务来提供远程系统维护
C.经常检测账户数量、内存信息和磁盘信息
D.当员工辞职后,立即删除该用户账户
7.在/etc/group中有一行students::600:z3,14,w5,表示有多少用户在student组里?( )
A.3 B.4 C.5 D.不知道
- /etc/group 内容格式为:组名 : 组口令 : GID : 成员列表 (组管理成员)
- /etc/gsshawow 内容格式为: 组名:加密后的组口令(没有就是!): 组的管理员:组成员列表(对组进行管理)
8.下列的哪些命令可以用来检测用户lisa的信息?( )
A.finger lisa B.grep lisa /etc/passwd
C.find lisa /etc/passwd D.who lisa
9.(多选题)下列的哪些命令可以用来检测用户stu的信息?( )
A. ls /etc/passwd | grep stu
B. grep stu /etc/passwd
C. ls /etc/shadow | grep lisa
D. grep stu /etc/shadow
相关知识点
etc下的几个文件:
- /etc/passwd : 存放用户账户及相关信息,除了密码; 格式为 用户名:加密口令(X): UID : GID : 描述: 解释器位置 (/bin/bash) (所有用户可读)
- /etc/shadow : 用户的详细信息含密码;格式为 用户登录名: 加密口令(*非登录用户,!!表示没有设置密码):最近修改的天数(从1970.1.1开始) :密码有效期(1970.1.1): **密码存活期 **: 默认提醒 : 过几天禁用账户 : 具体禁用日期 : 保留域 (ROOT可读)
- /etc/login/defs : 用户配置文件 ; UID_MIN 自动创建的最小UID; CREATE_HOME 创建用户是否创建主目录
- /etc/group 内容格式为:组名 : 组口令 : GID : 成员列表 (组管理成员,所有用户可读)
- /etc/gsshawow 内容格式为: 组名:加密后的组口令(没有就是!): 组的管理员:组成员列表(对组进行管理,只有ROOT用户可读)
管理用户账号:
- 创建用户组 - 使用
groupadd
- 删除用户组 - 使用
groupdel
- 修改用户组信息 - 使用
groupmod
- -g :修改GID
- -n :重命名
- 创建用户 - 使用
useradd
- -d : 指定主目录
- -p :设置密码
- -u : 指定UID
- 删除用户 - 使用
userdel
- -r : 将主目录下所有文件删除
- 设置用户认证信息 - 使用
passwd
- -l : 锁定用户账户
- -u :解锁
- 修改用户 - 使用
usermod
- -md :重新指定家目录,并且将旧数据转移到新目录
- -G :变更扩展组
- -g :变更所属组
- id : 查看用户的id (UID GID )
- 为组添加用户 - 使用
gpasswd
:root可用 - whoami:显示当前用户名称
第五章(文件系统和磁盘管理)
课后习题
假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1,一个Windows分区加载到/win目录?( D)
A. mount -t windows /win /dev/hda1
B. mount -fs=msdos /dev/hda1 /win
C. mount -s win /dev/hda1 /win
D. mount –t vfat /dev/hda1 /win
请选择关于/etc/fstab的正确描述。( B )
A. 启动系统后,由系统自动产生。
B. 用于管理文件系统信息。
C. 用于设置命名规则,是否使用可以用TAB来命名一个文件。
D. 保存硬件信息。
存放Linux基本命令的目录是什么( A)
A. /bin B. /tmp C. /lib D. /root
对于普通用户创建的新目录,哪个是缺省的访问权限?( A )
A. rwxr-xr-x B. rw-rwxrw- C. rwxrw-rw- D. rwxrwxrw-
umask 值决定了创建文件或目录时默认权限的掩码。默认的 umask 值是 022
目录需要执行权限 777-022=755 及 rwx r-x r-x
如果当前目录是/home/sea/china,那么“china”的父目录是哪个目录?( A)
A. /home/sea B. /home/ C. / D. /sea
系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2想修改user1用户目录下的file1文件,应拥有( B)权限?
A. 744 B. 664 C. 646 D. 746
文件类型为:所有者 、用户组、其他用户
属于同组则修改用户组,修改权限需加w权限,644 -> 664
在一个新分区上建立文件系统应该使用命令( C )
A. fdisk B. makefs C. mkfs D. format
用ls –al 命令列出下面的文件列表,问哪一个文件是符号连接文件?( D)
A. -rw------- 2 hel-s users 56 Sep 09 11:05 hello
B. -rw------- 2 hel-s users 56 Sep 09 11:05 goodbey
C. drwx----- 1 hel users 1024 Sep 10 08:10 zhang
D. lrwx----- 1 hel users 2024 Sep 12 08:12 cheng
- d 表示目录
- -表示普通文件
- l 表示链接文件
Linux文件系统的目录结构是一棵倒挂的树,文件都按其作用分门别类地放在相关的目录中。现有一个外部设备文件,我们应该将其放在(C )目录中。
A. /bin B. /etc C. /dev D. lib
如果umask设置为022,缺省的创建的文件的权限为:( D )
A. ----w–w- B. –rwxr-xr-x C. r-xr-x— D. rw-r–r–
文件不需要有执行权限 666-022=644
相关知识点
文件系统:
- Linux 把每个文件权限和属性保存在索引节点inode中,默认(128b)索引即属性,块即内容
- 常见目录位置:
- / 根
- /boot 内核
- / dev 设备
- / etc 配置文件
- /bin 用户可运行程序
- /tmp 共享临时目录
- 绝对相对路径
- 权限:
- 三种用户类型(所有者 、用户组、其他用户)分别有三种文件权限(读、写、执行),总共3*3=9种权限组合
- 每行第一个字符区分文件类型:d 表示目录 ; -表示普通文件 ; l 表示链接文件
- umask :管理权限掩码 ,即遮住权限;执行 umask 777 便屏蔽所有权限 ,使权限为 000
- s 或 S :特殊权限,有安全隐患风险,使用用户组所有资源
- 权限的修改
chmod
- 数字法: chmod 666 /yy/file
- 文字表示法: chmod u=rw,g=rw,o=r /yy/file 或 chmod u+rw,g+rw,o-r /yy/file
磁盘管理:
- 分区号规定:主分区或扩展分区编号从[ 1-4 ] ; 逻辑分区从 5 开始
- 使用磁盘管理工具fdisk: l 列出支持分区 ;p 查看分区表 ;n 创建分区表-> p(创建扩展分区) e(创建逻辑分区)
- 建立文件系统命令 mkfs :
- mount /dev/sdb1 /newfs/ : 对存储设备与挂载点进行关联 ,/dev/sdb1是设备 ; /newfs/ 是挂载点
- df :查看文件系统的硬盘空间占用情况。
- 要实现开机自动挂载文件系统,修改 /etc/fstab 文件、
shell 编程:
-
编写Bash脚本,从键盘输入两个数值,并计算它们的和。
-
#!/bin/bash echo "请分别输入两个数:" read num1 read num2 echo "$num1 + $num2 = $((num1+num2))"
-
-
shell编程,实现从1+2+3+…100的和(拓展实验,从键盘输入一个数字,实现从1加到这个数字的和)
-
#!/bin/bash sum=0 for((i=1;i<=100;i++));do sum=$((sum+i)) # echo "这是第 $i 次调用sum= $sum"; done; echo "1+2+3+4.....+100=$sum"
-
-
编写一个Bash脚本,从键盘输入一个数值,判断该数是否为偶数。如果是偶数,输出“是偶数”;否则,输出“不是偶数”。
-
#!/bin/bash echo "请输入一个数值:" read num1 if (( ((num1%2)) == 0)) then echo "$num1 是 偶数" else echo "$num1 是 奇数" fi
-
-
编写一个Bash脚本,从键盘输入一个正整数,计算并输出该数的阶乘
-
#!/bin/bash echo "请输入一个正整数:" read num s=1 for (( i=2; i<=$num; i++ )); do s=$((s*i)) done echo "阶乘 $num! =$s"
-
-
编写一个Bash脚本,从键盘输入一个文件名和一个字符串,查找该文件中是否包含该字符串,并输出结果。
-
#!/bin/bash echo "请输入文件名" read filename #-f: 是一个测试操作符,用于检查指定的文件是否存在且是一个常规文件(即不是目录或其他类型的文件 if ! ls | grep "$filename" then echo "文件不存在!!!" exit 1 else echo "请输入查找的字符串:" read str if grep "$str" "$filename" then echo "文件含有字符串'$str'" else echo "文件不含有字符串'$str'" fi fi
-
-
编写一个Shell脚本,显示当前目录名称,并显示当前目录中的文件和子目录名称。
-
#!/bin/bash echo "当前目录: $(basename "$PWD")" echo "当前目录中的文件和子目录:" ls -1
-
-
编写一个Shell脚本,创建一个名为example.txt的文件,并向其中写入一行文本“Hello, World!”。
-
#!/bin/bash # 创建并写入文件 echo "Hello, World!" > example.txt
-
Linux 下运行C文件:
- 编译 C 代码: gcc -o test test.c :
- 执行 C 代码: ./test
a-z ↩︎