Linux常用命令


shell相关

常见的几种Shell:
1.Bourne shell (sh)是一个快捷方式,已经被/bin/bash所取代
2.Korn shell (ksh)语法与Bourne shell相同,同时具备了C shell的易用特点
3.C shell (csh)使用的是“类C”语法,csh是具有C语言风格的一种shell
4.Bourne-again shell (bash)大多数Linux系统默认使用的Shell,是Bourne shell 的一个免费版本,它是最早的Unix Shell
查看用户默认使用的shell:echo $SHELL
在这里插入图片描述
查看用户当前使用的shell: ps
在这里插入图片描述

路径相关

系统中的路径可以分为俩种,绝对路径和相对路径。

  1. 绝对路径
    Linux系统中,以系统中根目录开头的路径,都是绝对路径
    例如:/bin 、/home/briup、/opt等
    例如,查看/home/briup目录中的hello.txt文件
cat /home/briup/hello.txt
  1. 相对路径
    在当前路径下,去描述另一个路径,就可以使用相对路径,它表示的俩个路径的相对位置。
    当前路径,就是当前输入执行命令的路径,在当前路径下,去表示另一个路径的相对位置。
    例如,当前路径在/home/briup下,查看另一个/home/test目录中的hello.txt文件
cat ../test/hello.txt

其中,1..表示当前目录,如果一个文件名是以.开头,就说明这个文件是隐藏文件:

在这里插入图片描述
(ls -a)显示所有文件,包括隐藏文件。
2. ..是上一级目录,表示一个目录的路径,且以.开头,所以是一个隐藏目录:

在这里插入图片描述

用户相关

useradd 非交互式命令,通过选项一次性提供该命令所需的参数,直接执行;
useradd:
-m 在创建用户时创建家目录
-d 指定家目录的位置,默认是/home/用户名
-s 指定创建的用户所能使用的默认的shell程序

adduser 交互式命令,在命令执行的过程中,通过提示,提供相应的参数即可;在创建用户时需要提供创建的用户的密码;

非交互式创建新用户zhangsan:

sudo useradd -m zhangsan

为zhangsan设置密码:

sudo passwd zhangsan

切换用户然后改变一下shell:

su zhangsan
bash

在这里插入图片描述
交互式创建新用户lisi:

sudo adduser lisi

切换用户:
在这里插入图片描述

组相关

id命令,可查看当前用户的uid和组id和这个用户所属的组等信息。
在这里插入图片描述
(在linux中创建用户时,会默认创建一个个用户名同名的组,并且组id和用户id也相同,并且该用户默认属于与用户名同名的组)

id+用户名:查看指定用户的uid和组id和这个用户所属的组等信息
在这里插入图片描述
将一个用户添加到一个组中:

sudo gpasswd -a  用户名 组名(这种方式不常用)
sudo usermod -aG 组名 用户名(常用)

将用户lisi添加到sudo组中:

 usermod -a -G sudo lisi

(这里要注意,所有属于sudo组的用户才能使用sudo临时提权)

cat命令

如果后面没有跟任何选项或者参数,指的是读取控制台(终端)的输入,并将输入原样输出,比如输入一个hello,接着就会输出一个hello:
在这里插入图片描述

如果后面跟一个或者多个文件路径,指的是查看后面指定的文件的内容:

一个路径:
在这里插入图片描述
多个路径:
在这里插入图片描述

硬链接和软链接

硬链接文件(链接文件)
软链接文件(符号链接文件),windows中的快捷方式

1.硬链接

创建a.txt的硬链接文件b.txt:
在这里插入图片描述

2.软链接

创建a.txt的软链接文件c.txt:

在这里插入图片描述

权限相关

用ls -al 命令时,红框中显示的第一个字符是文件的类型,后面的字符是权限rwx,三个为一组:
第一个rwx是所属用户的权限,第二个是同组人,第三个是其他用户。

对于文件:
r:可读,可以读取文件的内容
w:可写,可以向文件中写入内容
x:可执行,一般用于脚本或者可执行的二进制程序;

对于目录:
r:可读,可以读取目录中的子目录或者文件;一般ls命令会用到该权限;
w:可写,可以通过相关的命令在该目录中创建子目录或者文件;mkdir,touch
x:可执行,是否能够通过cd命令切换到该目录;
在这里插入图片描述
改变权限:
在添加或者删除某个权限的时候:
u 表示拥有者
g 表示同组人
o 表示其他人
a 表示所有人

例如:

chmod u+x b.txt
chmod g-r b.txt
chmod u+r,g-2 b.txt
chmod a=rw b.txt

(权限操作符:
+附加权限,不会去除原来的权限
-去除权限
= 赋予权限,先将原来的权限去除,然后附加新的权限)

也可以是数字来表示权限:
x 执行权限 十进制数字 1
w 写权限 十进制数字 2
r 读权限 十进制数字 4

例如:

//7一定是1+2+4所得,表示拥有者、同组人、其他人都是可读可写可执行
chmod 777 b.txt

chown和chgrp

chown -R owner 修改文件的所属者,还能修改所属组

修改所属者:

sudo chown zhangsan a.txt 

在这里插入图片描述
修改所属者和所属组:

sudo chown zhangsan:zhangsan  a.txt

在这里插入图片描述

chgrp -R group 只能修改所属组

sudo chgrp lisi a.txt 

在这里插入图片描述

touch命令

功能:
1.创建一个新的空白的文件
如果后面的参数是常规文件,则指的是创建该常规文件,新的,空白的。
如果后面的参数是一个软链接,但是该软链接指向的真实文件已被删除,则指的是创建该软链接指向的真实文件,新的,空白的。

2.刷新(更新,修改)已存在的文件的最后一次访问时间

例如,创建一个文件或者修改文件的更新时间

touch a.txt

cp命令

例如:复制当前目录下a.txt文件内容到b.txt中

cp a.txt b.txt

在这里插入图片描述
(如果b.txt不存在,则自动创建b.txt文件
如果b.txt 存在,则自动覆盖b.txt文件内容)

复制多个文件,到一个指定目录复制多个文件,到一个指定目录:

cp a.txt b.txt test

(复制a.txt b.txt文件到test目录中,要求这些文件和目录都是存在的,并且当cp 要复制的源是多个文件组成时,目标必须是已存在的目录,不能不存在,不能是文件;指的是将多个源文件复制到目标目录中)

复制test1目录及其内容到test2目录中:

cp -r test1 test2

(当cp命令复制的源是目录时,会递归的将该目录下的所有子目录和子文件都复制一份,但是cp命令本身不会递归,需要加-r选项)

mv命令

mv 表示移动文件,除了不需要-r选项之外,其他含义和cp一模一样,不再描述。

>和>>

输出重定向符合,将来原本输出到命令行中的内容,重定向输入到另外一个地方。

>表示往文件中写入内容,是覆盖操作。

例如,把hello写入到a文件中

echo "hello" > a

a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容

>>表示往文件中写入内容,是追加操作。

例如,把hello追加写入到a文件中

echo "hello" >> a

|管道符命令

作用:可以把第一个命令的结果,交给第二个命令作为参数进行操作

例如查看/etc/passwd中的内容并筛选出briup相关的信息:

cat /etc/passwd | grep "briup"

在这里插入图片描述
(grep命令进行对结果进行过滤筛选)

环境变量

环境变量分为:
1.系统环境变量:会被当前OS中的所有登录的用户读取;
/etc/profile
2.用户环境变量:只会被当前登录的用户读取;
~/.bashrc

归档和解档 压缩和解压缩

归档意思是把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接在一起,形成一个大文件。
另外还会额外的添加一些信息,所以归档后的总文件的大小,反而往往比之前文件之和还要大一
些。

例如,把a.txt和b.txt归档成abc.tar:

 tar -c -f ab.tar a.txt b.txt

在这里插入图片描述
解档ab.tar:

tar -x -v -f ab.tar

tar命令常用的选项及其作用:
在这里插入图片描述
压缩和解压缩:
涉及到很多压缩算法,每个算法压缩完后的文件的后缀都是不一样的:
1.gzip 压缩 xxx.gz
gunzip 解压缩

2.bzip2 压缩 xxx.bz2
bunzip2 解压缩

3.zip 压缩 xxx.zip
unzip 解压缩

在归档时指定参数进行压缩:
例如,使用gzip算法压缩a.txt和b.txt为ab.tar.gz:

tar -zcvf ab.tar.gz a.txt b.txt 

在这里插入图片描述

在解档时指定参数进行解压缩:

tar  -zxvf  ab.tar.gz  -C  路径(解压到什么地方)

Shell

shell简述

shell是一个命令解析器,接受应用程序/用户命令,然后调用操作系统。

shell脚本的本质是一系列命令的集合。

例如一个最简单的脚本first.sh里面的内容为:

#!/bin/bash
pwd
date
echo "shell success"

然后执行脚本:./first.sh
在这里插入图片描述

还可以用其他方式执行脚本:

sh first.sh 
sh /home/gx/first.sh
bash first.sh 
bash /home/gx/first.sh

普通变量

shell中提供使用和声明变量的功能。语法:变量名=变量值
例如:定义定义变量name:

NAME=zhangsan
echo $NAME

撤销变量NAME:

unset  NAME

变量声明都是字符串类型,无法直接进行数值运算:
在这里插入图片描述

特殊变量

$n,n为0代表该脚本名称,n为1-9代表第一到第九个参数,10以上的参数需要用大括号包起来。

例如,输出脚本文件及其相关参数:
脚本内容:

#!/bin/bash
echo "$0 $1 $2 $3 ${11}"

执行脚本:
在这里插入图片描述

运算符

在shell中需要完成算数运算的方式如下:

$( (运算式) )
$[运算式]
expr +,-,*,/,%  (expr运算符间要有空格)

例如加法:
在这里插入图片描述

if判断

语法:

if [ 条件1 ]
then
命令1
elif [ 条件2 ]
命令2
...
else
命令3
fi

(if或elif后需要有空格,条件前后需要空格)
简单案例:脚本执行第一个参数为1输出ok,如果为2输出no:
脚本内容:
在这里插入图片描述
执行脚本:
在这里插入图片描述

case语句

语法:

case $变量名 in
    "值1")
    如果变量的值等于值1,则执行程序1
    ;;
    "值2")
    如果变量的值等于值2,则执行程序2
    ;;
    ...............
    *)
    如果变量的值都不是以上的值,则执行此程序
    ;;
esac

案例:
在这里插入图片描述

执行脚本:

在这里插入图片描述
在这里插入图片描述

for

语法:

for 变量名 in 列表
do
    命令
done

或者
for( ( 初始值;循环控制条件;变量变化 ) )
do
    程序
done

例如:从1加到100
脚本内容:

#!/bin/bash
sum=0
for((i=0;i<=100;i++))
do
        sum=$[ $sum + $i ]
done    
echo $sum

执行脚本:
在这里插入图片描述
再比如打印输出所有参数,脚本内容:

sum=0
for i in $*
do
        echo $i
done

脚本执行:
在这里插入图片描述

while

语法:

while [ 条件 ]
do
    命令
done 

例如计算从 0 到 100 的整数之和,脚本内容:

i=0
sum=0
while [ $i -le 100 ]
do
        sum=$[ sum + $i]
        i=$[ $i + 1 ]
done    
echo $sum

执行脚本:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT阿牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值