Linux命令基本用法

1.用户相关命令

1.账号管理

命令作用
useradd添加用户
passwd设置密码
usermod修改用户
userdel删除用户
su切换用户

例:

[root@localhost ~]# useradd aaa
[root@localhost ~]# su aaa
[aaa@localhost root]$ su root
密码:
[root@localhost ~]# passwd aaa
更改用户 aaa 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# 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 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

[root@localhost ~]# usermod -l ljb aaa
usermod: user aaa is currently used by process 3142
[root@localhost ~]# exit
[aaa@localhost root]$ exit
[root@localhost ~]# exit
[aaa@localhost root]$ exit
[root@localhost ~]# exit
[aaa@localhost root]$ exit
[root@localhost ~]# 登出

此时已全部退出需重新连接

[root@localhost ~]# usermod -l ljb aaa
[root@localhost ~]# su aaa
su: user aaa does not exist
[root@localhost ~]# su ljb
[ljb@localhost root]$ 
[ljb@localhost root]$ su root
密码:
[root@localhost ~]# 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 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射

[root@localhost ~]# userdel -r -f ljb
userdel: user ljb is currently used by process 3616
[root@localhost ~]# su ljb
su: user ljb does not exist

2.用户组

命令作用
groupadd添加用户组
groupmod修改用户组
groups查询用户所属组
groupdel删除用户组
gpasswd添加删除组成员
newgrp改变有效组

例:

[root@localhost ~]# groupadd kaifa
[root@localhost ~]# 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 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files

[root@localhost ~]# groupmod -n kaifazu kaifa
[root@localhost ~]# groups itcast
itcast : itcast wheel

[root@localhost ~]# groupdel kaifazu
[root@localhost ~]# groupadd kaifa
[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# 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@localhost ~]# gpasswd -a user1 kaifa
正在将用户“user1”加入到“kaifa”组中
[root@localhost ~]# gpasswd -a user2 kaifa
正在将用户“user2”加入到“kaifa”组中
[root@localhost ~]# gpasswd -a user3 kaifa
正在将用户“user3”加入到“kaifa”组中
[root@localhost ~]# grep 'kaifa' /etc/group
kaifa:x:1002:user1,user2,user3

2.系统管理相关命令 

日期管理

date

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号

-u:显示GMT

--help:在线帮助

--version:显示版本信息

[root@localhost ~]# date
2023年 08月 21日 星期一 15:23:45 CST
[root@localhost ~]# date -d "2020-12-12 11:11:11"
2020年 12月 12日 星期六 11:11:11 CST
[root@localhost ~]# date --help

显示用户 

logname[--help][--version]

[root@localhost ~]# logname
root

切换用户 

su [user]

id命令

id [-g][--help][--version][用户名称]

sudo命令

sudo[参数选项] 提高普通用户的操作权限

[itcast@localhost root]$ id
uid=1000(itcast) gid=1000(itcast) 组=1000(itcast),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[itcast@localhost root]$ sudo ls
[sudo] itcast 的密码:
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

3.进程项命令

top的命令

top[-][d delay][q][c][S][s][i][n][b]  实时显示process的动态

top  实时显示所有的进程信息

top -c  实时显示所有的进程信息(显示完整命令)

top -p PID  实时显示指定进程的信息

结束监控快捷键:q

ps命令

ps[options][--help]  查看进程信息(无法实时监控,只能获取当前时刻的进程信息)

ps  显示当前正在运行的进程信息

ps -A  显示系统中生源地进程信息

ps -ef  显示系统中生源地进程信息(完整信息)

ps -u 用户名  显示指定用户的进程信息

kill命令

kill[-s<信息名称或编号>][程序]  中断执行中的程序

kill[-l<信息编号>]

kill 进程 PID  杀死指定进程

kill -9 进程PID  彻底杀死指定进程

kill -9 $(ps -ef|grep 用户名)  杀死指定用户所有进程

killall -u 用户名  杀死指定用户所有进程

4.关机和重启命令

shutdown命令

shutdown [-t seconds][-rkhncfF]time[message]  关机


shutdown  不同版本有所差异

shutdown -h now  立马关机

shutdown +1 “警告信息”  一分钟再关机,并出现警告信息

shutdown -r +1 “警告信息”  一分钟再重启,并出现警告信息

shutdown -c  取消当前关机操作

reboot [-n][-w][-d][-f][-i]  重启

reboot  立马重启 

5.系统管理的其他命令 

who命令

who -[husfV][user]  显示当前登录系统的用户

timedatectl命令

timedatectl  校正服务器时间,时区

timedatectl status  显示系统的当前时间和日期

timedatectl list-timezones  看查所有可用的时区

timedatectl set-timezone"Asia/Shanghai"  设置本地时区

timedatectl set-ntp false  禁用时间同步

timedatectl set-time “2023-8-24 20:58:00”  设置时间

timedatectl set-ntp true  启用时间同步

clear命令

clear  清除屏幕

6.目录管理

ls命令

ls [参数选项] 目录名称  列出目录里的内容

ls  显示不隐藏的文件与文件夹

ls -l  显示不隐藏的文件与文件夹的详细信息

ls -al  显示所有文件与文件夹的详细信息

pwd命令

pwd -P  查看当前所在目录

cd命令

cd[相对路径或绝对路径]  切换目录
 

 cd 路径  切换目录

mkdir命令

mkdir [-p] 文件夹的名字  创建目录

mkdir 文件夹名  创建目录

mkdir -p aaa/bbb  创建多级目录

rmdir命令

rmdir [-p] 文件夹名  删除空的目录

rmdir 文件名  删除目录

rmdir -p bbb/ccc  删除ccc,如果删除完bbb是空的bbb也一起删除

rm命令

rm[选项] 文件/目录  删除文件或者目录

rm 文件路径  删除文件

rm -r 目录路径  删除目录和目录里面所有的内容

rm -rf 强制删除文件夹及其子文件

cp命令

cp [选项] 数据源 目的地   文件复制

cp aaa/a.txt ccc  将aaa文件夹中的a.txt文件拷贝到ccc文件中

cp -r aaa/*ccc  将aaa文件夹中所有内容拷贝到ccc文件夹中

mv命令

mv [选项] 数据源 目的地    改名/移动文件或文件夹

mv 数据源 目的地   改名/移动

附:Linux文件基本属性 

 

7.更改属主和属组

chgrp命令

chgrp [选项参数][所属群组][文件或目录...]     更改属组

chgrp [选项参数][--reference=<参考文件或目录>][--version][文件或目录...]

chgrp -v root aaa   将aaa的属组改为root

chown命令

chown 属主名 文件名      更改属主

chown [参数选项] 属主名 : 属组名 文件名      更改属主和属组

chown root aaa     将aaa的属主改为roo

chown root:root bbb     将bbb的属主和属组改为root

chown -R root:root aaa     将aaa文件夹和里面所有的属主和属组改为root

8.更改权限

chmod命令

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

修改方式:数字方式,符号方式

数字权限

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

符号权限:

chmod [参数选项] 符号权限 文件或目录

user  属主权限  -->  u

group    属组权限  -->  g

others   其他权限  -->  o

全部身份   -->   a

9.文件管理

touch命令

touch [参数选项] 文件名        如果文件不存在就创建文件,如果存在就修改时间属性

touch a.txt    不存在就创建,存在就修改时间属性

touch a{1..10).txt (两个点)   批量创建空文件

star a.txt    查看文件的详细信息

vi/vim编辑器

vi:

只能是编辑文本内容,不能对字体,段落进行排版

不支持鼠标操作

没有菜单

只有命令

vim:

是从vi发展出来的一个文本编辑器

代码补全,编译及错误跳转等方便编程的功能特别丰富

vi/vim三种模式

打开和新建文件

vim 文件名    如果文件已经存在,会直接打开该文件 / 如果文件不存在,打开一个临时文件,在保存且退出后,就会新建一个文件 

进入编辑模式

进入末行模式保存文件 

:q    当vim进入文件没有对文件内容做任何操作可以按"q"退出

:q!    当vim进入文件对文件内容有操作但不想保存退出

:wq    正常保存退出

:wq!    强行保存退出

10.文件查看

命令功能
cat 文件名看查小文件内容
less -N 文件名分屏显示大文件内容
head -n 文件名看查文件的前一部分
tail -n 文件名看查文件的最后一部分
grep 关键字 文件名根据关键字搜索文本文件内容

cat命令

cat [参数选项] 文件    查看小型文件

cat a.txt    查看a.txt的内容

cat -n a.txt    查看a.txt的内容(加入行号)

less命令

less a.txt    看查a.txt的内容

less -N a.txt    看查a.txt的内容(加入行号)

注:q键退出

tail命令

tail [参数选项] 文件    查看文件的最后部分

tali -3 big.txt        显示文件最后3行

tail -f big.txt        动态显示最后10行

tail -4f big.txt    动态显示最后4行

tail -n +2 big.txt    显示文件a.txt的内容,从第2行至文件末尾

tail -c 45 big.txt    显示最后一些字符

head命令

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

grep命令

grep [参数选项] 关键字 文件    根据关键词,搜索文本文件内容

grep 关键字 small.txt        把包含关键字的行展示出来

grep -n 关键字 small.txt        把包含关键字的行展示出来且加上行号

grep -i 关键字 small.txt        把包含关键字的行展示出来,搜索时忽略大小写

grep -v 关键字 small.txt        把不包含关键字的行展示出来

ps -ef | grep 关键字        查找指定的进程信息,包含grep进程

ps -ef | grep 关键字 | grep -v "grep"        查找指定的进程信息,不包含grep进程

ps -ef|grep -c sshd        查找进程个数

vim定位行

vim 文件名+行数        查看文件并定位到具体行数

vim异常处理

如果vim异常退出,在磁盘上可能会保存有交换文件

删除 .swp文件(rm -r -f .xxx.swp)

echo命令

echo 字符串        展示文本

echo 字符串 > 文件名        将字符串写到文件中(覆盖文件中内容)

echo 字符串 >> 文件名        将字符串写到文件中(不覆盖文件中内容)

cat 不存在的目录 &>> error.log        将命令的失败结构追加error.log文件的后面

11.awk语法

AWK是一种处理文本文件的语言,是一个强大的文本分析工具

过滤和切割

计算

 

软连接

因为某些文件和目录的路径很深,所以需要增加软连接(快捷方式)

ln -s 目标文件路径 快捷方式路径

find命令(查找) 

fing [参数选项] <指定目录> <指定条件> <指定内容>        在指定目录下查找文件

12.压缩命令

gzip命令

gzip [参数选项] [文件]        压缩文件

gzip a.txt        压缩文件

gzip *        压缩当前目录下所有文件

gzip dv*        解压文件并列出详细信息

gunzip命令

gzip [参数选项] [文件]        解压文件

gunzip 压缩文件        解压

tar命令

tar[必要参数] [选择参数] [文件]        打包,压缩和解压(文件/文件夹)

注意:tar本身不具有压缩功能,他是调用压缩功能实现的

tar -cvf 打包文件名 文件名            打包文件并指定打包之后的文件名(仅打包不压缩)

tar -zcvf 压缩文件名 文件名/文件夹名        压缩文件或者文件夹并指定压缩文件名(打包压缩)

tar -ztvf 压缩文件名        看查压缩文件中有哪些文件

tar -zxvf 压缩文件名        压缩

zip文件

zip [必要参数] [选择参数] [文件]        压缩

注意:zip是个使用广泛的压缩文件,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件

zip -q -r 压缩文件名 文件/文件夹        压缩

unzip命令

unzip [必要参数] [选择参数] [文件]        解压

注意:解压“.zip”扩展名的压缩文件

unzip -l 压缩文件名        查看这个压缩文件中有多少内容

unzip -d 指定文件夹 压缩文件        解压

bzip2命令

bzip2 [参数选项] 文件        压缩

注意:使用新的压缩算法,压缩后的文件比原来的要小,但是花费的时间边长

bzip2 a.txt        压缩

bunzip2命令

bunzip2 [参数选项] 文件        解压

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

13.网络管理

ifconfig命令

ifconfig [参数选项]        显示或者配置网络设备的命令

ifconfig        显示激活的网卡信息

ifconfig ens37 down        关闭网卡

ifconfig ens37 up        启动网卡

ifconfig ens37 192.168.23.199        配置ip地址

ifconfig ens37 192.168.23.133 netmask 255.255.255.0        配置ip地址和子网掩码

ping命令

ping [参数选项]        检测是否与主机连通

ping www.baidu.com        检测是否与百度连通

ping -c 2 www.baidu.com        指定接收包的次数

netstat命令

netstat [参数选项]        显示网络状态

netstat -a        显示详细的连接状况

netstat -i        显示网卡列表

14.磁盘管理

lsblk命令

lsblk [参数选项]        列出硬盘的使用情况

理解为:list block的英文缩写

lsblk        列出硬盘的使用情况

lsblk -f        显示系统信息

df命令

df [参数选项]        显示目前在Linux系统上,硬盘的使用情况

df        显示整个硬盘使用情况

df 文件夹        显示文件夹使用情况

df -total        显示所有的信息

df -h        将结果变成KB,MB,GB形式展示,利于阅读

mount命令

为u盘分配一个挂载点叫挂载

解除文件夹与优盘的关系叫卸载

mount [参数选项] 目录        用于挂载Linux系统外的设备

注意:“挂载点”的目录需要以下几个需求

目录事先存在,可以用mkdir命令新建目录

挂载点目录不可被其他进程使用到

挂载点下原有文件将被隐藏

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

mount -t auto/dev/cdrom 文件夹        开始挂载

umount 文件夹        卸载

yum

在linux中,如果我们想要查找,安装,下载或者卸载另外的软件,就需要yum来进行操作

yum -y install tree        安装tree

tree        执行tree,展示当前目录结构

yum remove tree        移除tree

yum list tom*        找出以tom为开头的软件名称

更改yum源

yum install -y wget        安装下载工具wget

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo        下载阿里云的Centos-7.repo文件

yum clean all        清理之前的缓存,并重新加载yum

yum makecache        建立一个缓存文件

yum search tomcat        查找软件,验证阿里云的yum源是否可以正常使用

yum与rpm的区别

rpm只能安装已经下载到本地机器上的rpm包

yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这是rpm工具所不具备的

15.shell

1.shell概述

在计算机科学中,shell就是一个命令解释器

shell是位于操作系统和应用程序之间的,是他们二者最主要的接口

shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结构解释给应用程序

shell就是在操作系统和应用程序之间的一个命令翻译工具 

shell的使用方式

手工方式

    手工敲击键盘,直接输入命令,按Enter后

    执行命令,显示命令执行的结果

重点:逐行输入命令,逐行进行确认执行

脚本方式

    我们把手工执行的命令,写到一个文件中,然后运行这个文件,达到执行命令的效果

    这个文件就叫做脚本文件

2.编写第一个shell脚本

新建一个文件后缀名为sh

书写内容

执行

3.shell注释

单行注释

多行注释

注:字符大多用!

3.shell变量

1.普通变量

方式一

    变量名=变量值        变量必须是一个整体,中间没有特殊字符

方式二

    变量名='变量值'        单引号中的内容,原样赋值

方式三

    变量名="变量值"        如果双引号里面有其他变量,会把变量的结果拼接,然后赋值

命令变量

方式一

    变量名=`命令`        注意:`是反引号

方式二

    变量名=$(命令)        

执行流程:1.执行`或者$()范围内的命令 2.将命令执行后的结果,赋值给变量

2.使用变量

方式一

    $变量名        非标准写法,图省事

方式二

    "$变量名"        非标准写法,图省事

方式三

    ${变量名}        在双引号里面要使用变量的值

方式四

    "${变量名}"        标准使用方式

3.只读变量

readonly 变量名

4.删除变量

unset 变量名

4.shell数组

定义数组

数组名={值1 值2 ... 值n}        arr={1 2 3 4 5}

给数组的元素赋值

数组名[索引]=值        arr[0]=1

获取元素

${数组名[下标]}        ${arr[0]}

获取长度

${#数组名[*]}        ${#arr[*]}

${#数组名[@]}        ${#arr[@]}    

例:

5.shell算数运算符

运算符说明举例
+加法expr $a + $b
-减法expr $a - $b
*乘法expr $a \* $b
/除法expr $a / $b
%取余expr $a % $b
=赋值a=$b 将把变量b的值赋给a
++ / --自增,自减

((a++))  

注意点:

1.原生的bash不支持简单的数学运算。可以通过其他命令实现 .expr

2.表达式和运算符之间要有空格

3.完整的表达式要被反引号包含

例: `expr 2 + 2`

6.字符串运算符

运算符说明举例
=检测两个字符串是否相等,相等返回true[ $a = $b ]
!=检测两个字符串是否不相等,不相等返回true[ $a != $b ]
-z检测字符串长度是否为0,为0返回true[ -z $a ]
-n检测字符串长度是否不为0,不为0返回true[ -n "$a" ]
$检测字符串是否为空,不为空返回true[ $a ]

注:方括号内前后都要有空格

 

7.关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

运算符说明举例
-eq (equals)

检测两个数是否相等,相等返回true

[ $a -eq $b ]
-ne (not equals)检测两个数是否不相等,不相等返回true[ $a -ne $b ]
-gt (greater than)检测左边的数是否大于右边的,如果是,则返回true[ $a -ge $b ]
-lt (less than)检测左边的数是否小于右边的,如果是,则返回true[ $a -lt $b ]
-ge (greater equals)检测左边的数是否大于等于右边的,如果是,则返回true[ $a -ge $b ]
-le (less equals)检测左边的数是否小于等于右边的,如果是,则返回true

[ $a -le $b ]

8.shell布尔运算符

运算符说明举例
!取反运算[ !false ] 返回true
-o (or)或运算,有一个表达式为true则返回true[ $a -lt 20 -o $b -gt 100]
-a (and)与运算,两个表达式都为true才返回true[ $a -lt 20 -a $b -gt 100]

 

9.shell逻辑运算符

运算符说明举例
&&逻辑的AND[[ true && true ]] 返回true
||逻辑的OR

[[ false || false ]] 返回false

10.shell判断语句

 

11.shell选择语句

12.shell循环语句

for循环

while循环

13.shell函数 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值