Linux的安装与使用

虚拟机安装和使用

下载地址:https://www.vmware.com/cn.html

下载CentOs:https://www.centos.org/download/

 启动虚拟机-静态IP配置

1,修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33


2,修改文件内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.23.129
NETMASK=255.255.255.0
GATEWAY=192.168.23.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2c2371f1-ef29-4514-a568-c4904bd11c82
DEVICE=ens33
ONBOOT=true

 

回车 - 按键i 进行修改配置 - 修改完配置按Esc推出编辑--:wq!回车保存成功

systemctl restart network  重启网络

ifconfig   查看当前ip

设置访问外网

SecureCRT

 SecureCRT安装和操作

 

 

 CentOS文件和目录

时间同步设置

克隆与快照

对系统进行备份

克隆方式的特点:占用空间大,原系统不存在,克隆体还能用

快照方式的特点:占用空间小,原系统不存在,快照就不能用了

还原操作:

系统与设置命令

Linux命令

账号管理

创建用户 :   useradd (选项)用户名

用户口令:    passwd (选项)用户名

修改用户:   usermod (选项)用户名

删除用户:   userdel   (选项)用户名

Last login: Tue Apr 16 09:37:49 2024 from 192.168.23.1
[jinli@192 ~]$ useradd aaa
-bash: /usr/sbin/useradd: 权限不够
[jinli@192 ~]$ su root
密码:
[root@192 jinli]# useradd aaa
[root@192 jinli]# su aaa
[aaa@192 jinli]$ su root
密码:
[root@192 jinli]# passwd aaa
更改用户 aaa 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@192 jinli]# su jinlin
su: user jinlin does not exist
[root@192 jinli]# su jinli
[jinli@192 ~]$ su aaa
密码:
[aaa@192 jinli]

ctrl+d退出当前用户

[aaa@192 jinli]$ clear
[aaa@192 jinli]$ su root
密码:
[root@192 jinli]# usermod
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

[root@192 jinli]# usermod -l czbk aaa
usermod: user aaa is currently used by process 61070
[root@192 jinli]# exit
[aaa@192 jinli]$ exit
[jinli@192 ~]$ 
Last login: Tue Apr 16 09:50:45 2024 from 192.168.23.1
[jinli@192 ~]$ su root
密码:
[root@192 jinli]# usermod -l czbk aaa
[root@192 jinli]# su jinli
[jinli@192 ~]$ su aaa
su: user aaa does not exist
[jinli@192 ~]$ su czbk
密码:
[czbk@192 jinli]$ 

删除用户:

Last login: Tue Apr 16 09:51:46 2024
[jinli@192 ~]$ su root
密码:
[root@192 jinli]# userdel czbk
[root@192 jinli]# su czbk
su: user czbk does not exist
[root@192 jinli]# 

[root@192 jinli]# userdel
用法:userdel [选项] 登录

选项:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    显示此帮助信息并推出
  -r, --remove                  删除主目录和邮件池
  -R, --root CHROOT_DIR         chroot 到的目录
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射

[root@192 jinli]# userdel -r -f czbk
userdel:用户“czbk”不存在
[root@192 jinli]

用户组

创建用户组: groupadd (选项)用户组名

修改用户组:groupmod(选项)用户组名

查询用户所属组 :groups 用户名

删除用户组: groupdel用户组名

Last login: Tue Apr 16 09:53:53 2024 from 192.168.23.1
[jinli@192 ~]$ groupadd kaifa
-bash: /usr/sbin/groupadd: 权限不够
[jinli@192 ~]$ su root
密码:
[root@192 jinli]# groupadd kaifa
[root@192 jinli]# groupmod
用法:groupmod [选项] 组

选项:
  -g, --gid GID                 将组 ID 改为 GID
  -h, --help                    显示此帮助信息并推出
  -n, --new-name NEW_GROUP      改名为 NEW_GROUP
  -o, --non-unique              允许使用重复的 GID
  -p, --password PASSWORD       将密码更改为(加密过的) PASSWORD
  -R, --root CHROOT_DIR         chroot 到的目录

[root@192 jinli]# groupmod -n kaifazu kaifa
[root@192 jinli]# groups jinli
jinli : jinli wheel
[root@192 jinli]# groupdel kaifazu
[root@192 jinli]# 
 管理用户组内成员

Last login: Tue Apr 16 11:02:11 2024 from 192.168.23.1
[jinli@192 ~]$ su root
密码:
[root@192 jinli]# groupadd kaifazu
[root@192 jinli]# useradd user1
[root@192 jinli]# useradd user2
[root@192 jinli]# useradd user3
[root@192 jinli]# gpasswd
用法:gpasswd [选项] 组

选项:
  -a, --add USER                向组 GROUP 中添加用户 USER
  -d, --delete USER             从组 GROUP 中添加或删除用户
  -h, --help                    显示此帮助信息并推出
  -Q, --root CHROOT_DIR         要 chroot 进的目录
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                向其成员限制访问组 GROUP
  -M, --members USER,...        设置组 GROUP 的成员列表
  -A, --administrators ADMIN,...        设置组的管理员列表
除非使用 -A 或 -M 选项,不能结合使用这些选项。
[root@192 jinli]# gpasswd -a user1 kaifazu
正在将用户“user1”加入到“kaifazu”组中
[root@192 jinli]# gpasswd -a user2 kaifazu
正在将用户“user2”加入到“kaifazu”组中
[root@192 jinli]# gpasswd -a user3 kaifazu
正在将用户“user3”加入到“kaifazu”组中
[root@192 jinli]# grep 'kaifazu' /etc/group
kaifazu:x:1002:user1,user2,user3
 日期管理

[jinli@192 ~]$ date
2024年 04月 16日 星期二 11:17:37 CST
[jinli@192 ~]$ date -d "2024-12-12 11:11:11"
2024年 12月 12日 星期四 11:11:11 CST
显示用户

[jinli@192 ~]$ logname
jinli
切换用户

 su -c ls root   : 意思是切换到root权限当中去执行ls这个命令当把ls命令执行完毕后在把用户切换回当前用户

id命令

sudo命令

[jinli@192 ~]$ sudo ls

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] jinli 的密码:
公共  模板  视频  图片  文档  下载  音乐  桌面
[jinli@192 ~]$ 

sudo -u root ls :指定用户去执行ls这个命令

进程相关命令

top命令

q:退出当前top进程

top -p (PID号):只监视当前的一条进程

ps命令

ps [options] [--help] 查看进程信息(当前正在运行的)

kill命令

kill -9 $(ps -ef | grep jinli)先把jinli用户里面所有进程全都过滤出来,然后把这些所有进程全部强制杀死

关机命令

重启命令

who命令

timedatectl命令

clear 命令

clear     清屏

目录管理

ls命令

pwd命令

pwd     或  pwd -P  查看当前所在目录

cd 命令

cd/  回到根目录

cd.. 回到上一级目录

mkdir命令

[jinli@192 ~]$ cd /
[jinli@192 /]$ cd home/jinli/桌面
[jinli@192 桌面]$ mkdir aaa
[jinli@192 桌面]$ mkdir bbb/ccc
mkdir: 无法创建目录"bbb/ccc": 没有那个文件或目录
[jinli@192 桌面]$ mkdir -p aaa/bbb

rmdir命令

  语法: rmdir [-p]文件夹名字         删除空的目录

rm命令

 touch a.txt  创建文件

[jinli@192 ~]$ cd /
[jinli@192 /]$ cd home/jinli/桌面
[jinli@192 桌面]$ mkdir aaa
[jinli@192 桌面]$ mkdir bbb/ccc
mkdir: 无法创建目录"bbb/ccc": 没有那个文件或目录
[jinli@192 桌面]$ mkdir -p aaa/bbb
[jinli@192 桌面]$ ^C
[jinli@192 桌面]$ rmdir aaa
rmdir: 删除 "aaa" 失败: 目录非空
[jinli@192 桌面]$ rmdir -p aaa/bbb
[jinli@192 桌面]$ touch a.txt
[jinli@192 桌面]$ rm a.txt
[jinli@192 桌面]$ mkdir aaa
[jinli@192 桌面]$ mkdir -p bbb/ccc
[jinli@192 桌面]$ rm aaa
rm: 无法删除"aaa": 是一个目录
[jinli@192 桌面]$ rm -r aaa
[jinli@192 桌面]$ rm -r bbb
[jinli@192 桌面]$ 

 cp 命令

mv命令

[jinli@192 ~]$ cd /
[jinli@192 /]$ cd home/jinli/桌面
[jinli@192 桌面]$ mv aaa/* ccc
[jinli@192 桌面]$ mv ccc/a.txt aaa

Linux 文件基本属性

chgrp命令

chgrp root aaa  : 把aaa所在的用户组修改为root

chgrp -v jinli aaa :把aaa文件夹的用户组改回了jinli用户组

[jinli@192 ~]$ cd/
-bash: cd/: 没有那个文件或目录
[jinli@192 ~]$ cd /
[jinli@192 /]$ cd home/jinli/桌面
[jinli@192 桌面]$ su root
密码:
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  4 jinli jinli   28 4月  16 16:43 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 jinli jinli   19 4月  16 16:56 aaa
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chgrp root aaa
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 jinli root    19 4月  16 16:56 aaa
drwxrwxr-x.  2 jinli jinli    6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chgrp -v jinli aaa
changed group of "aaa" from root to jinli
[root@192 桌面]# 
chown命令

 chown root:root bbb   :把bbb的所有者和用户组都改为root

[root@192 桌面]#  ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 jinli jinli   19 4月  16 16:56 aaa
drwxrwxr-x.  2 jinli jinli    6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chown root aaa
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 root  jinli   19 4月  16 16:56 aaa
drwxrwxr-x.  2 jinli jinli    6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chown root:root bbb
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 root  jinli   19 4月  16 16:56 aaa
drwxrwxr-x.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# cd aaa
[root@192 aaa]# ls -al
总用量 0
drwxrwxr-x. 2 root  jinli 19 4月  16 16:56 .
drwxr-xr-x. 5 jinli jinli 39 4月  17 13:47 ..
-rw-rw-r--. 1 jinli jinli  0 4月  16 16:45 a.txt
[root@192 aaa]# cd..
bash: cd..: 未找到命令...
[root@192 aaa]# cd ..
[root@192 桌面]# chown -R root:root aaa
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 root  root    19 4月  16 16:56 aaa
drwxrwxr-x.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# cd aaa
[root@192 aaa]# ls -al
总用量 0
drwxrwxr-x. 2 root  root  19 4月  16 16:56 .
drwxr-xr-x. 5 jinli jinli 39 4月  17 13:47 ..
-rw-rw-r--. 1 root  root   0 4月  16 16:45 a.txt
[root@192 aaa]# 

chmod 命令

作用:修改属主,属组,其他用户的权限

修改方式:

·数字方式   

·符号方式

数字权限

语法:chmod[参数选项]数字权限文件或目录

chmod -R 770 aaa :把aaa文件夹和文件夹里面所有的内容都进行设置,1.自己所有者可读可写可执行2.用户组可读可写可执行 3.其它用户不可读不可写不可执行

[root@192 aaa]# cd ..
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxr-x.  2 root  root    19 4月  16 16:56 aaa
drwxrwxr-x.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chmod -R 777 aaa
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxrwx.  2 root  root    19 4月  16 16:56 aaa
drwxrwxr-x.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# cd aaa
[root@192 aaa]# ls -al
总用量 0
drwxrwxrwx. 2 root  root  19 4月  16 16:56 .
drwxr-xr-x. 5 jinli jinli 39 4月  17 13:47 ..
-rwxrwxrwx. 1 root  root   0 4月  16 16:45 a.txt
[root@192 aaa]# 
符号权限

 

[root@192 桌面]# chmod -R u=rwx,g=rx,o=r bbb
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxrwx.  2 root  root    19 4月  16 16:56 aaa
drwxr-xr--.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chmod -R a=rwx bbb
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxrwx.  2 root  root    19 4月  16 16:56 aaa
drwxrwxrwx.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# chmod -R o-rwx bbb
[root@192 桌面]# ls -al
总用量 4
drwxr-xr-x.  5 jinli jinli   39 4月  17 13:47 .
drwx------. 16 jinli jinli 4096 4月  17 08:32 ..
drwxrwxrwx.  2 root  root    19 4月  16 16:56 aaa
drwxrwx---.  2 root  root     6 4月  17 13:47 bbb
drwxrwxr-x.  3 jinli jinli   17 4月  16 16:56 ccc
[root@192 桌面]# 
综合案例

[jinli@192 ~]$ cd /
[jinli@192 /]$ cd home
[jinli@192 home]$ su root
密码:
[root@192 home]# useradd java
[root@192 home]# useradd erlang
[root@192 home]# useradd golang
[root@192 home]# groupadd dev-group
[root@192 home]# gpasswd -a java dev-group
正在将用户“java”加入到“dev-group”组中
[root@192 home]# gpasswd -a erlang dev-group
正在将用户“erlang”加入到“dev-group”组中
[root@192 home]# gpasswd -a golang dev-group
正在将用户“golang”加入到“dev-group”组中
[root@192 home]# grep 'dev-group' /etc/group
dev-group:x:1009:java,erlang,golang
[root@192 home]# mkdir -p /tmp/work
[root@192 home]# cd /temp/work
bash: cd: /temp/work: 没有那个文件或目录
[root@192 home]# cd /tmp/work
[root@192 work]# cd ..
[root@192 tmp]# ls -al
总用量 1456
drwxrwxrwt. 58 root                root                  8192 4月  17 15:03 .
dr-xr-xr-x. 17 root                root                   224 4月  15 23:56 ..
-rw-r--r--.  1 root                root                  1148 4月  16 00:05 anaconda.log
drwxrwxrwt.  2 root                root                   150 4月  17 08:32 .ICE-unix
-rw-r--r--.  1 root                root                   415 4月  16 00:04 ifcfg.log
-rwx------.  1 root                root                   836 4月  15 23:57 ks-script-4mrtxz
-rw-r--r--.  1 root                root                     0 4月  16 00:04 packaging.log
-rw-r--r--.  1 root                root                     0 4月  16 00:04 program.log
-rw-r--r--.  1 root                root                     0 4月  16 00:04 sensitive-info.log
drwx------.  2 jinli               jinli                   24 4月  17 08:32 ssh-
[root@192 tmp]# chgrp -R dev-group /tmp/work
[root@192 tmp]# ls -al
总用量 1456
drwxrwxrwt. 58 root                root                  8192 4月  17 15:03 .
dr-xr-xr-x. 17 root                root                   224 4月  15 23:56 ..
-rw-r--r--.  1 root                root                  1148 4月  16 00:05 anaconda.log
drwx------.  2 jinli               jinli                   20 4月  17 08:32 .esd-1000
root_6621-1983260049
drwx------.  2 root                root                     6 4月  16 13:57 vmware-root_6623-1991713811
drwx------.  2 root                root                     6 4月  16 00:04 vmware-root_6630-960675819
drwx------.  2 root                root                     6 4月  15 17:37 vmware-root_6661-4148012718
drwxr-xr-x.  2 root                dev-group                6 4月  17 15:03 work
-r--r--r--.  1 root                root                    11 4月  17 08:32 .X0-lock
[root@192 tmp]# chmod -R 770 /tmp/work
[root@192 tmp]# su java
[java@192 tmp]$ cd work
[java@192 work]$ mkdir aaa

 文件管理

 touch命令

vi/vim编辑器

打开和新建文件

语法:vim 文件名

·如果文件已经存在,会直接打开该文件

·如果文件不存在,打开一个临时文件,在保存且退出后,就会新建一个文件

进入编辑模式

进入末行模式保存文件

文件查看

cat命令

less命令

tail 命令

head命令

 语法:head[参数选项]文件              查看文件的前一部分

 根tail命令是类似的

grep命令

[jinli@192 桌面]$ ls -al
总用量 12
drwxr-xr-x.  2 jinli jinli   51 4月  18 15:01 .
drwx------. 16 jinli jinli 4096 4月  18 14:36 ..
-rw-rw-r--.  1 jinli jinli   23 4月  17 17:19 a.txt
-rw-rw-r--.  1 jinli jinli    0 4月  18 14:38 big.txt
-rw-rw-r--.  1 jinli jinli  550 4月  18 15:01 small.txt
[jinli@192 桌面]$ cat small.txt
日照香炉生紫烟,遥看瀑布挂前川
飞流直下三千尺⒆,疑是银河落九天
西登香炉峰⑵,南见瀑布水⑶。
挂流三百丈⑷,喷壑数十里⑸。
欻如飞电来,隐若白虹起⑹。
[jinli@192 桌面]$ grep 日 small.txt
日照香炉生紫烟,遥看瀑布挂前川
[jinli@192 桌面]$ grep -n 日 small.txt
1:日照香炉生紫烟,遥看瀑布挂前川
[jinli@192 桌面]$ 

ps -ef | grep sshd   在进程中查找含有sshd的进程信息

ps -ef | grep sshd | grep -v "grep"  排除grep

vim定位行

语法: vim [文件名] +5  定位到第五行

异常处理

echo命令

[jinli@192 桌面]$ echo "下哦昂"
下哦昂
[jinli@192 桌面]$ echo "aaa" > small.txt
[jinli@192 桌面]$ cat small.txt
aaa
[jinli@192 桌面]$ echo "bbb" >> small.txt
[jinli@192 桌面]$ cat small.txt
aaa
bbb
[jinli@192 桌面]$ 
[jinli@192 桌面]$ cat a.txt &>> small.txt
[jinli@192 桌面]$ ls -al
总用量 8
drwxr-xr-x.  2 jinli jinli   38 4月  18 16:35 .
drwx------. 16 jinli jinli 4096 4月  18 15:56 ..
-rw-rw-r--.  1 jinli jinli    0 4月  18 14:38 big.txt
-rw-rw-r--.  1 jinli jinli   48 4月  18 16:36 small.txt
[jinli@192 桌面]$ cat small.txt
aaa
bbb
cat: a.txt: 没有那个文件或目录
[jinli@192 桌面]$ 
awk命令

语法:  awk [参数选项]  ' 语法 ' 文件


[jinli@192 桌面]$ touch a.txt
[jinli@192 桌面]$ vim a.txt
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46
~
~

~
"a.txt" 6L, 94C 已写入                                                                 
[jinli@192 桌面]$ clear
[jinli@192 桌面]$ cat a.txt
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46
[jinli@192 桌面]$ cat a.txt | awk 'zhang|li/'
awk: cmd. line:1: zhang|li/
awk: cmd. line:1:       ^ syntax error
[jinli@192 桌面]$ cat a.txt | awk '/zhang|li/'
zhangsan 68 99 26
lisi 98 66 96
zhaoliu 78 44 36
[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{print $1,$2,$3,$4}'
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46
[jinli@192 桌面]$ 

[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{OFS="=="}{print $1,$2,$3,$4}'
zhangsan==68==99==26
lisi==98==66==96
wangwu==38==33==86
zhaoliu==78==44==36
maq==88==22==66
zhouba==98==44==46
[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{OFS="\t"}{print $1,$2,$3,$4}'
zhangsan        68      99      26
lisi    98      66      96
wangwu  38      33      86
zhaoliu 78      44      36
maq     88      22      66
zhouba  98      44      46
[jinli@192 桌面]$ 

[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{print $1}'
zhangsan
lisi
wangwu
zhaoliu
maq
zhouba
[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{print toupper($1)}'
ZHANGSAN
LISI
WANGWU
ZHAOLIU
MAQ
ZHOUBA
[jinli@192 桌面]$ cat a.txt | awk -F ' ' '{print tolower($1)}'
zhangsan
lisi
wangwu
zhaoliu
maq
zhouba
[jinli@192 桌面]$ 

[jinli@192 ~]$ cd /home/jinli/桌面
[jinli@192 桌面]$ cat a.txt
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46
[jinli@192 桌面]$ cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel}'
356

 每一行按照空格切割,计算第四列的总分,显示总分,总人数 (NR表示总行数)

[jinli@192 桌面]$ cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel,NR}'
356 6

 每一行按照空格切割,计算第四列的总分,显示总分,总人数,平均分

[jinli@192 桌面]$ cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel,NR,totel/NR}'
356 6 59.3333
软连接

语法:In -s 目标文件路径 快捷方式路径

find命令

[jinli@192 桌面]$ find . -name "*.txt"
./big.txt
./small.txt
./a.txt
[jinli@192 桌面]$ find . -ctime -1
[jinli@192 桌面]$ find . -name "*.txt"

备份压缩

gzip:压缩命令

语法: gzip[参数选项][文件]          压缩文件

[jinli@localhost ~]$ cd /home/jinli/桌面
[jinli@localhost 桌面]$ cd aaa
[jinli@localhost aaa]$ touch a.txt
[jinli@localhost aaa]$ touch b.txt
[jinli@localhost aaa]$ touch c.txt
[jinli@localhost aaa]$ touch d.txt
[jinli@localhost aaa]$ gzip a.txt
[jinli@localhost aaa]$ ls -al
总用量 4
drwxrwxr-x. 2 jinli jinli 61 5月  29 13:18 .
drwxr-xr-x. 3 jinli jinli 17 5月  29 13:10 ..
-rw-rw-r--. 1 jinli jinli 26 5月  29 13:17 a.txt.gz
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 c.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 d.txt
[jinli@localhost aaa]$ gzip *          //压缩当前文件夹下所有文件,不会压缩已经压缩的文件
gzip: a.txt.gz already has .gz suffix -- unchanged
[jinli@localhost aaa]$ 
gzip -d:解压命令

解压命令:gzip -dv 解压显示详细信息

解压当前文件夹下所有文件:gzip -dv *

gunzip:解压命令
[jinli@localhost aaa]$ gzip *
[jinli@localhost aaa]$ ls -al
总用量 16
drwxrwxr-x. 2 jinli jinli 70 5月  29 13:33 .
drwxr-xr-x. 3 jinli jinli 17 5月  29 13:10 ..
-rw-rw-r--. 1 jinli jinli 26 5月  29 13:17 a.txt.gz
-rw-rw-r--. 1 jinli jinli 26 5月  29 13:18 b.txt.gz
-rw-rw-r--. 1 jinli jinli 26 5月  29 13:18 c.txt.gz
-rw-rw-r--. 1 jinli jinli 26 5月  29 13:18 d.txt.gz
[jinli@localhost aaa]$ gunzip *
[jinli@localhost aaa]$ ls -al
总用量 0
drwxrwxr-x. 2 jinli jinli 58 5月  29 13:33 .
drwxr-xr-x. 3 jinli jinli 17 5月  29 13:10 ..
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:17 a.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 c.txt

gunzip 压缩文件      解压

tar:打包、压缩和解压

tar -cvf a.tar a.txt:仅仅是打包

tar -zcvf b.gz b.txt:压缩b.txt

[jinli@localhost aaa]$ tar -cvf a.tar a.txt
a.txt
[jinli@localhost aaa]$ ls -al
总用量 12
drwxrwxr-x. 2 jinli jinli    71 5月  29 13:40 .
drwxr-xr-x. 3 jinli jinli    17 5月  29 13:10 ..
-rw-rw-r--. 1 jinli jinli 10240 5月  29 13:40 a.tar
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:17 a.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 c.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 d.txt
[jinli@localhost aaa]$ tar -zcvf b.gz b.txt
b.txt
[jinli@localhost aaa]$ ls -al
总用量 16
drwxrwxr-x. 2 jinli jinli    83 5月  29 13:45 .
drwxr-xr-x. 3 jinli jinli    17 5月  29 13:10 ..
-rw-rw-r--. 1 jinli jinli 10240 5月  29 13:40 a.tar
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:17 a.txt
-rw-rw-r--. 1 jinli jinli   114 5月  29 13:45 b.gz
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 c.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 d.txt

tar -zcvf aaa.gz aaa :将桌面aaa文件夹压缩,压缩后的名字叫aaa.gz

tar -ztvf aaa.gz :查看压缩文件里的内容

tar -zxvf aaa.gz:解压aaa文件夹里面所有内容

[jinli@localhost 桌面]$ rm -r -f aaa
[jinli@localhost 桌面]$ tar -zxvf aaa.gz
aaa/
aaa/a.txt
aaa/b.txt
aaa/c.txt
aaa/d.txt
aaa/a.tar
aaa/b.gz
[jinli@localhost 桌面]$ ls -al
总用量 8
drwxr-xr-x.  3 jinli jinli   31 5月  29 15:02 .
drwx------. 16 jinli jinli 4096 5月  29 12:33 ..
drwxrwxr-x.  2 jinli jinli   83 5月  29 13:45 aaa
-rw-rw-r--.  1 jinli jinli  412 5月  29 14:59 aaa.gz
[jinli@localhost 桌面]$ cd aaa
[jinli@localhost aaa]$ ls -al
总用量 16
drwxrwxr-x. 2 jinli jinli    83 5月  29 13:45 .
drwxr-xr-x. 3 jinli jinli    31 5月  29 15:02 ..
-rw-rw-r--. 1 jinli jinli 10240 5月  29 13:40 a.tar
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:17 a.txt
-rw-rw-r--. 1 jinli jinli   114 5月  29 13:45 b.gz
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 c.txt
-rw-rw-r--. 1 jinli jinli     0 5月  29 13:18 d.txt
[jinli@localhost aaa]$ 

zip压缩命令

 zip -q -r aaa.zip aaa :压缩aaa文件夹命名为aaa.zip

[jinli@localhost aaa]$ cd ..
[jinli@localhost 桌面]$ zip -q -r aaa.zip aaa
[jinli@localhost 桌面]$ ls -al
总用量 8
drwxr-xr-x.  3 jinli jinli   32 5月  29 15:11 .
drwx------. 16 jinli jinli 4096 5月  29 12:33 ..
drwxrwxr-x.  2 jinli jinli   58 5月  29 15:09 aaa
-rw-rw-r--.  1 jinli jinli  742 5月  29 15:11 aaa.zip
 unzip解压命令

 unzip -d  bbb aaa.zip : 将aaa文件夹解压到bbb文件夹里

[jinli@localhost 桌面]$ unzip -l aaa.zip
Archive:  aaa.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  05-29-2024 15:09   aaa/
        0  05-29-2024 13:17   aaa/a.txt
        0  05-29-2024 13:18   aaa/b.txt
        0  05-29-2024 13:18   aaa/c.txt
        0  05-29-2024 13:18   aaa/d.txt
---------                     -------
        0                     5 files
[jinli@localhost 桌面]$ unzip -d bbb aaa.zip
Archive:  aaa.zip
   creating: bbb/aaa/
 extracting: bbb/aaa/a.txt           
 extracting: bbb/aaa/b.txt           
 extracting: bbb/aaa/c.txt           
 extracting: bbb/aaa/d.txt           
[jinli@localhost 桌面]$ ls -al
总用量 8
drwxr-xr-x.  4 jinli jinli   43 5月  29 15:16 .
drwx------. 16 jinli jinli 4096 5月  29 12:33 ..
drwxrwxr-x.  2 jinli jinli   58 5月  29 15:09 aaa
-rw-rw-r--.  1 jinli jinli  742 5月  29 15:11 aaa.zip
drwxrwxr-x.  3 jinli jinli   17 5月  29 15:16 bbb

bzip2:压缩命令

[jinli@localhost 桌面]$ cd aaa
[jinli@localhost aaa]$ bzip2 a.txt
[jinli@localhost aaa]$ ls -al
总用量 4
drwxrwxr-x. 2 jinli jinli 62 5月  29 18:17 .
drwxr-xr-x. 4 jinli jinli 43 5月  29 15:16 ..
-rw-rw-r--. 1 jinli jinli 14 5月  29 13:17 a.txt.bz2
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 b.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 c.txt
-rw-rw-r--. 1 jinli jinli  0 5月  29 13:18 d.txt
bunzip2解压缩

bunzip -v a.bz2   解压并显示详细信息

网络与磁盘管理

ifconfig命令

要在root用户下才能配置

 ping:检测网络命令

 

[jinli@localhost 桌面]$ ping www.baidu.com
PING www.a.shifen.com (36.155.132.76) 56(84) bytes of data.
64 bytes from 36.155.132.76 (36.155.132.76): icmp_seq=1 ttl=128 time=14.4 ms
64 bytes from 36.155.132.76 (36.155.132.76): icmp_seq=2 ttl=128 time=14.6 ms
64 bytes from 36.155.132.76 (36.155.132.76): icmp_seq=3 ttl=128 time=15.4 ms
......
//终止命令  ctrl +C

 netstat:显示网络状态

 lsblk列出磁盘使用情况

[jinli@localhost 桌面]$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.3G  0 rom  /run/media/jinli/CentOS 7 x86_64
[jinli@localhost 桌面]$ lsblk -f
NAME            FSTYPE   LABEL       UUID                                   MOUNTPOINT
sda                                                                         
├─sda1          xfs                  6e50549f-bf00-4570-a0ab-9373bae7e14d   /boot
└─sda2          LVM2_mem             1aipcf-QoeL-OaME-cyLc-wpI8-6CMZ-BFVUpT 
  ├─centos-root xfs                  0523d3af-f3e2-40f7-8d08-6817687db307   /
  └─centos-swap swap                 8830c9b6-7dec-4470-ac3c-e31b7b9cda16   [SWAP]
sr0             iso9660  CentOS 7 x86_64
                                     2018-11-25-23-54-16-00                 /run/media

 

 df:目前在Linux系统上,硬盘的使用情况(从分区的角度)

mount命令  

mkdir 文件夹                                   创建文件夹(也是创建一个挂载点)

mount -t auto/dev/cdrom 文件夹      开始挂载       (将虚拟光驱里面的内容)和指定的文件夹关联

umount 文件夹                                  卸载

 

[jinli@localhost ~]$ cd /home/jinli/桌面
[jinli@localhost 桌面]$ mkdir aaa
[jinli@localhost 桌面]$ ls -al
总用量 4
drwxr-xr-x.  3 jinli jinli   17 5月  31 14:09 .
drwx------. 16 jinli jinli 4096 5月  31 13:50 ..
drwxrwxr-x.  2 jinli jinli    6 5月  31 14:09 aaa
[jinli@localhost 桌面]$ mount -t auto /dev/cdrom aaa
mount: 只有 root 用户能使用“--types”选项
[jinli@localhost 桌面]$ su root
密码:
[root@localhost 桌面]# mount -t auto /dev/cdrom aaa
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost 桌面]# ls -al
总用量 6
drwxr-xr-x.  3 jinli jinli   17 5月  31 14:09 .
drwx------. 16 jinli jinli 4096 5月  31 13:50 ..
drwxrwxr-x.  8 jinli jinli 2048 11月 26 2018 aaa
[root@localhost 桌面]# cd aaa
[root@localhost aaa]# ls -al
总用量 689
drwxrwxr-x. 8 jinli jinli   2048 11月 26 2018 .
drwxr-xr-x. 3 jinli jinli     17 5月  31 14:09 ..
-rw-rw-r--. 1 jinli jinli     14 11月 26 2018 CentOS_BuildTag
-rw-r--r--. 1 jinli jinli     29 11月 26 2018 .discinfo
drwxr-xr-x. 3 jinli jinli   2048 11月 26 2018 EFI
-rw-rw-r--. 1 jinli jinli    227 8月  30 2017 EULA
-rw-rw-r--. 1 jinli jinli  18009 12月 10 2015 GPL
drwxr-xr-x. 3 jinli jinli   2048 11月 26 2018 images
drwxr-xr-x. 2 jinli jinli   2048 11月 26 2018 isolinux
drwxr-xr-x. 2 jinli jinli   2048 11月 26 2018 LiveOS
drwxrwxr-x. 2 jinli jinli 663552 11月 26 2018 Packages
drwxrwxr-x. 2 jinli jinli   4096 11月 26 2018 repodata
-rw-rw-r--. 1 jinli jinli   1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 1 jinli jinli   1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 jinli jinli   2883 11月 26 2018 TRANS.TBL
-rw-r--r--. 1 jinli jinli    354 11月 26 2018 .treeinfo
[root@localhost aaa]# cd ..
[root@localhost 桌面]# umount aaa
[root@localhost 桌面]# cd aaa
[root@localhost aaa]# ls -al
总用量 0
drwxrwxr-x. 2 jinli jinli  6 5月  31 14:09 .
drwxr-xr-x. 3 jinli jinli 17 5月  31 14:09 ..
[root@localhost aaa]# 
 yum(查找,安装,下载或卸载另外的软件)就需要通过yum来进行操作

yum常用命令

 安装Tree

yum源

 

 yum和rpm工具的区别(了解)

 shell

 shell的使用方式

 echo $SHELL  展示linux当中默认的一个shell

 编写shell脚本

[jinli@localhost 桌面]$ touch a.sh
[jinli@localhost 桌面]$ vim a.sh
i
#! /bin/bash
#这是第一个脚本文件
echo "itcast"
echo "nihao"
"a.sh" 5L, 70C 已写入                                                     
[jinli@localhost 桌面]$ ./a.sh
bash: ./a.sh: 权限不够
[jinli@localhost 桌面]$ ls -al
总用量 8
drwxr-xr-x.  3 jinli jinli   29 5月  31 17:03 .
drwx------. 16 jinli jinli 4096 5月  31 17:03 ..
drwxrwxr-x.  2 jinli jinli    6 5月  31 14:09 aaa
-rw-rw-r--.  1 jinli jinli   70 5月  31 17:03 a.sh
[jinli@localhost 桌面]$ chmod 777 a.sh
[jinli@localhost 桌面]$ ls -al
总用量 8
drwxr-xr-x.  3 jinli jinli   29 5月  31 17:03 .
drwx------. 16 jinli jinli 4096 5月  31 17:03 ..
drwxrwxr-x.  2 jinli jinli    6 5月  31 14:09 aaa
-rwxrwxrwx.  1 jinli jinli   70 5月  31 17:03 a.sh
[jinli@localhost 桌面]$ ./a.sh
itcast
nihao
shell注释

 shell变量

[jinli@localhost 桌面]$ vim a.sh
echo "nihao"
echo "itcast"
#这是第一个脚本文件
#! /bin/bash
#变量的定义
number=10
echo $number
~
~
~
~
~
~
~
"a.sh" 6L, 56C 已写入                                                     
[jinli@localhost 桌面]$ bash a.sh
10
[jinli@localhost 桌面]$ vim a.sh
#! /bin/bash
#变量的定义
number=10
echo $number
a='$number'
b=number
c="10"
d="$number"
echo $a
echo $b
echo $c
echo $d

~
~
~
~
~
~
~
~
~
~
~
~
~
"a.sh" 15L, 129C 已写入                                                   
[jinli@localhost 桌面]$ bash a.sh
10
$number
number
10
10
 shell命令变量

[jinli@localhost 桌面]$ vim a.sh
#! /bin/bash
#变量的定义
b=`date`
echo $b
d=$(date)
echo $d
~
~
~
"a.sh" 7L, 66C 已写入                                                     
[jinli@localhost 桌面]$ bash a.sh
2024年 05月 31日 星期五 19:48:15 CST
2024年 05月 31日 星期五 19:
 shell使用变量

 

[jinli@localhost 桌面]$ vim a.sh
#! /bin/bash
#变量的定义
b=`date`
echo $b

d=$(date)

echo $d

result="现在的时间为${d}"
echo "${result}"

~
~
~
"a.sh" 12L, 118C 已写入                                                   
[jinli@localhost 桌面]$ bash a.sh
2024年 05月 31日 星期五 20:00:19 CST
2024年 05月 31日 星期五 20:00:19 CST
现在的时间为2024年 05月 31日 星期五 20:00:19 CST
 shell 只读变量   readonly变量名
[jinli@localhost 桌面]$  vim a.sh
#! /bin/bash
#变量的定义
result="现在的时间为${d}"
echo "${result}"

readonly result
result="aaa"
~
~
~
~
~
~
~
"a.sh" 15L, 148C 已写入                                                   
[jinli@localhost 桌面]$ bash a.sh
2024年 05月 31日 星期五 20:04:07 CST
2024年 05月 31日 星期五 20:04:07 CST
现在的时间为2024年 05月 31日 星期五 20:04:07 CST
a.sh:行14: result: 只读变量
shell 删除变量 

      unset 变量名

shell数组

[jinli@localhost 桌面]$ vim a.sh
#! /bin/bash
#数组的小练习
#定义一个数组
arr=(a b c d e f)
#给数组中的元素赋值
arr[0]=A
#获取数组中的元素
echo ${arr[0]}
echo ${arr[1]}
#获取数组的长度
echo "数组的长度${#arr[*]}"
echo "数组的长度${#arr[@]}"
~
~
~
~
~
~
~
~
~
~
"a.sh" 12L, 254C 已写入                                                   
[jinli@localhost 桌面]$ bash a.sh
A
b
数组的长度6
数组的长度6
shell算数运算符

[jinli@localhost 桌面]$ touch operator.sh
[jinli@localhost 桌面]$ vim operator.sh
num5="${c}"
num5="${c}

echo "变量c的值赋值给num5,打印num5的值$怒m
#!/bin/bash
#运算符
#整数相加
num1=`expr 2 + 2`
echo "整数2+2的结果为$num1"

#整数相减
num2=`expr 2 - 2`
echo "整数2-2的结果为$num2"

#整数相乘
num3=`expr 2 \* 2`
echo "整数2*2的结果为$num3"

#变量相加
a=10
b=20
num4=`expr $a + $b`
echo "变量a和变量b相加的结果为$num4"

#赋值
c=30
num5="${c}"
echo "变量c的值赋值给num5,打印num5的值$num5"

#自增
e=1
((e++))
echo "变量e为1,自增之后,结果为$e"

"operator.sh" 31L, 466C 已写入                                            
[jinli@localhost 桌面]$ bash operator.sh
整数2+2的结果为4
整数2-2的结果为0
整数2*2的结果为4
变量a和变量b相加的结果为30
变量c的值赋值给num5,打印num5的值30
变量e为1,自增之后,结果为2
[jinli@localhost 桌面]$ 
 shell字符串运算符

[jinli@localhost 桌面]$ vim string.sh
#!/bin/bash
#字符串运算符
a="aaa"
b="bbb"

#判断两个字符串是否相等
#$?可以获取上一条语句的执行结果
[ "${a}" = "${b}" ]
echo "判断两个字符串是否相等,0为真,1为假:$?"


#判断两个字符串是否不相等
[ "${a}" != "${b}" ]
echo "判断两个字符串是否不相等,0为真,1为假:$?"

#判断字符串的长度是否为0
[ -z "${a}" ]
echo "判断字符串的长度是否为0,0为真,1为假:$?"

#判断字符串的长度不为0
[ -n "${a}" ]
echo "判断字符串的长度是否不为0,0为真,1为假:$?"

#判断字符串是否为空
# [ $a ]如果不为空,那么就是0
[ $"{$a}" ]
echo "判断字符串是否为空:$?"

#获取字符串的长度
echo "获取字符串的长度 ${#a}"

"string.sh" 31L, 742C 已写入                                              
[jinli@localhost 桌面]$ bash string.sh
判断两个字符串是否相等,0为真,1为假:1
判断两个字符串是否不相等,0为真,1为假:0
判断字符串的长度是否为0,0为真,1为假:1
判断字符串的长度是否不为0,0为真,1为假:0
判断字符串是否为空:0
获取字符串的长度 3
shell关系运算符

[jinli@localhost 桌面]$ touch nuberoperator.sh
[jinli@localhost 桌面]$ vim nuberoperator.sh
#!/bin/bash
#关系运算符
#只能比较数字,不支持字符串,除非字符串的值是数字
a=10
b=20
#比较两个数是否相等
[ "${a}" -eq "${b}" ]
echo "a和b两个数字比较的结果为:$?"

~
~
~
~
~
~
~
"nuberoperator.sh" 9L, 207C 已写入                                        
[jinli@localhost 桌面]$ bash nuberoperator.sh
a和b两个数字比较的结果为:1
 shell布尔运算符

[jinli@localhost 桌面]$ vim booleanoperator
#!/bin/bash
#布尔表达式

a=10
b=20

#取反
[ ! "${a} -eq 10" ]
echo "获取判断之后的结果:$?"

#或运算 -o
#理解:a<20或者b>100
[ "${a}" -lt 20 -o "${b}" -gt 100 ]a
echo "或运算的结果为:$?"

#与运算 -a
#理解:a<20 且 b>100
[ "${a}" -lt 20 -a "${b}" -gt 100 ]
echo "与运算的结果为:$?"
[jinli@localhost 桌面]$ bash booleanoperator
获取判断之后的结果:1
或运算的结果为:0
与运算的结果为:1
 shell逻辑运算符

  

[jinli@localhost 桌面]$ vim luojioperator
#逻辑运算符

a=10
b=20
#&&
# a<100 && b>100
[[ "${a}" -lt 100 && "${b}" -gt 100 ]]
echo "&&运算符之后的结果为:$?"


# ||

[[ "${a}" -lt 100 || "${b}" -gt 100 ]]
echo "||运算之后的结果为:$?"


~
~
"luojioperator" 15L, 213C 已写入
[jinli@localhost 桌面]$ bash luojioperator
&&运算符之后的结果为:1
||运算之后的结果为:0
 shell 判断语句

 

[jinli@localhost 桌面]$ vim if
#if语句



#if的第一种格式
#我要查找一个进程,如果这个进程存在,就打印true
  echo "a小于b"
# ps -ef 获取所有进程  grep -c "ssh"过滤出 ssh 的进程个数
if [ $(ps -ef | grep -c "ssh") -gt 1 ]
then
   echo "true"
fi

#if的第二种格式
#查找一个进程,如果这个进程存在,就打印true,否则就打印false
if [ $(ps -ef | grep -c "ssh") -gt 1 ]
then
    echo "true"
else
    echo "false"
fi

#if的第三种格式
#定义a和b两个变量.针对于相等.大于,小于,进行三种提示

a=10
b=20

if [ "${a}" -eq "${b}" ]
then
  echo "相等"
elif [ "${a}" -lt "${b}" ]
then
  echo "a小于b"
else
   echo "a大于b"
fi
"if" 38L, 656C 已写入                                                     
[jinli@localhost 桌面]$ bash if
true
true
a小于b
 shell选择语句

[jinli@localhost ~]$ cd /home/jinli/桌面
[jinli@localhost 桌面]$ touch case.sh
[jinli@localhost 桌面]$ vim case
#!/bin/bash
#选择结构语句
v="czbk"

case "${v}" in
"czbk")
     echo "传智播客"
      ;;
"baidu")
     echo "百度"
      ;;
"guge")
     echo  "谷歌"
     ;;
esac
~
~
~
~
~
~
"case" [新] 15L, 177C 已写入                                              
[jinli@localhost 桌面]$ bash case
传智播客
 shell循环语句

 

[jinli@localhost 桌面]$ vim for
#for 循环
for var in  A B C D E F
do
  echo "${var}"
done
~
~
~
~
~
~
~
"for" 5L, 60C 已写入
[jinli@localhost 桌面]$ bash for
A
B
C
D
E
F
 shell循环语句

[jinli@localhost 桌面]$ vim while.sh
#while循环
#打印1-10之间的每一个数
a=1
while [ "${a}" -le 10 ]
do
    echo "${a}"
    ((a++))
done
~
~
~
~
~
~
"while.sh" 9L, 111C 已写入                                                
[jinli@localhost 桌面]$ bash while.sh
1
2
3
4
5
6
7
8
9
10
shell函数

 

[jinli@localhost 桌面]$ vim function.sh
#shell中的方法


#无参无返回值的方法
method(){
   echo "函数执行了!"
}

#方法的调用
method

~
~
~
~
"function.sh" 11L, 115C 已写入                                            
[jinli@localhost 桌面]$ bash .function.sh
[jinli@localhost 桌面]$ bash function.sh
函数执行了!

 

 

[jinli@localhost 桌面]$ vim function.sh
#shell中的方法


#无参无返回值的方法
method(){
   echo "函数执行了!"
}

#方法的调用
method


#有参无返回值的方法
method2(){
     echo "接收到的第一个参数$1"
     echo "接收到的第二个参数$2"
}

#方法的调用
method2 1 2

method3(){
    echo "接收到的第一个参数$1"
    echo "接收到的第二个参数$2"
    return $(($1 + $2))
}

#方法的调用
method3 10 20
echo $?

"function.sh" 31L, 433C 已写入                                            
[jinli@localhost 桌面]$ bash function.sh
函数执行了!
接收到的第一个参数1
接收到的第二个参数2
接收到的第一个参数10
接收到的第二个参数20
30

练习:在方法中键盘录入两个整数,返回这两个整数的和

read 变量名 --- 表示把键盘录入的数据复制给这个变量

[jinli@localhost 桌面]$ touch lianxi.sh
[jinli@localhost 桌面]$ vim lianxi.sh
#在方法中键盘录入两个整数,返回这两个整数的和
#在方法中键盘录入两个整数,返回这两个整数的和
#read 变量名 --- 表示把键盘录入的数据复制给这个变量


method(){
   echo "请录入第一个数"
   read number1
   echo "请录入第二个数"
   read number2
   echo "两个数分别为${number1},${number2}"
   return $(($number1+$number2))
}

#方法的调用
method
echo $?
~
~
~
~
~
~
"lianxi.sh" 16L, 364C 已写入                                              
[jinli@localhost 桌面]$ bash lianxi.sh
请录入第一个数
105^H
请录入第二个数
20
两个数分别为10,20
lianxi.sh:行11: 10+20: 语法错误: 无效的算术运算符 (错误符号是 +20")
1
[jinli@localhost 桌面]$ bash lianxi.sh
请录入第一个数
10
请录入第二个数
20
两个数分别为10,20
30
[jinli@localhost 桌面]$ 

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值