Linux总结(下)附练习

1.管道符号:命令1  | 命令2    连接多个命令


2.撷取命令:grep  符合查找信息的整合显示
         命令1 | grep [选项] 过滤信息
            选项:-i 忽略大小写
                       -c 出现的行数
                      -n 行号
                      -v 反向选择
                  
          cut 从一行内容中获取想要的那一部分信息
          命令1 | cut [选项]
            选项: -d '分割符合'  以分割符合来切一行的内容
                        -f 数字   获取分割后的那部分内容
                        -c 数字1-数字2  获取字符从数字1到数字2之间的内容
                   
                命令1  | cut -d ':' -f 1, 2     以:分割后去第一段和第二段的内容
                命令1  | cut -c 5-15    获取第5个字符到第15字符的内容
                
          注意:使用cut来分割空格,如果空格有很多,那么就。。。。
            awk '{print $2}'  
                
          排序:sort    
          去重复:uniq [选项]
                选项: -i 忽略大小写
                            -c 计数
          计数:wc [选项]
                选项:-l  计数


3.进程管理

3.1静态查看: ps [选项] 
        选项:-aux 显示所有包含其他使用者的进程
                   -ef 所有进程完整信息


3.2动态查看:top [选项]
        选项: -d 秒数 (默认3秒)
                    -p 指定PID来检测


3.3结束进程:kill [选项] 进程ID
        选项:-1 重新启动进程
                   -2 Ctrl+c来中断一个程序的运行
                   -9 强制中断一个程序的运行
                  -15 正常的结束来终止程序运行


3.4结束进程:killall [选项] 进程名称
        选项:-1 重新启动进程
                   -2 Ctrl+c来中断一个程序的运行
                   -9 强制中断一个程序的运行
                   -15 正常的结束来终止程序运行


3.5查看端口占用:netstat [选项]
        选项:-a:将目前系统上所有的联机、监听、Socket数据列出来
                  -n:不显示程序的名称,而是端口号
                  -p:列出程序的PID
                  -l:仅显示正在监听的程序
                  -o或--timers 显示计时器
          netstat -ano | less


3.6查看资源占用:vmstat


4.磁盘管理:


4.1查看磁盘占用: df [选项]
        选项:    -a:列出所有的文件系统,包括系统特有的/proc等文件系统
            ​           -k:以KB为单位来显示各个文件系统
            ​           -m:以MB为单位来显示各个文件系统
            ​           -h:以易于阅读的方式显示
        df -amh


4.2挂载磁盘:mount 分区名称 目录名称


4.3反挂载磁盘:umount [选项] 分区名称
        选项: -f 强制卸除


5.网络管理:
    网卡信息: ifconfig
    连通性: ping 目标地址
    下载资源:wget 网络地址 


6.软件管理
    RPM
        安装:rpm -ivh 软件包.rpm   可视化安装且显示安装进度
        升级:rpm -Uvh 软件包.rpm
        删除:rpm -e 软件名  
        查询:rpm -qa  查询所有可安装的程序  (query all)
                   rpm -qa | grep 软件名
    YUM
        安装:yum install -y 安装包
        升级:yum update -y 包名
        删除:yum remove -y 包名
        查看:yum list 查询所有可安装的程序
                   yum list | grep 软件名
                   yum info 软件名  显示软件信息

7.搭建web服务:

(1).安装jdk
        查看当前可以安装的jdk版本  : yum list|grep jdk
        安装jdk : yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
        获取安装路径:
            cd /usr/lib/jvm
            ls -al
            会看见【java-1.8.0-openjdk。。。。】的文件夹
            进入该文件夹 ,然后获取路径pwd
        配置环境变量:
            vi /etc/profile
            #jdk set
            export JAVA_HOME=jdk实际安装路径
            export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
            export PATH=$PATH:$JAVA_HOME/bin
        环境变量生效:source /etc/profile
        检查是否正确:java -version  和 javac

(2).安装tomcat
        来源:网上下载或者本地上传
        保存地址:/usr/local
        解压文件:tar -xvf /usr/local/apache-tomcat-8.5.63.tar.gz
        重命名:mv /usr/local/apache-tomcat-8.5.63/ /usr/local/tomcat
        配置环境变量:
            vi /etc/profile  在最后一行添加内容
            #tomcat set
            export CATALINA_HOME=/usr/local/tomcat
        配置服务
            cp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat8
            chmod 755 /etc/init.d/tomcat8
            vi /etc/init.d/tomcat8 在最前面添加
                #chkconfig: 2345 10 90 
                #description: tomcat8 service 
                export JAVA_HOME=jdk实际安装路径
                export CATALINA_HOME=/usr/local/tomcat
            
            chkconfig --add tomcat8  添加服务
            service tomcat8 start    启动服务
            ps -ef|grep tomcat       查看服务是否启动
        配置防火墙:
            firewall-cmd --zone=public --add-port=8080/tcp --permanent 
            firewall-cmd --reload
            firewall-cmd --zone=public --list-ports
            
        就是在浏览器中的地址栏:IP:8080   可以看见一只猫

(3).上传war
        切换路径tomcat/webapps
        cd /usr/local/tomcat/webapps
        rz     执行后会弹出窗口,选择上传文件,即可

练习(一):


创建组group1,组id为550;group2,组id为551
groupadd -g 550 group1
groupadd -g 551 group2


新建用户tester1,id为510,所属组为group1
useradd -u 510 -g group1 tester1


新建用户tester2,所属组为group1
useradd -g group1 tester2


将tester1的id改为520,用户名改为tester3
usermod -u 520 -l tester3 tester1


将tester2的所属组改为group2
usermod -g group2 tester2


删除组group1
groupdel group1


练习(二):


使用root账户登录系统,在admin用户的家目录内复制一个文件并改名1.log
useradd admin
cp /tmp/anaconda.log /home/admin/1.log


更改文件的权限为640 
chmod 640 /home/admin/1.log


任意新建一个组group10,组id为600
groupadd -g 600 group10


使1.log属于group10这个组
chgrp group10 /home/admin/1.log


通过更改用户所属组的方法使得1.log能够被普通用户admin所访问
chown admin /home/admin/1.log


练习(三):


1.如果设置 umask 为 001 , 那么用户默认创建的目录和文件的权限是什么样子的?
目录的最大权限777  -- > 755
文件的最大权限666  -- > 644
umask 默认022

2.在任意文件夹下面创建形如 1/2/3/4/5/6/7/8/9 格式的文件夹系列。
    mkdir -p /home/admin/1/2/3/4/5/6/7/8/9


    在创建好的文件夹下面,比如我是/Users/jimmy/tmp/1/2/3/4/5/6/7/8/9 ,里面拷贝文本文件 me.txt
    cd /home/admin
    cp 1.log 1/2/3/4/5/6/7/8/9/me.txt


    修改me.txt只能被拥有者读写执行
    chmod 700 1/2/3/4/5/6/7/8/9/me.txt


    拷贝me.txt到1/2/3/4/5中
    cp 1/2/3/4/5/6/7/8/9/me.txt 1/2/3/4/5/me.txt


    查看1/2/3/4/5/me.txt的权限,把权限修改为700
    ls -al 1/2/3/4/5


    添加用户组mgroup1,组id为2024
    groupadd -g 2024 mgroup1


    新建用户muser1,用户ID是555 , 所属组为2024
    useradd -u 555 -g 2024 muser1


    设置muser1的密码
    passwd muser1


    修改1/2/3/4/5/me.txt所属mgroup1,
    chgrp mgroup1 1/2/3/4/5/me.txt


    删除上面创建的文件夹 1/2/3/4/5/6/7/8/9 及文本文件 me.txt
    rm -rf 1


    注销用户root
    logout


3.请在 /tmp 这个目录下建立一个名为test 的目录
mkdir /tmp/test


进入 test 这个目录中
cd /tmp/test


将 /etc/profile 复制到本目录中,并命名为 profile.bak
cp /etc/profile profile.bak    或者 cp /etc/profile /tmp/test/profile.bak


使用 vi 打开目录下的 pro 这个文件
vi profile.bak


在 vi 中设定一下行号
:set nu


移动到第 46行
输入46,按enter


进入插入模式,在最后插入一行以下内容:#this is profile backup file
在命令模式,按G到最后一行,
按[a]进入插入模式 

输入


存储退出
按【esc】,:wq

练习(四):


1.在当前用户的主目录下创建一个test目录,在这个目录下建立3个文件1.log、2.log、3.log
cd ~
mkdir test 
cd test
touch 1.log 2.log 3.log


然后请用find命令找出这3个文件并将它们一起删除
cd ..
find test -name *.log -delete


2. 在/home/admin目录下,创建文件abc.txt ,然后输入内容
  cd /home/admin 
  echo aaa > abc.txt


   复制该文件到当前目录,并且改名def.txt,
    cp abc.txt def.txt


    在def.txt中第一行插入空行,第二行添加空格 ,第三行修改为HELLO,

        vi def.txt
        在第一行插入空行:
        按 Esc 确保退出插入模式。
        移动光标到第一行,输入 O(大写的字母 O),这会在当前行上方插入一个空行。
        在第二行添加空格:
        使用 j 键移动到第二行。
        输入 I(大写的字母 I),进入插入模式。
        按下 空格键 添加一个空格。
        按 Esc 退出插入模式。
        将第三行修改为 "HELLO":
        使用 j 移动到第三行。
        输入 cc,会删除整行并进入插入模式。
        输入 HELLO,然后按 Esc 退出插入模式。
        保存并退出:

        输入 :wq 保存更改并退出 vi。


    比较当前目录下面的abc.txt 和 def.txt 有啥不同?
    diff abc.txt def.txt


    在/home文件夹下,查找a开头且后缀为.txt的文件,删除它,
    cd /home
    find /home -name abc.txt -delete


    查找文件名包含e且后缀是.txt的文件,删除它。
    find /home -name def.txt -delete

    
3.拷贝/etc/profile 到 /home/admin/profile.back
 cp /etc/profile /home/admin/profile.back


 压缩profile.back成为 profile.back.gz
 cd /home/admin
 gzip  profile.back 


 解压profile.back.gz
 gzip -d profile.back.gz


 压缩profile.back成为profile.back.bz2
 bzip2 profile.back


 解压profile.back.bz2
 bzip2 -d profile.back.bz2


 将profile.back和当前文件夹下面所有的.log文件一起打包成为all.tar.gz
 tar -czvf all.tar.gz profile.back *.log


 在当前文件夹下创建all文件夹,将all.tar.gz移动进来
 mkdir all
 mv all.tar.gz all/


 解压all.tar.gz文件
 cd all
 tar -xzvf all.tar.gz


 安装rar软件后,将profile.back和当前文件夹下面所有的.log文件一起打包到all2/all.rar
 rar a all2/all.rar profile.back *.log


 在all2中解压all.rar
 cd all2
 rar e all.rar

 
4.创建Fuck.txt文件,输入内容:
public class Fuck {
    public static void main(Strinig[] args) {
        System.out.println("fuck...");
    }
}


 使用管道命令取出前三行信息
vi Fuck.txt 
按【a】进入插入模式 ,复制进入即可
按[esc] 进入命令模式, :wq保存退出
cat Fuck.txt | head -n 3
 
 
5.打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和家目录
cat /etc/passwd | cut -d ':' -f 1,6

6.打印/etc/passwd文件中每一行的前10个字符
cat /etc/passwd | cut -c 1-10

7.取出含有 fanco 的/etc/passwd文件的行
cat /etc/passwd | grep fanco

8.对/etc/passwd的账号进行排序
cat /etc/passwd | cut -d ':' -f 1 | sort

9.使用 last 取出历史登录信息的账号,排序,去重
last | awk {'print $1'} | sort | uniq 
last | cut -d ' ' -f 1 | sort | uniq
 

10.查看etc/passwd中有多少账号
cat /etc/passwd | cut -d ':' -f 1 | wc -l

<think>好的,我现在需要帮助用户学习Linux基础知识和进行相关练习。根据用户的问题,他们可能是一个刚开始接触Linux的新手,想要通过练习题来巩固基础知识。用户提供的引用内容中有四个不同的练习题和相关命令的解释,我需要整理这些信息,并生成一个结构清晰的回答,同时上相关问题。 首先,我需要明确用户的需求:寻找Linux基础知识的练习题和教程资源。用户提供的引用中有四个不同的练习题,涉及命令如uname、netstat、ar等,以及文件操作和权限设置。此外,用户可能还希望了解如何系统地学习这些内容,所以需要推荐教程资源。 接下来,我应该按照用户的要求,将回答分成几个部分。首先,可能是一个简介,说明Linux基础知识的重要性。然后,分章节列出练习题,每个题目对应一个知识点,并给出答案和解析。最后,推荐相关的教程资源,并生成相关问题。 需要注意的是,用户提到的引用内容中有具体的题目和答案,比如引用[1]中的uname -a命令,引用[2]中的netstat -a选项,引用[3]中的ar命令,引用[4]中的mv和chmod命令。需要正确引用这些内容,并在答案末尾添加引用标识。 另外,用户希望回答结构清晰,帮助逐步解决问题,所以每个练习题应该单独列出,答案和解析分开,可能使用编号或分点的方式。同时,确保所有数学表达式或代码块使用正确的格式,比如行内公式用$...$,独立公式用$$...$$,但在这个问题中可能涉及数学公式较少,主要是命令和代码示例,需要正确使用代码块的格式。 在生成相关问题部分,应该围绕用户可能感兴趣的扩展内容,比如如何学习更多命令、推荐练习平台、如何理解权限管理等。确保问题与用户的学习路径相关,并且能够引导他们进一步探索。 最后,需要检查所有引用是否正确对应,答案是否准确,避免错误。例如,查看系统基本信息用uname -a是否正确,netstat的选项是否正确,ar命令的作用是否描述准确,以及文件移动和权限设置的命令是否正确。 总结步骤: 1. 结构化回答,分章节或知识点。 2. 列出每个练习题,答案和解析,正确引用来源。 3. 推荐教程资源。 4. 生成相关问题,促进深入学习。</think>### Linux基础知识学习路径与练习题解析 #### 一、基础命令练习题(解析) 1. **查看系统基本信息的命令** ```bash $ uname -a ``` - 解析:`uname -a`显示系统内核版本、主机名、处理器类型等完整信息[^1]。 2. **列出所有端口的netstat命令** ```bash $ netstat -a ``` - 解析:`-a`选项显示所有监听和非监听的套接字[^2]。 3. **打包静态库文件的工具** ```bash $ ar rcs libexample.a *.o ``` - 解析:`ar`命令用于将目标文件(.o)打包为静态库(.a)[^3]。 4. **移动文件并设置权限** ```bash $ mv /tmp/etc/man.conf /tmp/test.conf $ chmod a+rwx /tmp/test.conf ``` - 解析:`mv`命令移动文件,`chmod a+rwx`赋予所有人读写执行权限[^4]。 --- #### 二、推荐学习资源 1. **官方文档** - [GNU Coreutils手册](https://www.gnu.org/software/coreutils/manual/):覆盖基础命令的详细说明。 2. **在线教程** - [Linux Journey](https://linuxjourney.com/):交互式学习路径,适合新手。 3. **书籍推荐** - 《鸟哥的Linux私房菜》:经典教材,涵盖系统管理与Shell脚本。 --- #### 三、进阶练习建议 1. **文件操作** - 练习重定向、管道符(`>`、`|`)和查找命令(`find`)。 2. **权限管理** - 尝试通过`chown`修改文件所有者,结合ACL实现精细控制。 3. **进程管理** - 使用`ps`、`top`和`kill`命令观察和控制进程。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值