Linux 下基础命令

时间:2021-09-11 15:34:08

Linux:开源

  Ubuntu

  Centos

   Deepin

  Debian

  Linux mint

。。。

1、省钱

2、省资源

Linux由unix演化而来

  Linux:开源

  Unix: 闭源 solary ibm

vmware:

  宿主机

  虚拟机

  客户机

安装所有软件必须要在没有中文没有空格的路径下

在vmware上安装centos:

用户:

  root 密码:hadoop //超级用户

  centos  密码:hadoop

Centos命令提示符:

[centos@localhost ~]$

[用户名@主机名 当前路径]$

Centos基本命令

   ls //列出当前目录下的文件和文件夹

  ls / //列出根目录.....

   ls -al / //

   ll / [ls -l] //以长列表形式输出

   cd / //切换到根目录

   clear[ctrl+l] //清屏

   su root //switch user切换用户

   which ls //查看可执行文件位置

   pwd //查看当前路径

   exit //退出当前用户

   mkdir //创建目录

   mkdir -p //创建多级目录

  find . //递归输出指定文件夹内容

   rm -rf * //删除文件和文件夹

  echo //回声

> //覆盖重定向

   >> //追加

  cat 1.txt //查看文件内容

  ctrl+c //强制退出

  ctrl+z //后台运行程序

  sudo //在当前用户临时使用root权限进行操作

  hostname //查看主机名

  whoami //查看当前用户

Centos文件结构(树形结构)没有盘符

  /为根目录,所有目录的父目录以.开头的文件和文件夹是默认隐藏的

  windows库文件:.dll dynamic link library

  Linux库文件:  .so shared object

  /boot //引导

  /dev //device设备文件

  /etc //配置文件

  /home/xxx //家目录 ~

  /media //媒体文件

  /mnt //挂载目录

   /opt //安装软件

   /proc //进程文件

   /root //root用户的家目录 ~

  /var /run //运行时文件

   /srv //服务文件

   /usr //用户级文件 软件、配置、可执行文件

   - //普通文件

   d //directory文件夹

   l //link符号链接[windows中的快捷方式]

  b //block块设备文件 磁盘、cd、分区

  c //字符设备文件

  s //socket套接字文件

  p //pip管道文件

Linux查看帮助:

  ls --help //一直是帮助

  man ls //人性化可读

   ls -h //有时是帮助,有时是其他参数

   info ls //详细信息

putty的使用:

   远程登录主机 putty

   mtputty 多标签putty

  注意:putty和mtputty安装路径不能有中文和空格!!

centos无法上网:

  1、网络没有打开:

     $> su root

     #> vi /etc/sysconfig/network-scripts/ifcfg-ens33

    将onboot改为yes即可

    重启客户机

Centos权限:

  1、u //user

  2、g //group

  3、o //other

   1、r //read 4

   2、w //write 2

   3、x //执行 1

修改权限:chmod //change mode 修改权限

  chmod u+w //user增加写权限

   chmod o-r //other去掉读权限

   chmod g-rx //

   chmod a+rwx //

   chmod 644

   user读写 group读 other读

     6       4       4

文件权限:

读:读 cat 1.txt

写:写 echo hello > 1.txt

执行:执行权限和读权限要共存 ./1.txt

文件夹权限:

读: ls

写: 增删文件(夹)

执行: cd,包括读和写

注意:一个文件是否能够删除,取决于此文件所属文件夹是否有写权限

注意:文件权限一般是644,文件夹权限一般是755

修改用户:chown //change owner修改拥有者

chown centos:centos aaa //仅修改aaa文件夹...

sudo chown -R centos:centos aaa //递归修改aaa文件夹权限为centos用户,centos用户组

vi的使用方法:

vi 1.txt

insert //进入到编辑模式

esc //退出编辑模式

:wq //保存退出

:q //不修改退出(未编辑)

:q! //不修改退出(已编辑)

退出编辑模式下的快捷方式

x //删除光标选中字符

dd //删除当前行

dG //删除当前行以下

普通用户使用sudo的方法:

  1、切换为root权限 //su root

  2、visudo

  3、添加centos    ALL=(ALL)       ALL

  4、保存退出

yum:

  sudo yum install -y nano //下载安装

  sudo yum remove -y nano //卸载

  sudo yum install --downloadonly --downloaddir=. nano //仅下载

  sudo yum localinstall *.rpm //本地安装

nano:

nano 2.txt

快捷键:

ctrl+o //保存

ctrl+k //剪切(删除)

ctrl+u //粘贴

ctrl+w //搜索

ctrl+x //退出

修改主机名

  sudo nano /etc/hostname

  改为s100

修改静态ip

  sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33

  将BOOTPROTO="dhcp" =====> BOOTPROTO="static"

   将ipv6的所有yes改成no,或直接删除

  添加以下几行:

   IPADDR=192.168.23.100

  PREFIX=24

   GATEWAY=192.168.23.2

   DNS=192.168.23.2

然后重启网络:

  service network restart

vmware的网络类型

/home和/usr的区别? //和windows中的users文件夹和program Files文件夹的关系一样

Day_2

文件:

touch 1.txt

rm 1.txt

vi

nano:

ctrl+k

ctrl+u

ctrl+o

ctrl+x

echo hello > 1.txt

>>

cat

文件夹:

mkdir -p a/b/c/d

rm -rf a

find ls ll

文件的执行一般和读权限共存

文件夹执行:cd

权限:

User

Group

Other

chmod u+r

644

sudo chown -R  root:root a

桥接:

NAT:

仅主机:

环境变量:

export PATH=$PATH:tom

/etc/profile

source /etc/profile

tar:

tar -cf archeive.tar aaa bbb //归档

tar -tvf archeive.tar //列出归档文件的详细文件内容

tar -xf archeive.tar //解档

gzip:

gzip 1.txt //对文件进行压缩

gunzip 1.txt //对文件进行解压

gzip不支持文件夹压缩

解压.tar.gz后缀的文件:

tar -xzvf bbb.tar.gz

x:extract解压

z:gzip

v:verbose列出文件信息

f:file

mount

mount /dev/cdrom /mnt //挂载镜像文件

yum localinstall -y *   //本地安装目录下所有文件

umount /mnt //卸载镜像文件

安装vmtools:

0、右键虚拟机 ===> 选项 ===> 共享文件夹,先启动,然后设置相关目录

1、vmware中点击虚拟机选项卡 ===> 安装vmtools

2、mount /dev/cdrom /mnt

3、tar -xzvf xxx.tar.gz -C ~ //将压缩文件解压到指定位置

4、cd到解压路径发现可执行脚本

5、./vmware-install.pl

6、如果顺序颠倒,重新安装vmtools即可

yum在安装的时候,会将软件涉及到的相关依赖同时安装。

脚本:所见即所得 //perl shell javascript

java: 预编译

winscp:远程传输文件

链接:

ln aaa aaa.ln 硬链接 //不支持文件夹,原文件删除,硬链接仍然可以充当源文件

ln -s aaa aaa.ln 软链接(符号链接) //支持文件夹,源文件删除即失效

ln -sf BBB bbb2.ln //重构已有符号链接

pwd -P //查看当前路径的物理路径

安装jdk:

0、解压jdk到/soft文件夹

1、创建符号链接

ln -s /soft/jdk1.8.0_131 /soft/jdk

2、配置环境变量(/etc/profile)

#java环境变量

export JAVA_HOME=/soft/jdk

export PATH=$PATH:$JAVA_HOME/bin

3、使环境变量生效

source /etc/profile

4、检查jdk安装

java -version

查看进程的方式:

ps -Af //全格式全进程显示

netstat -anop //显示网络进程,全格式全进程

磁盘使用情况:

df -lh

内存使用情况:

free -h

echo $PATH //ok

echo ${PATH} //ok

echo "$PATH" //ok

echo '$PATH' //no

反引号:``

强制命令解析

echo `ls -al /` >> 3.txt

管道符:|

在当前命令的基础上做二次操作

抓取: grep

抓取含有指定内容的行

grep hello 1.txt

ll / | grep txt

for循环用法:

for NAME [in WORDS ... ] ; do COMMANDS; done //将word中的所有单词赋值给name,并通过do命令对逐个name进行操作

for x in `cat 2.txt`; do echo $x; done //分词并逐行打印

for ((i=1 ; i<10 ; i++)); do echo $i; done //普通的for循环

for循环打印99乘法表:

1x1=1

1x2=2 2x2=4

1x3=3 2x3=6 3x3=9

#!/bin/bash

for (( i=1 ; i<=9 ; i++ )) ; do

for (( j=1 ; j<=i ; j++ )) ; do

echo -ne ${j}x${i}=$((j*i))'\t'

done

echo

done

echo :

echo -n //不换行

echo -e //解析分隔符:类似于'\t' '\n' '\r'

脚本中的解释器

sh #!/bin/sh

bash #!/bin/bash

while循环:

while (( $i<10 )) ; do echo $i ; done

#!/bin/bash

i=1

while (( i<10 )) ; do

j=1

while (( j<=i )) ; do

echo -ne ${j}x${i}=$((i*j))'\t'

j=$((j+1))

done

i=$((i+1))

echo

done

if:

整数比较:if [ a -xx b ]

注意:用作赋值时两边不能有空格,用做判断时必须有空格。

= //eq(equal)

> //gt(greater than)

<       //lt(less than)

!= //ne(not equal)

>= //ge(greater equal)

<= //le(less equal)

if [ $i -lt 5 ] ; then echo small ; elif [ $i -eq 5 ] ; then echo equal ; else echo big ; fi

if ((i < 5)); then echo small ; elif [ $i -eq 5 ] ; then echo equal ; else echo big ; fi

&&和||

a && b //a成功后执行b

a || b //a失败后执行b

组合任务:

~]$ (cd ~/ccc; rm -rf *) //不切换目录(运行完后仍在当前目录)

~]$ cd ~/ccc; rm -rf * //切换目录(运行完后切换到了另一目录)

注意:以上运行结果一样

/]# pwd

/]# /

/]# cd /tnp/test; rm -rf *

/]# -bash: /tnp/test, no such file or directory

...

... after for a while ...

...

^c

常用变量:

$# //参数个数

$1 //第几个参数

$0 //当前脚本(命令)名称

$@ //取出所有参数

shift //参数左移

使用tput实现变色:

#!/bin/bash

for (( i=1 ; i<=$1 ; i++ )) ; do

for (( j=1 ; j<=$1 ; j++ )) ; do

if (( i<j )) ; then tput setaf 1 ; elif (( i==j )) ; then tput setaf 3 ; else tput setaf 2 ; fi

echo -ne ${j}x${i}=$((j*i))'\t'

done

echo

done

作业:

使用for和while打印倒三角,并实现隔行变色