虚拟机安装和使用
下载地址: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 桌面]$