linux命令

linux命令

finalshell里面清理屏幕的命令是ctrl + l

跳转到下一条命令,不执行当前命令 ctrl+c

[root@localhost ~]#

  • [当前用户@当初安装虚拟机的主机名]
  • ~是代表当前目录
  • 代表是超级用户

1.ls命令(list files)

后面不加路径默认显示当前目录

  • ls #显示当前目录下所有的非隐藏文件(缺点:隐藏文件看不到)⭐
  • ls -a #显示当前目录下所有文件,包含隐藏文件
  • ls -l #显示当前目录下所有的非隐藏文件的详情(显示文件大小的时候是用字节显示的)⭐
  • ls -al #显示当前目录下所有文件,包含隐藏文件 的详情
  • ls -lh #以列表形式显示当前目录下所有的非隐藏文件的大小(K M T)
  • ls -alh #以列表形式显示所有文件,包含隐藏文件的文件大小(K M T)

常用的组合:

  • ls
  • ll #等价于 ls -l(简写方式)
  • ls /etc #显示/etc目录下的文件⭐

2、pwd命令(print work directory)

用来显示当前所在的路径

  • 绝对路径: 从/目录开始的路径
    /root
    /etc/sysconf
    /opt/server/data-integration/libswt/win64
  • 相对路径: 相对当前的路径

3、mkdir命令(make directory)

  • mkdir mytest #在当前目录创建文件夹mytest

  • mkdir -p aaa/bbb/ccc #一次创建多级文件夹

[root@localhost ~]# mkdir aaa/bbb/ccc
mkdir: 无法创建目录"aaa/bbb/ccc": 没有那个文件或目录
[root@localhost ~]# mkdir -p  aaa/bbb/ccc
[root@localhost ~]# ls
aaa  anaconda-ks.cfg  linux_command
  • mkdir /root/mydemo #使用绝对路径来创建

  • mkdir mydemo2 #使用相对对路径来创建

4、rm命令(remove)

这个命令既可以删除文件,也可以删除目录

  • 删文件:

    • rm a.txt #删除时,会给出提醒确认输入y删除,n不删除

    • rm -f b.txt #强制删除 等价于 rm -f /root/b.txt

    • rm ../dir2/b.txt

    • touch a.java b.java c.java

    rm a.java b.java c.java #一次可以删除多个文件

    • rm *.java -fr #可以删除当前目录下的所有.java文件

    • rm * -fr #删除当前目录的所有内容

  • 删目录:

  • rm -r 111 #删除目录,依次提醒删除

  • rm -rf mytest #强制删除 等价于 rm mytest -fr

常用组合:
rm -fr 文件或目录

5、cd命令(change directory)

cd 命令可以进入一个目录,类似于对windows上的文件夹进行双击

  • cd #直接cd 可以从任何一个目录回到/root目录

    [root@localhost dir1]# cd
    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# 
    
  • cd /root #进入root目录

  • cd /opt/server/data-integration/system/

  • cd .. #回到上一级目录

[root@localhost ~]# cd ..
[root@localhost /]# 
  • cd ../.. #回到上上一级目录
[root@localhost home]# cd aaa
[root@localhost aaa]# cd bbb/
[root@localhost bbb]# cd ccc/
[root@localhost ccc]# cd ../../
[root@localhost aaa]# pwd
/home/aaa
  • cd - #可以在最近的两次目录之间切换
[root@localhost aaa]# cd -
/home/aaa/bbb/ccc
[root@localhost ccc]# cd -
/home/aaa
[root@localhost aaa]# cd -
/home/aaa/bbb/ccc
[root@localhost ccc]# cd -
/home/aaa
  • cd ../test1 #使用相对路径 /中国/广东省/深圳市/宝安区/留仙二路/78号
[root@localhost ~]# ls
anaconda-ks.cfg  a.text  linux_command  test1
[root@localhost ~]# cd linux_command/
[root@localhost linux_command]# cd ../test1
[root@localhost test1]# pwd
/root/test1
[root@localhost test1]# 

注意一点:第一个反斜杠是/文件夹,第二个是分隔符

image-20210731135609793

6、历史命令和table补全

  • 使用上下方向键可以找出历史命令
  • table键:
    • cd /opt/ #两次table可以列出/opt目录下所有的文件和子目录
    • cd /opt/s #一次table可以自动补全目录内容,前提是/opt目录下只有一个s开头的目录

7、touch命令(创建空文件)

  • touch a.java #在当前目录创建a.txt文件(相对路径)
  • touch b.java c.java #创建多个文件
  • touch /root/d.java #通过绝对路径创建

8、mv命令

  • 移动:
    1、mv 文件 目录 #将文件移动到目录中区

    cd /root/dir1
    touch a.txt
    mv a.txt /root/dir2 #等价于 mv a.txt ../dir2

    2、 mv 目录1 目录2 #将目录1移动到目录2下面(前提是目录2必须存在)

    cd /root
    mv dir2 dir1 #将dir2移动到dir1下面

  • 重命名:
    1、mv 文件1 文件2 #给文件重命名(文件2不能存在)
    cd /root
    mv a.txt aaa.txt #将a.txt 重命名为aaa.txt
    2、mv 目录1 目录2 #给目录重命名(目录2不能存在)
    cd /root
    mv dir1 dirx #将dir1重命名为dirx

9、cat命令

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。( 显示文件内容)
cd /root
cat user.txt

10、cp命令

复制文件

  • cp a.txt dir1 #将当前目录的a.txt 复制到dir1 目录,文件名保持不变

    [root@localhost ~]# ls
    anaconda-ks.cfg  a.txt  b.txt  c.txt  dir1  dir2  linux_command  test1
    [root@localhost ~]# cp a.txt dir1
    [root@localhost ~]# ls
    anaconda-ks.cfg  a.txt  b.txt  c.txt  dir1  dir2  linux_command  test1
    [root@localhost ~]# cd dir1
    [root@localhost dir1]# ls
    a.txt
    
  • cp a.txt b.txt #将当前目录的a.txt 内容复制给 b.txt

  • cp a.txt dir1/b.txt #将当前目录的a.txt 内容复制给dir1目录下的 b.txt

11、解压和压缩

image-20210731214917752

​ Linux的压缩包后缀一般是: .tar.gz
tar(英文全拼:tape archive )命令用于备份文件。

​ tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

参数 解释
-c 创建一个新tar文件
-v 显示运行过程的信息
-f 指定文件名
-z 调用gzip压缩命令进行压缩
-t 查看压缩文件的内容
-x 解开tar文件
解压

1.tar -zxvf 压缩文件[-C] [指定解压目录]

示例:

tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录
tar -zxvf redis-3.2.8.tar.gz -C /root/dir  #将文件解压到指定目录

snappy: https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/

输入rz未找到命令

[root@localhost ~]# rz
-bash: rz: 未找到命令

1.输入

[root@localhost ~]# yum -y install lrzsz

成功加载

image-20210731162255999

2.输入rz上传

image-20210731162407924

上传完毕

image-20210731162537678

输入命令解压tar

  • 解压到当前目录
[root@localhost /]# tar -zxvf snappy-1.1.1.tar.gz 

​ 会生成一个同名的文件夹

image-20210731162820193

  • 解压到指定目录

    [root@localhost /]# tar -xvf snappy-1.1.1.tar.gz -C /root
    

2.unzip

.zip格式

故障现象:

image-20210731164211819

解决方法:

如果你使用unzip命令解压.zip文件,提示未找到命令,可能是你没有安装unzip软件,下面是安装方法

[root@localhost www]# yum install -y unzip zip

输入命令unzip解压

  • 解压到当前目录
[root@localhost ~]# unzip mysql-connector-java-8.0.25.zip 
  • 解压到指定目录
[root@localhost ~]# unzip mysql-connector-java-8.0.25.zip /root
压缩
  1. .tar.gz
    tar -c[z]vf

将snappy-1.1.1压缩为snappy-1.1.1.tar.gz

[root@localhost ~]# tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1

也可以将几个散乱的文件压缩到一个里面,比如这个就是将com和META-INF压缩到test.tar.gz

[root@localhost ~]# tar -czvf test.tar.gz com META-INF

将snappy1.1.1解压到root文件夹下,名字重命名为1.tar.gz

[root@localhost ~]# tar -c[z]vf root/1.tar.gz snappy-1.1.1

注:这里这个z可加上也可以不加上,加上表示既打包又进行压缩,如果没有加z表示只进行打包

  1. .zip

    zip -r

    将com和META-INF压缩到test.tar.gz

    [root@localhost ~]# zip -r testzip.zip com META-INF
    

12、find命令

​ 用来实现文件的查找

  • find / -name 'a.txt' #从/目录开始查找a.txt文件

    从根目录开始查找

    [root@localhost ~]# find / -name 'a.txt'
    find: ‘/proc/76454’: 没有那个文件或目录
    /root/a.txt
    /root/dir1/a.txt
    

    如果知道在root可以写/root,缩小查找范围

    [root@localhost ~]# find /root -name 'a.txt'
    /root/a.txt
    /root/dir1/a.txt
    
  • find / -name 'ins*' #从/目录开始查找以ins开头的文件

    find / -name '*.txt' #从/目录开始查找以txt结尾的文件

    find / -name '*of*' #从/目录开始查找包含of的文件

  • find / -type f -size +100M #查找/目录下文件大小大于100M的文件

13、grep命令(查找字符串)

一般很少单独使用,和管道一起使用

grep la anaconda-ks.cfg #从anaconda-ks.cfg文件中查找包含 la 的内容

image-20210731220754775

-color 在查找出的文字上加颜色

14、which

which查看可执行文件的位置

查找cd所在位置

[root@localhost bin]# which cd 
/usr/bin/cd

15、ps命令(process status)

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

  • ps #查看依赖终端的进程,单独使用没啥意义,就是显示ps本身命令和bash当前这个终端

就是类似window里面的这个命令本身

image-20210731221828249
[root@localhost bin]# ps
   PID TTY          TIME CMD
 36858 pts/0    00:00:00 bash
 99695 pts/0    00:00:00 ps
  • ps -ef #查看Linux系统中所有的进程​
image-20210731221618307

16、kill命令

kill -9 进程的pid #每次启动进程时,pid会发生变化,但是进程运行期间pid不会变化

类似window的结束任务

image-20210731222037035

关掉终端

image-20210731222257609

查看所有信号:

[root@localhost bin]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    

这里为什么是-9,是因为9号是SIGKILL

同理可以写 kill -SIGKILL 进程的pid

image-20210731222719663

17、管道 |

管道就是把前边命令的结果作为后边命令的输入

  • ps -ef | grep mysql #查找和mysql相关的进程

    [root@localhost bin]# ps -ef | grep java
    root     118166  36858  0 22:36 pts/0    00:00:00 grep --color=auto java
    

    image-20210731223605188

  • ll /etc | grep java #在/etc目录中查找java相关的文件

18、用户的操作

  • 用户创建和密码设置

    • useradd clean #创建新用户clean,这里说少于6位不用管,再输一遍,创建用户成功

      [root@localhost home]# useradd clean
      [root@localhost home]# passwd clean
      更改用户 clean 的密码 。
      新的 密码:
      无效的密码: 密码少于 8 个字符
      重新输入新的 密码:
      passwd:所有的身份验证令牌已经成功更新。
      [root@localhost home]# ls
      clean
      
    • passwd clean #设置用户clean密码

    登录测试

    创建一个新的连接

    image-20210731224639303 image-20210731224859090
  • 用户删除

    • userdel -r clean#删除用户clean

    在用户clean下删除

    [clean@localhost ~]$ userdel -r clean
    -bash: /usr/sbin/userdel: 权限不够
    

    问题:

    1.关闭clean用户,打开root用户删除但是还是删不掉

    [root@localhost ~]# userdel clean
    userdel: user clean is currently used by process 127807
    

    解决方法:

    kill那个进程之后再删

    2.linux 为什么删除用户,但是home目录下ls仍可以看到用户?

    [root@localhost home]# userdel clean
    userdel:用户“clean”不存在
    [root@localhost home]# ls /home
    clean
    

    解决方法:

    因为你仅删除了用户,可以带参数运行连目录一起删除。
    1,userdel username,删除用户,不删除用户主目录。
    2,userdel -r username,-r表示连用户主目录一起删除。

    3.Linux新建一个相同用户名的用户时提示主目录已存在、信箱文件已存在(Creating mailbox file: 文件已存在)?
    运行环境:
    CENTOS 7

    故障描述:
    在删除用户重新新建一个跟之前用户名相同的用户时,会提示useradd:警告:此主目录已经存在。

    image-20210731230443822

    不从 skel 目录里向其中复制任何文件。
    正在创建信箱文件: 文件已存在

    问题原因:
    在使用find命令查看时,发现有遗留的文件目录没有删除

    image-20210731230542569

    从上面可以看出来, 在Linux下新建一个用户时,系统会默认给这个用户生成一个邮箱目录和宿主目录。而当我们使用userdel 不加任何参数删除用户时,并不会将这两个用户目录删除。

    解决办法:
    在删除一个用户时,在root用户下使用userdel -r 命令删除用户

    [root@localhost lz]# userdel -r clean
    [root@localhost lz]# useradd clean --------没有报错,说明用户目录已全部删除
    

    总结:
    对于新手小白来说,熟悉使用各项命令是不出错的基本条件。
    删除用户时,首先完全退出该用户
    使用userdel -r删除不需要的用户账户

19、文件的权限

文件权限概述

Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、审计授权等操作。操作系统为了识别各个用户,会给每个用户一个ID,即UID。****用户组就相当于多个用户的容器;在linux系统中,每个用户都有一个ID,GID。

在linux系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能够执行任何命令和操作,而其他用户都是普通用户。

  • 所属用户(u): root 文件的创建者
  • 所属用户组(g): root 和文件创建者在一个组的用户
  • 其他用户(o): itcast 既不是文件创建者,也和文件创建者不在同一组
image-20210801082903410 image-20210801083058985

权限:

  • r: 对文件是指可读取内容,对目录是可以ls
  • w: 对文件是指可修改文件内容,对目录是指可以在其中创建或删除子节点(目录或文件)
  • x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录

文件类型:

  • -是指是一个普通文件
  • l是指不是一个文件
  • d是指是一个文件夹

chmod命令:

  • 方式1:
    chmod u+rw a.txt #在所属用户之前的权限基础上添加可读和可写权限
    chmod u=rw a.txt #将所属用户的权限直接修改为可读,可写
    chmod +x #给所属用户,所属用户组和其他用户全部加上可执行权限(没有指定谁就是所有人)

  • 方式2:
    chmod 777 a.txt #给所有用户加上所有权限

    image-20210801084416237
    [root@localhost ~]# chmod 777 a.txt
    [root@localhost ~]# ll a.txt
    -rwxrwxrwx. 1 root root 0 7月  31 14:39 a.txt
    [root@localhost ~]# chmod 666 a.txt
    [root@localhost ~]# ll a.txt
    -rw-rw-rw-. 1 root root 0 7月  31 14:39 a.txt
    [root@localhost ~]# chmod 333 a.txt
    [root@localhost ~]# ll a.txt
    --wx-wx-wx. 1 root root 0 7月  31 14:39 a.txt
    [root@localhost ~]# chmod 000 a.txt
    [root@localhost ~]# ll a.txt
    ----------. 1 root root 0 7月  31 14:39 a.txt
    

一个文件刚创建的时候,默认的权限就是 : 644 (rw-r--r--)

[root@localhost ~]# touch b.txt
[root@localhost ~]# ll b.txt
-rw-r--r--. 1 root root 0 8月   1 08:47 b.txt

20、clear命令

​ 用来清屏
​ 快捷键: ctrl + l

21、history命令

​ 用来查看所有的历史命令

22、vi编辑器的使用

vi介绍:

vi编辑器是visual interface的简称,是Linux里面最经典的文本编辑器

vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作

vi的特点:

  1. 只能是编辑文本内容,不能对字体段落进行排版
  2. 不支持鼠标操作
  3. 没有菜单
  4. 只有命令

vi编辑器的三种模式

三种模式:

  • 命令行

  • 插入

  • 底行模式
    image-20210801104424897

  • ​ vi a.txt #打开a.txt文件

  • ​ vi a.txt +10 #打开a.txt文件,并定位到第10行

vi和vim的区别:

  • vi打开界面:

image-20210801092652476

  • vim打开:自动识别语法加颜色
image-20210801092730649

vim a.txt #vim是vi的增强
​-bash: vim: 未找到命令,输入

yum -y install vim*

23、网络管理命令

  • hostname :查看主机名
[root@localhost ~]# hostname
localhost.localdomain
  • 修改主机名: /etc/hostname

  • ifconfig :查看ip地址

类别 IP地址 子网掩码
A类 118.xxx.xxx.xxx 255.0.0.0
B类 156.147.xxx.xxx 255.255.0.0
C类 192.168.88.xxx(2~254) 255.255.255.0
  • 修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33

  • 服务问题:

    • service network restart #重启网络服务

    • service network stop #停止网络服务

    • service network status #查看网络服务状态

    • service network start #启动网络服务

ln命令可以用来创建软连接,类似于创建快捷方式,windows里的创建快捷方式,实际上就是把这个快捷方式指向一个文件

image-20210801090107848

命令格式:

ln[参数][源文件或目录][目标文件或目录]

参数:

  • -s软连接

  • -d 允许超级用户制作目录的硬链接

创建2.txt的快捷方式kuaijiefangshi.txt ,查看之后可以发现kuaijiefangshi.txt指向1.txt

[root@localhost ~]# ln -s 2.txt   kuaijiefangshi.txt
lrwxrwxrwx. 1 root root       5 8月   1 09:05 kuaijiefangshi.txt -> 2.txt

访问快捷方式就跟访问源文件一样,vim之后显示的是相同的。

创建快捷方式是一个锦上添花的作用,简化操作不用跑那么深去修改文件

[root@localhost ~]# ln -s  /etc/sysconfig/network-scripts/ifcfg-ens33 ipconfig_file
posted @ 2021-08-01 22:48  记录学习Blog  阅读(380)  评论(0编辑  收藏  举报