ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux1

2020-03-18 14:04:41  阅读:283  来源: 互联网

标签:Linux1 文件 安装 etc yum rpm 目录


0.安装

iso镜像文件里面有安装信息,第一次装的时候,点击使用ISO镜像文件,就把东西安装到虚拟机目录中去了,安装结束后,这个ISO镜像文件就不需要了。只有下次挂载的时候用得着。

0.快捷键

按住ctrl+?清空当前输入

0.克隆

链接克隆唯一区别就是源虚拟机要是没了,它也没了。其余的和完整克隆都一样。更改互不影响。

0.分区和硬盘

所有的硬件都是设备,分区也是设备,设备都有设备文件名,分区都有设备文件名。注意逻辑分区只能从sda5(文件名)开始。插入u盘后,Linux会给它创建文件名,如/dev/sdb

 

1.pwd

可立刻得知您目前所在的工作目录的绝对路径名称

2.id

用于显示用户的ID,初始组id,以及所属的所有的组的ID。

3.shutdown

该命令较为安全,关机之前会保存数据,除此之外还有,halt,poweroff,init 0

shutdown -h now:现在关机

shutdown -r now:现在重启

shutdown -h 20:20:到20:20关机

shutdown -c:取消之前的关机命令

3.reboot

重启或者init 6

系统运行级别:

0️⃣:关机

1️⃣:单用户:以root身份登录进去,只启动核心服务,无网络(就是停掉了network服务而已),类似于安全模式,主要用于修复

2️⃣:不完全多用户,不完全命令行,无网络,不含NFS服务(2个Linux系统用于共享文件的服务))(进不去,自动跳到3)

3️⃣:完全多用户,完全命令行,无网络

4️⃣:未分配(进不去,自动跳到3)

5️⃣:图形界面

6️⃣:重启

能通过:cat /etc/inittab来查看(centos7看不到了)

3.runlevel

查看当前运行级别

N  3 :表示前一个级别是none,当前是3,一般进入Linux就是3

3.logout

登录退出

3.ls

注意:目录一般显示为蓝色;文件一般显示为白色;连接一般显示为绿色;红色:压缩文件

以某种方式显示对应目录下的文件 ,隐藏文件就是在文件名前面加了个点。

注意:-d表示显示目录本身的属性,而不是它的内容

ls 目录:列出该目录下的内容

ll 文件:列出文件属性

ll -d 目录:列出该目录的属性

ll -d:默认在本目录中,所以列出本目录的属性

解释:

d是目录文件(-:二进制文件,l:软链接),后面是权限:rwx(owner:可读可写可执行)r-x(group:可读不可写可执行)r-x(other:可读不可写可执行) 2:硬链接数(对于普通文件)或里面的子目录个数(对于目录,里面默认有.和..,然后是其他子目录,所以实际子目录要减去2)。第一栏root:文件拥有者;第二栏:group名字(文件所属的组:组内的成员访问文件时,先看组的权限,再访问);大小;最后一次修改时间;名字

4.mkdir aaa

在当前目录下创建aaa目录

mkdir -p ./a/b/c或mkdir -p a/b/c:在当前目录创建a,在a目录创建b,在b目录创建c(深度创建)

可以创建多个目录:mkdir {b,c}dir :在当前目录下创建bdir,cdir目录

6.cat

cat f1.txt,查看f1.txt文件的内容。 cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。 cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。 tac 反向显示  7.less,more,head,tail more:分页显示,enter一行一行滑,空格或f一页一页滑,q退出 less:除了more的功能,1.可以向上翻页,向上方向键,2.输入/asd,可以进行关键字搜索,按住n可以往下继续找 head显示前面的内容:head -3 a :显示a的前三行,不加-3默认显示前10行 tail显示后面的:tail -3 a:显示a的后三行。 8.rm rm -rf 东西:删掉任意东西,包括目录和文件 rm -rf * :删除当期目录所有文件 9.date date -s(set) 01:01:01 #暂时设置具体时间 date -s 2020-03-08 #暂时更改日期,但同时将时间更新到00:00:00了 date -s "2007-08-03 14:15:00"  :暂时同时修改时间和日期,注意空格。 hwclock --set --date '2017-08-16 17:17:00' :这是修改硬件的时间 也就是永久性修改Linux的时间 9.cp cp 文件路径名 目录名 cp -r 目录1 目录2 cp 文件1 文件2 目录名 cp -p file dir:文件的所有属性都复制过去了,连文件修改时间 10.find

find . -name *.c :find 范围 指定名字 文件名,即将目前目录及其子目录下所有后缀是c 的文件列出来。

find /etc -name ‘a???':?匹配单个字符,如在/etc里面查找aqqq。若是/,则是全盘查找。注意加单或双引号,单或双引号有时候发挥作用,有时候不发挥作用!!

find . -iname ‘a??? ‘:iname,查找不区分大小写

find / -size +204800:linux以数据块为单位的,1个数据块0.5KB,此处查找大于204800块=102400KB=100MB的文件

find 目录 -name 文件名 | less : 以分页形式显示

 

  find /etc -name init* -a -type f:-a是并且的作用,此时:在/etc下查找名字开头尾init且类型是文件的东西出来

 

 find /etc -name init -exec(对前面的结果执行后面的命令) ls -l {}(固定的) \;(固定的)最终对所有的init文件执行ls -l操作ls。注意分号。  

find . -inum 3123:查找i结点号=3123的文件

11.gcc

编译链接C语言

五个步骤: 

预处理:      gcc -E Test.c -o Test.i
编译:          gcc -S Test.i -o Test.s
汇编:          gcc -c Test.s -o Test.o
链接生成可执行文件: gcc Test.o -o Test

运行它:      ./Test

12.tee

将前面的内容存为文件

ping google.com | tee output.txt : 将ping输出到控制台的信息保存到output.txt中

13.cd

.:当前目录,./也表示当前目录

cd ~:进入家目录=cd,也就是进入到了/下的root目录

cd ..进入上一级目录

cd -:回到上一次路径,只能返回最近的一次

cd -P 链接文件:如果是个目录,则是正常的cd,如果是个链接文件,则cd到文件的链接处

14.touch

touch a:若a存在,则刷新它的最近修改时间,若不存在则创造空文件a。

14.uptime

显示该Linux连续运行了多久

14.who

可以查看当前有哪些用户登录了

各栏目:用户名  tty(本地登录,如虚拟机登录)或pts(远程登录) 登录时间(登录ip)

 14.w

显示更为详细的用户信息

IDLE:当前用户闲散(没操作,有多久没动了)时间,JCPU:当前用户累计使用的CPU时间,PCPU:当前命令占用的CPU时间,what:当前正在实行的操作

15.which

which找命令和其位置

所有用户都可以使用的命令存放在:/bin  /usr/bin,只有root能使用的命令存放在:/sbin  /usr/sbin

15.whereis

列出命令所在位置,以及帮助文档所在位置

16.whatis

加命令:显示命令的简短信息

17.file

file /sbin/ifconfig:会显示这个应用程序的详细信息

若有一个ELF,表示这是一个二进制可执行程序(类似于windows下的exe)

若有一个text executable:则是一个文本命令

17.umask

 touch a时,a的权限并不完全是缺省的umask规定的,还因为所有的新建的文件都不具有x可执行文件,所以要考虑2点。但是目录的初始权限完全能定好。

初始umask值:0022,0是特殊权限

 更改umask:umask 0777

查看是什么意思:umask -S

18.windows安装Apache

①以管理员身份运行cmd,因为只有管理员才可以执行install

②进入C:\aaa2222339\download\httpd-2.4.41-o111c-x64-vc15-r2\Apache24\conf,修改httpd.conf,替换为:

Define SRVROOT "C:\aaa2222339\download\httpd-2.4.41-o111c-x64-vc15-r2\Apache24"

③httpd可执行程序在bin目录下,则先进去再执行httpd,否则找不到httpd命令

注意:httpd是Apache包中提供监听的服务,又被称为web服务器的守护进程。

先:cd C:\aaa2222339\download\httpd-2.4.41-o111c-x64-vc15-r2\Apache24\bin>

再:httpd -k install -n apache2.4

④启动服务

net start Apache2.4

⑤浏览器访问:192.168.10.1

⑥在C:\aaa2222339\download\httpd-2.4.41-o111c-x64-vc15-r2\Apache24\conf\extra中的httpd-vhosts.conf里面的DocumentRoot "${SRVROOT}/htdocs"告诉了index页面放在了htdocs目录下

18.rpm

软件包分为源码包(由C语言编写,包括脚本安装包(windows叫setup.exe,linux叫install.sh))和二进制包(编译后的,即RPM包,在windows里面叫.exe),这些包里都含有安装信息(包括出厂时的安装位置)。要用本地的ISO里面的安装文件的话先得挂载上。源码包安装位置有用户指定,一般是/usr/local/软件名,rpm安装位置是默认定好的,用户不要改,rpm的服务一般安装在/etc/rc.d/init.d/下,若启动httpd服务:/etc/rc.d/init.d/httpd start。

 

 编译安装:由自己的操作系统得将源码包进行编译,再安装

 

 Apache源码包安装:

①下载源码包.tar.gz

②再将其解压,生成解压目录

③进入解压目录,可以看到INSTALL安装说明和README使用说明

④.configure --prefix=/usr/local/apache22:自定义安装路径

⑤make:将源码进行编译,若报错则,执行make clean清空

⑥make install:编译安装,向安装目录写入数据

⑦根据install中的PREFIX/。。。。 start启动

⑧若出现端口被占用,则先service 那个服务 stop,再start

⑨浏览器访问192.168.10.11

Apache源码包卸载:可直接卸载安装目录:rm -rf /usr/local/apache22

 脚本安装:

①下载.tar.gz压缩包,

②解压缩并进入压缩目录

③./setup.sh:这个脚本里面包含有很多集成起来的安装命令

 

 

 二进制方式安装jdk:

①把.gz压缩包传到linux一个目录下.

②解压它

 

 

 

 ③有个包的所有者和所属组错误,更改:

 

 

 ④配置环境变量,将Java可执行文件路径添加到path中

vi /etc/profile(对所有用户生效)

加入:

 ⑤重新加载内容

source /etc/profile

⑥测试

 java -version

注意:jdk..rpm包解压后默认安装到了/usr/java/jdk1.8.0_221-amd64/(JAVA_HOME)下,一般再把其下的bin目录添加到PATH中就好了。

同理,再下载上tomcat压缩包进行安装:

 

 

 13.

依懒性:在装a的时候需要先装b,在装b的时候需要先装c 

 

 

安装和升级需要包全名,其他只用包名

rpm -ivh 包全名:安装

rpm -e 包名:卸载

rpm -q 包名:查询是否安装了这个包,是包不是包的内容。

rpm -qa:查询所有已经安装的rpm包

rpm -qi 包名:查询软件包详细信息

rpm -ql 包名:查询包中文件的位置

rpm -qlp 包名:查询包即将的安装位置(安装包里有定义)

rpm -qf 系统文件名:查询系统文件(非自己手工创建)所属的包

rpm -qRp 包名:查询未安装软件包的依赖性(得先安装这些包才行)

rpm -V 包名:查看该包中的文件有没有做过修改

显示结果说明:

 

 

 说明:httpd包中的/etc/...conf,是配置文件。有字母代表被修改了,没有字母代表没有被改过。

rpm安装mysql:

①传入包并解包

  ②先安装服务端mysql

发现如下冲突:

 

 

 在不删除依赖的情况下删掉它

 

 

 重新rpm -ivh安装

③安装客户端

 

 

④启动MySQL服务

⑤更改MySQL密码

 

 

 说明:最后一行的显示是根据安装所提示的信息而打出来的

⑥进入MySQL

 

 

⑦授权允许任意外来用户(%)以root身份通过输入密码123456可以连接到node01的MySQL中

 

19.yum

原理:先找到repo,根据repo里面的指向找到安装包旁边的repodata,从repodata进而得知安装包的位置

yum源(安装工具)放在:/etc/yum.repos.d/目录下,其中CentOS-Base.repo是网络yum源,光盘可以做yum源。

在CentOS-Base.repo中:
  [base]:容器(软件池)名称,一定写到[]中
  name:容器说明,类似于注释
  mirrorlist:镜像站点
  baseurl:真正的yum源服务器的地址
  enabled:enabled=1:容器生效;=0,不生效。不写就是生效

yum list:查询所有可用软件包列表

yum search 关键字:搜索服务器上所有和关键字相关的包

yum -y(自动) install 包名:安装包,比如包名可以是gcc(C语言编译器,将C进行编译)

yum -y update 包名:升级,若无包名,则升级所有包,升级所有的话必须再配置一点

yum -y remove 包名:卸载该包以及依赖该包的所有包

yum install man man-pages:安装man这个程序,以及一个帮助手册

yum grouplist:查询所有软件组,一个组里面可能有很多包

yum groupremove 软件组名

光盘yum源(CentOS-Media.repo):

①先挂载(光盘有自己的文件系统,而Linux也有自己的文件系统,要使用光盘中的文件,需要将光盘的文件系统挂载到Linux的某个目录下就行,/dev/sr0代表光盘,但是是虚的,不能直接访问,就像2个独立的岛屿)

②cd /etc/yum.repos.d/把除了光盘以外的所有yum源关闭,如果不关闭,则这些repo都会生效。是通过repo才能找到安装包(在里面写enabled=0或删除或改名):

  mv ....repo ....bak

③修改光盘yum源

baseurl=file:///mnt/my(光盘挂载点地址)

注释其他多余地址: # file:///...

enabled=1

开启服务:/etc/rc.d/init.d/服务 start

启动服务的简化命令(服务管理命令):service httpd start(默认去rpm默认安装位置下去搜索httpd服务,然后启动它,而他找不到源码包安装,因为是自己随意指定的)

本地yum源安装MySQL:

①采用光盘yum源

(②yum clean all:清楚缓存)

(③yum repolist:查看有多少安装包)

④yum list | grep mysql:先找到安装包

⑤yum install MySQL安装包

制作基于WEB服务器的yum源:

①安装httpd

②启动httpd:service httpd start

③由于/var/www/htm/是httpd的默认主目录,则在此处创建软链接,指向centos镜像文件

④浏览器输入http://node01/centos/,可访问

⑤在yum.repos.d目录中加入网站的repo库,写了repo之后它会自动检测到:

 

 

 

 

 

⑥看看有没有加载上 

yum clean all 

yum repolist

将自己的写好的rpm包放到web服务器上:

①新建目录

mkdir /var/www/html/rpm

②拷贝rpm包过去

cp aaa.rpm /var/www/html/rpm/

③为了使得yum能找到web服务器上对应的包,就得创建repo.data

cd /var/www/html/rpm:跑到这个目录下

createrepo ./:如果没有这个命令,则yum -y install createrepo,再createrepo ./

④确保yum在/etc/yum.repo.d/中所寻找的.repo中baseurl会指向aaa.rpm所在的目录(/var/www/html/rpm)

19.gzip

只能压缩文件,不能压缩目录;压缩过后原文件消失

gzip filename : 压缩成filename.gz

解压缩:gunzip filename.gz

20.tar

可打包压缩目录

tar -cvf dir.tar a b c:将a b c一起打包为dir.tar,之后可以再gzip 生成

设计到zip的就用tar -z....

.tar.gz == tar -zcvf dir.tar.gz dir(常用)

tar -zxvf aaa.tar.gz -C dir:常用解压,解压到./dir目录中

tar -xvf a.tar -C dir

 

 

 19.wget

从网站上下载文件:

wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

19.zip

可压缩目录和文件

zip file.zip(结束后的压缩包) file 

zip -r(目录) dir.zip dir

unzip 解压缩

19.bzip2

压缩文件,加-k选项可以压缩并保留原文件

bzip2 -k aaa; 生成aaa.bz2

tar -cjf aaa.tar.bz2 aaa:将aaa压缩为aaa.tar.bz2(常用)

bunzip2 -k(保留原压缩文件) aaa.bz2 :将aaa.bz2解压

tar -xjf aaa.tar.bz2:解压它

19.du

(注意ll只能统计目录下的文件名占了多少空间)

文件大小用ll统计,目录大小用du -sh 

 

 

19.ACL

对于角色太多,如何分配对文件的权限,提出了ACL。用于单独给用户或者组分配对某个文件的权限。

①临时开启ACL权限

  ②永久开启ACL权限(一般都支持ACL)

再重启系统或者重新挂载文件系统:mount -o remount /

④设定ACL权限

 

例子:

mkdir t:先建立一个目录

useradd u1:新增2个用户

useradd u2;

groupadd tg:创建一个组

gpasswd -a u2 tg:将u2放到tg里面;

chown u1:tg /t:更改/t所属用户和所属组

chmod 770 /t;

useradd u3:新用户

setfacl -m(添加ACL) u(给用户设定):u3(用户名):rx /t:此时给u3单独分配了权限

利用ll可以查看该目录,发现有+,说明添加了acl

getfacl /t:查看t目录的具体权限

④给组添加ACL权限

 

 ⑤最大有效权限

getfacl可以查看到

用来管理组和acl的,管不了所有者

 

 

 

setfacl -m m(设定mask):rx /t/;

 ⑥删除acl权限

 

 

 ⑦递归ACL

setfacl -m u:u3:rx -R /t/:给目录t及它的所有子文件设定acl权限,对象是目录

⑧默认acl

只针对新来的文件

 

补充若加-R,则对子文件也加入了默认acl权限。对象也是目录。

⑨SetUid

用户在执行文件时,可以获得文件所有者的身份

ll /usr/bin/passwd:可以发现它有s(SetUID)权限,所以普通用户执行passwd修改密码时,就能有root权限

passwd 123:先判断用户对passwd命令有执行x权限,然后普通用户先化身成root,接着shadow文件看它是root,就允许它被改动了

 

cat /etc/shadow:cat命令没有转换身份,所有shadow看出是普通用户,拒绝执行

 ⑩设定SetUID

具体原理:先查看文件的u有没有x权限,若无,则不行,若有,则可以设定s(把x变为s)

chmod 4755 abc:4代表100,给abc文件设定SetUID权限

chmod 755 abc:可以取消之前的SetUID的设定

chmod u+s abc:给添加SetUID权限

chmod u-s abc:取消

 

⑩SetGID

原理:在locate的时候,先判断普通用户有没有x权限,若有,因为locate有s,则先把普通用户加入到locate所属于的slocate组,然后去操作mlocate.db,由于mlocate.db所属于的组是slocate且有r权限,因此进去查找了

 

如:

目录的r权限:能ls;x权限:能cd;w权限:能在目录里面新建,删除,修改,移动 

⑩Sticky BIT

黏着位,只针对目录

 

 例如:tmp目录有黏着位

 

18.chattr权限

i属性能锁整个文件,能管住root,a属性能锁文件数据,只能echo追加数据

 

 

普通的ll看不见这个权限,需要:

 

 e表示此文件在ext文件系统 

 19.sudo权限

比suid还牛,执行命令时被视为root。普通用户在用sudo时,必须在/etc/sudoers里面有定义才行。

 

 操作:

①visudo:实际上是修改/etc/sudoers文件, 为了给某个用户添加能使用的命令。==vi /etc/sudoers

编辑:

u1  ALL=/sbin/shutdown -r now:要写出路径的全名。授权u1用户可以在本服务器所控制的所有IP(此处只有自己主机)使用/sbin/shutdown -r now重启服务器

u1  本机ip=/usr/bin/vi:此时u1执行vi时被视为root,很危险

②执行命令:

19.mount

Linux所有可以看到的数据,都是由某个分区,u盘等挂载过来的。

查看当前挂载了哪些分区

mount /dev/sr0  /mnt:将一个文件系统挂载到了Linux文件系统,以后就能去mnt目录下使用外设的数据了

 

分区是开机就开始挂载了,而u盘,光盘,硬盘不是自动挂载,可以根据/etc/fstab 

umount /dev/sr0(或/mnt/cdrom/,2者一一对应,随便哪个都行):卸载掉,分离开

-o选项:

文件系统理解为分区。

mount -o remount,noexec /home:重新挂载并使得/home分区下的所有文件不可执行

mount -o remount,exec /home:可执行

挂载U盘:

启动usb服务:

 

 将鼠标点到Linux系统里面,再插入U盘

fdisk -l:先找到哪个是u盘的文件名

mount -t vfat(手工指定文件系统) /dev/sdb1 /mnt/usb/:挂载就可以了,Linux当中把fat16分区识别为fat,fat32识别为vfat,由于U盘文件系统是fat32,则用vfat。但是Linux默认不支持NTFS系统,因为Linux内核只有一些基本的驱动,没有NTFS的驱动。而Windows没有驱动,更加需要一个一个手工安装。

umount /mnt/sdb1:卸载后再拔掉U盘

若想支持NTFS系统:

①下载NTFS-3G插件,并传到LINUX里面

 

②安装NTFS-3G

 

 ③使用

 

20.fdisk

手动分区

由于现在的硬盘都已经分配完毕,所以点击虚拟机设置添加新硬盘进行划分分区

fdisk -l:查看系统中有多少可以被识别的硬盘,光盘,U盘。

 

说明: 第一段是sda硬盘,255个磁头,63个扇区,2610个柱面,下面是对它的分区介绍,被分为5个:sda1,....sda5。sda1从第1(start)个柱面到第26(end)个柱面。Part..表示划分完第一个分区还有剩余的空间。 第二段是没有分区的新硬盘。

fdisk /dev/sdb:开始进行分区。d:删除一个分区。n:新建分区。p:显示分区列表。q:不保存退出。w:保存退出。

分一个主分区:

 

其余的分给扩展分区:

 

 划分一个逻辑分区:

 

再输入w保存退出。

输入partprobe重新读取分区表,防止出现重启的警告

fdisk -l:查看一下新分区的情况

mkfs -t ext4 /dev/sdb1:将分区/dev/sdb1格式化(划分为一块块的磁盘块和管理数据)为ext4文件系统。不过扩展分区sdb2不能格式化,它只能包含逻辑分区。

mkfs -t ext4 /dev/sdb5:格式化sdb5

建立挂载点:

 

mkdir /disk1

mkdir /disk5

mount /dev/sdb1 /disk1

mount /dev/sdb5 /disk5

自动挂载:

修改/etc/fstab文件:

 

 

 

 然后输入mount -a:先挂载,如果错了还能及时修改文件。

万一文件错了:

重启时先输入root密码。

再输入mount -o remount,rw /:重新挂载,同时指定为可写,否则无法直接修改/etc/fstab文件

再修改vi /etc/fstab文件。

重启

19.shell

 

 shell执行命令时就能编译了,不需要把编译分开进行。且可以直接执行Linux命令。

Linux支持的shell在/etc/shells当中有定义,不同shell之间可以切换,输入shell名字即可。

第一个脚本(注意第一行必须写):

 

 执行脚本:

 

注意Linux回车符是$,Windows回车符是^M$,所以Linux不知道windows在说啥。需要dos2unix aaa.sh

19.history

补充:.bash_history正常情况下只有在用户登录退出才会写入内存保存的命令,但是如果加了-w就会立即写入,-c会清空内存和文件的命令

 

 重新登录使配置文件生效

历史命令的调用:

 

19.命令别名

 

 执行顺序:

 

注意:Bash内部命令是shell自带的,没有相关的可执行文件,如cd。别名优先于原始命令。

删除别名:

unalias 别名;

要想要别名永久失效:

对于root用户:vi /root/.bashrc

对于u1:v1 /home/u1/,bashrc

19.常用快捷键

 

说明:不需要大写字母,蓝色为常用的 

19.echo 

echo "hello" : 打印hello

选项-e:支持特殊符号

 

echo -e "ab\bc":去掉b,输出ac  

echo -e “a\tb”:输出a  b

echo -e "\x61":输出ASCII码十六进制为61的字符

echo $$:$可以取一个变量,在这儿取$的值,结果是打印当前进程id

echo $path

但是正规写法是:echo ${变量名}

echo ${a}haha:打印变量a的值+haha字符串

20.输入输出

 

重定向:

 

 说明:这里的命令是有输出的命令。

例子:ls > a:把ls的结果输出到a文件中。

 

说明:前4种都是不管正确与错误,结果的信息都写到文件当中。ls &> /dev/null:是不显示消息的意思。ls >> a 2>> b:如果正确,则写到a文件中,如果错误,则写到b文件中

 

 

说明:最后输入Ctrl+d,显示结果,8行,8个单词(按空格算),45个字符

 

 

说明:以hello做为一段内容的开始与结束,统计中间的内容

zzz

20.多命令

 

 

 

说明:先输出date的内容,接着从/dev/zero处向/root/testfile处写数据,写100000(count)个数据块,每个数据块1000B,即100MB(这里k=1000)。最后date,可以算出复制数据花费的时间。

 

 

 说明:如果命令成功执行,则打印yes,如果不成功执行,打印no

20.管道符

前一个命令必须正确

ll -a /etc/ | more:把前面的操作结果作为more的操作对象,即分屏显示内容。

 

 说明:前一个命令是显示当前所有的网络连接

20.通配符

 

rm -rf *:删除当前目录所有文件

20.特殊符号

 

 

 说明,如果有空格,需要用单或双引号引起来。单引号中所有的符号都是字符,不发挥作用,而双引号里面的特殊符号会发挥作用。

反引号里面括的都是系统命令,先执行``里面的,abc=$(date)和它效果一样:

 

 

 

 

 

 

 

 说明:\可以把它后面的特殊符号的作用取消

20.变量

分类:

 

 用户自定义变量:

定义它不能以数字开头,默认类型是字符串类型,要用数值必须指定。

 高级语言都是强类型语言,编译型的语言都是弱类型语言,不需要定义

 

叠加:

常量:

 

也不能unset 

 

变量查看:

set:查看所有变量,包括环境变量

变量删除: 

unset 变量名

环境变量:

 

 设置:

export name=jj,也相当于设置了全局变量,这样哪个脚本都能访问。

查看:

env:只看环境变量

删除:

unset 变量名

常见环境变量:

path

 

 输入命令ls时,系统去path定义的路径里面找有没有名字为ls的可执行文件,若有,则执行。若自己写了个脚本,可以将路径放到PATH里面,这样就能直接输入脚本名字执行了

PS1

 

 

 位置参数变量:

 

 使用:

定义一个脚本:

 

执行:

 

$*和$@的区别:

 

 

 预定义变量:

 

 

说明:&将命令放到后台执行时,就会产生相应进程。

read

接受键盘输入:

 

例子:

 说明:-s使得在输入时不会显示出输入的是什么,比如输入passwd时,不会显示什么。

标签:Linux1,文件,安装,etc,yum,rpm,目录
来源: https://www.cnblogs.com/pjishu/p/12517002.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有