Linux的简单命令----我的学习小总结

、Linux系统了解,以及Linux在本次课程中的用处,让学生能有一个动力进行学习,不要什么都不了解对于未来很迷茫

、Linux内容整个框架了解,安装Linux系统

、首先讲解系统内文件结构,目录结构,了解到我对哪个文件以及目录修改有什么结果。

1、文件结构

bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
dev 设备文件 /dev/sda,/dev/tty1,dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/random
root root用户的HOME
home 存储普通用户家目录 ,每创建一个普通用户,默认在home下建立一个以用户名为名的目录
lost+found 孤儿文件,用于存放系统不正常关机后形成的一些无家可归的文件
proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态,只存在于内存中,大小为0,du -sh /proc
sys 伪文件系统(硬件信息,内核参数,进程在内存中的信息),是一种虚拟的基于内存的文件系统,
usr 系统文件(应用程序目录),相当于C:\Windows
boot 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)
etc 配置文件(系统相关如网络/etc/sysconfig/network,应用相关配置文件...)
lib 库文件,存放应用程序所需要的共享库,类似于windows里的.dll文件
lib64 库文件Glibc
tmp 临时文件(主要是程序产生的临时数据) 
var 存放的是一些变化文件,比如数据库,日志,邮件....
临时文件: /var/tmp (主要是程序产生的临时文件)

  1. 文件区分

“-”普通文件

“d” 目录

“L”链接文件

“b”设备文件

“c”字符设备

  • 开始学习初级常用命令

1、基于文件的常用命令

mv/rm/cp/find/touch/file/ln

LN命令是为文件创建链接的命令

(1)、硬连接:创建的链接所指向的方向是数据存储的真实位置

ln 被链接参数 创建的链接名字

(2)、软链接:创建的链接所指向的方向是索引所在的位置

ln –s  被链接参数  创建的链接名字

基于命令的命令:which、alias

2、基于目录的常用命令

Mkdir/ls/ll/du/cd/pwd

3、 基于文件内容的常用命令

Cat | more head tail less/vim/wc/grep

  • 高级命令
  1. 打包压缩

Gzip 参数       压缩

Bzip2 -d 参数    解压

Tar   一般和gzip以及bzip2一起使用

-c 打包

-x解包

 -v 输出详细信息

-f归档文件

-z打包后用gzip压缩或解压

-j 打包后用 bzip2解压或压缩

-C解包到指定文件夹

  1. 软件包安装

(1)、使用RPM工具管理RPM包
需要手动解决包的依赖关系

[root@dq ~]# rpm -ivh dos2unix-3.1-37.el6.x86_64.rpm 套件名
-i 安装
-v 显示过程
-h 显示百分比

==查询
(从本地的rpm数据库,rpm数据库中记录的是已经安装过的包的信息,需要使用包的全名ntfs-3g)
[root@dq ~]# rpm -q ntfs-3g //查询指定包是否安装
[root@dq ~]# rpm -qa |grep ntfs
[root@dq ~]# rpm -qf /usr/bin/ntfs-3g //查询该文件属于哪个rpm包
[root@dq ~]# rpm -qc ntfs-3g //查询某个包安装的配置文件
==卸载
[root@dq ~]# rpm -e ntfs-3g
[root@dq ~]# rpm -e ntfs-3g --nodeps
额外选项: 
--nodeps //忽略依赖关系

 

(2).使用YUM工具管理RPM包
与rpm工具最大的区别:yum工具可以自动解决包的依赖关系
==========================================================
[root@dq ~]# rpm -q yum
yum-3.2.29-30.el6.noarch
[root@dq ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
配置YUM源指向
本地yum源
第一种情况:使用系统光盘或者镜像作为YUM源安装rpm软件
光盘或者是镜像中只提供了最基础的包,zabbix、nginx等常用的包都没有,有mysql数据库的包,但是版本过低,工作中会用到其他的一些源,详见RPM实战
1. 指定YUM源
 [root@dq ~]# cd /etc/yum.repos.d/
 [root@dq yum.repos.d]# rm -rf *
 [root@dq yum.repos.d]# vim centos.repo

创建仓库
[Server] //仓库ID
name=Server //仓库名
baseurl=file:///mnt/ //仓库位置,镜像或者是光盘挂载的绝对路径
gpgcheck=0 //不检查软件包的签名

2. 检查目前可用的仓库
[root@jyj ~]# yum clean all //清空缓存及其他文件
[root@jyj ~]# rm -rf /var/cache/yum;sync //手动删除缓存文件
[root@jyj ~]# yum makecache //重建缓存
[root@jyj ~]# yum repolist //查询可用的仓库

3. 查询
已安装的软件包从本地的RPM数据库中查询,可获得的包从YUM源数据库中查询
[root@dq yum.repos.d]# yum list httpd vsftpd mysql-server //查询单个软件包安装情况
Installed Packages
httpd.x86_64 2.2.15-26.el6 @aaa
vsftpd.x86_64 2.2.2-11.el6 @Server
Available Packages
mysql-server.x86_64 5.1.66-2.el6_3 Server

[root@dq ~]# yum info vsftpd //查询包的信息
[root@dq ~]# yum search chinese //查询包名和描述中带有chinese的包

4. 安装
[root@dq ~]# yum install mysql-server
[root@dq ~]# yum -y install mysql-server
[root@dq ~]# yum -y install mysql-server "httpd*" vsftpd
[root@dq ~]# yum -y reinstall mysql-server //重新安装
[root@dq ~]# yum -y update mysql
[root@dq ~]# yum -y update //升级所有软件包

5. 卸载
[root@dq ~]# yum -y remove mysql-server vsftpd httpd
[root@dq ~]# yum history
[root@dq ~]# yum history undo 8

6. 查询某个系统中没有的命令由哪个rpm包提供
示例1:
[root@dq ~]# yum -y remove "http*"
[root@dq ~]# htpasswd //没有找到该命令
bash: htpasswd: command not found
[root@dq ~]# yum provides */htpasswd
httpd-tools-2.2.15-26.el6.x86_64 : Tools for use with the
: Apache HTTP Server
Repo : Server
Matched from:
Filename : /usr/bin/htpasswd
[root@dq ~]# yum -y install httpd-tools-2.2.15-26.el6.x86_64 

(3)、源码包的安装

  • 权限管理

ACL筛选特殊的对象,进行权限更改

文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件
文件权限管理之: UGO设置基本权限(r、w、x) 

权限对象:
属主: u
属组: g
其他人: o

权限类型:
读:r 4
写:w 2
执行: x 1

===设置权限
1. 更改文件的属主、属组
=chown:
[root@dq ~]# chown alice.hr file1 //改属主、属组
[root@dq ~]# chown alice file1 //只改属主
[root@dq ~]# chown .hr file1 //只改属组
[root@dq ~]# chown -R alice.hr dir1
=chgrp:
[root@dq ~]# chgrp it file1 //改文件属组
[root@dq ~]# chgrp -R it dir1 //改文件属组
2. 更改权限
=a. 使用符号
对象 赋值符 权限类型
u + r
chmod g - w file1
o = x
a
[root@dq ~]# chmod u+x file1 //属主增加执行
[root@dq ~]# chmod a=rwx file1 //所有人等于读写执行
[root@dq ~]# chmod a=- file1 //所有人没有权限
[root@dq ~]# chmod ug=rw,o=r file1 //属主属组等于读写,其他人只读
[root@dq ~]# ll file1 //以长模式方式查看文件权限
-rw-rw-r-- 1 alice it 17 10-25 16:45 file1 //显示的结果
=b. 使用数字
[root@dq ~]# chmod 644 file1
[root@dq ~]# ll file1
-rw-r--r-- 1 alice it 17 10-25 16:45 file1
=========================================================================================
rwX的用法
使用-R选项递归修改目录和目录下已存在的文件的权限的时候可以使用rwX,这个X意味着目录本身和目录下的目录会给x权限,但是目录下的文件不会给x权限
重要: r、w、x权限对文件和目录的意义

对于文件:
r----------读 cat head tail less more (root用户不受r权限的限制)
w----------写 vim > >> (root用户不受w权限的限制)
x----------执行 ./ 绝对路径 普通执行(rx) 管理员(x)
对于目录:
r----------ls r 只能读文件名 r-x 文件详细信息
w----------touch rm -wx 创建文件 rwx 删除所有文件
x----------cd

  •  进程管理
  1. 关于进程
  2. 查看进程
  3. 进程更改,进程信号体现
  4. 进程优先级
  • 用户管理

对用户的增删改查,权限管理,以及用户信息查看

  • 磁盘管理
  1. 磁盘分区
  2. 逻辑卷技术
  • 文件系统

     1、 Inodes (index node)  索引节点

包含:元数据metedate,指针 描述数据所在位置

  Block 数据块

            最小数据存储单元

2、ls –li  会显示出我们文件的索引号

一个分区一个单独的索引号

不同分区中可以有相同的索引号

  1. 复制一个文件以后,文件的索引会发生改变
  2. 当剪切一个文件的时候,如果剪切到同一分区内索引不会发生改变;当剪切到不同分区的时候,索引会发生改变
  3. 删除一个文件的时候:索引会被释放掉,显示free,表示可被使用;

Data block 也会显示free可再次被使用;但是文件并不是被删除掉,只有再次存入数据的时候被覆盖掉

Shell脚本

  1. 先进行基本命令学习

BASH SHELL1
1. shell特性
2. shell变量
3. shell条件测试
4. shell数值运算
shell? 命令解释器
shell命令 cp ls date
Linux支持的shell
cat /etc/shell

管道 | tee
ip addr |grep 'inet ' |grep eth0
ip addr |grep 'inet ' |tee test |grep eth0 //覆盖
ip addr |grep 'inet ' |tee -a test |grep eth0 //-a表示追加

df |grep '/$'
df |tee df.txt |grep '/$'


8. 命令排序
&& || 具备逻辑判断

Commmond1&&commond2 当命令1执行成功后,再执行命令2
./configure && make && make install (命令返回值 echo $?)
mkdir /var/111/222/333 && echo ok
mkdir -p /var/111/222/333 && echo ok

Commond1 || commond2 当命令1执行失败后再次执行命令2
ls /home/111/222/333/444 || mkdir -p /home/111/222/333/444
[ -d /home/111/222/333/444 ] || mkdir -p /home/111/222/333/444
============================================================
注意:
command & 后台执行
command &>/dev/null 混合重定向(标准输出1,错误输出2)
command > file1 2>&1 混合输出重定向
command1 && command2 命令排序,逻辑判断
============================================================
9. shell通配符 表示的不是本意
* 匹配任意多个字符 ls in* rm -rf * rm -rf *.pdf
? 匹配任意一个字符 touch love loove live; ll l?ve
[] 匹配括号中任意一个字符 [abc] [a-z] [0-9] [a-zA-Z0-9] ll l[io]ve
() 在子shell中执行(umask 000; touch file10)
{}集合 touch file{1..9}
mkdir /home/{111,222} mkdir -p /home/{333/{aaa,bbb},444}
cp -v /etc/hosts{,.bak}

创建文件的几种方法:
1、[root@localhost ~]# touch file1
2、[root@localhost ~]# vim file2
3、[root@localhost ~]# cat > file3
4、[root@localhost ~]# >file4


Shell基础

1、shell脚本的写法
脚本的名字: .sh为结尾
作用:使用对应的后缀名,为了不给他人造成麻烦
脚本内容第一行:#!/bin/bash
作用:声明命令解释器,如果当前环境和脚本的环境一致,可以不用声明
脚本内容的第二行:说明脚本的内容,以及版本信息
2、shell脚本的执行方法
[root@dq shell]# cat 01.sh
#!/bin/bash
#check our system
#time
date
#free space
df -Th
#memory
free -m

执行脚本:
# source 01.sh 不需要执行权限 在当前shell中执行
# . ./01.sh 不需要执行权限 在当前shell中执行
# bash 01.sh 不需要执行权限 在子shell中执行(# sh 01.sh)
# ./01.sh 需要执行权限 在子shell中执行
# /root/01.sh 需要执行权限 在子shell中执行
chmod u+x 01.sh
注意:最后两种方法执行脚本时,对于管理员来说只需要由x权限,但是对于普通用户来说需要 r 和 x 的权限
调试脚本:
# sh -n 02.sh 仅调试 syntax error

shell 变量

什么是shell变量?
变量的类型
变量的定义方式
变量的运算
变量"内容"的删除和替换
shell 变量? 用一个特定的字符串去表示不固定的内容

变量的类型:
1. 自定义变量
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
2. 环境变量
定义环境变量: 方法一 export back_dir2=/home/backup
方法二 export back_dir1 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效
=======================================================

  1. For循环。If判断

 流控、循环

if

分为三个阶段

(1)、if [] ; then

fi

(2)、if []; then

 else

 fi

(3)、if  [];then

 elif

 else

 fi

case 
for  

for 变量 in  取值列表

do

done

while
while (条件)

do

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值