Linux系统的一些常用命令

目录

文件目录结构:

例如:注意linux系统里的目录结构是一颗倒立的树

Linux系统的一些常用命令_第1张图片

从 根目录(/)下自下而上

举个例子吧:

以老师给的题目为例 

1.在根目录下建立china 和world文件夹

2.再者在world目录下建立china Russia Israel Ukraine

3.再在每个目录下建立子目录

Linux系统的一些常用命令_第2张图片

注意:ls 命令是可以查看文件夹的

cd .. 这个命令是可以进入上一级目录的(好用,当你不记得自己的目录名字时)

你也可以是使用   cd  上一级目录名

通过这个命令下载tree

如果你是ubantu系统就用 apt install

[root@jumpserver ~]# cd  /  进入根目录
[root@jumpserver /]# cd  ~  进入家目录

虚拟机关机命令 

init 0


基本命令:

提示:主要写了一些常用的命令

例如:

  1. [root@localhost /]# ls
    [root@localhost /]# cd world   #表示进入world文件夹
    [root@localhost changsha]# pwd #表示查看changsha这个文件夹的路径(目录)
    [root@localhost china]# yum   install   tree  -y
    #表示下载东西 yum命令实现 install# 安装  后面接的是文件名  -y(表示不在询问)
    #询问的话:y  yes
    #n  no
    #d  download  下载
    
    
    ip   add  查看ip地址
    cat  查看文件内容
    
  2. 增删改查
    touch  wang.txt
    #创建另一个名字为wang的空文件
    
    例子:
    [root@jumpserver ouyang]# file   changsha.txt  查看文件的类型
    changsha.txt: empty
  3. rm -rf   文件名    强制删除   (-r 递归删除  -f 强制删除)

    rm
     rm - remove files or directories  ---》非常危险的命令    

     -r
             -r, --recursive
                  remove directories recursively   --》株连九族
     -f
           -f, --force  强制删除,不给予提醒
                  ignore nonexistent files and arguments, never prompt
                  prompt 提醒、提示

  4. cp -r (递归复制 越过文件夹,从一个文件夹到另一个文件夹)   
  5. 任何命令的多种用法自己不清楚的话可以看man +命令名Linux系统的一些常用命令_第3张图片

linux系统里以.开头的文件是隐藏文件

[root@localhost world]# ls -l
total 0
drwxr-xr-x. 3 root root 21 Nov 19 22:53 china
drwxr-xr-x. 2 root root  6 Nov 19 22:51 Israel
drwxr-xr-x. 3 root root 20 Nov 19 22:54 Russia
drwxr-xr-x. 3 root root 18 Nov 19 22:54 Ukraine
-rw-r--r--. 1 root root  0 Nov 19 23:52 wang.txt

d 代表文件的类型是目录  directory
- 代表是普通的文件
rwxr-xr-x 代表文件的权限    
    r 读  read
    w 写  write
    x 执行  execute  执行理解为运行
    -  没有权限
rwx  用户  user
r-x  组    group
r-x 其他人  others

#file命令

[root@localhost world]# file
Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
            [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
       file -C [-m magicfiles]
       file [--help]
[root@localhost world]# file wang.txt
wang.txt: empty

#输出命令

echo 是输出字符串或者变量的值得命令,类似于c语言里的printf
     在屏幕上输出内容(字符串)

[root@jumpserver gaohui]# echo  "hello,world"
hello,world

#查看文件大小

du 是统计文件或者文件夹的大小

"du"是"disk usage"的缩写,用于显示文件或目录所占用的磁盘空间大小

du -sh # 表示汇总人类可读的文件

#通配符

*通配任意字符

?通配一个字符

位置也会影响

例子:?wlb      这个会在wlb前面通配一个字符

          wlb           这个会在wlb的后面通配一个字符

同理*wlb        也是在wlb前面通配任意个字符

touch 生成空文件

mv 剪切(移动)和重命名  

which #查看命令地址,
path变量

变量:  variable  
    局部变量
    全局变量(环境变量)
    环境: environment  --》全局 
    预定义: 操作系统安装好就预先定义好的变量--》大写的
varname=value


虚拟机流程:

例如:

1.第一提示符内容:[root@localhost world]#

使用set查看所有变量:PS1='[\u@\h \W]\$ '

\ u 是用户名\h 主机名 \W 工作目录名 \$ 分割提示图[]

2.设置主机名

[root@localhost world]# hostnamectl set-hostname wangyalin
[root@localhost world]# passwd
Changing password for user root.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
切换用户 su -  用户名

[root@localhost world]# su - root

显示改好后的主机名

[root@wangyalin ~]# 

3.添加用户

useradd wyl

[root@wangyalin ~]# useradd wyl
设置好密码后就用su来切换

注意:sudo#给普通用户夹root权限,相当于古代的钦差大臣

[root@wangyalin ~]# id wyl
uid=1000(wyl) gid=1000(wyl) groups=1000(wyl)

 查看是否存在这个用户,显示用户的信息   --》判断用户是否存在
uid=1005(zhujunxue) gid=1005(zhujunxue) 组=1005(zhujunxue)
uid  user id 用户的id号  
id 标识符
身份证  id card
gid  group id  组id  

4.用户管理的命令

useradd   添加用户

su  切换用户

ecit  退出用户

5.文件和文件夹操作类

mkdir #建立文件夹

touch#建立空文件

file# 查看文件

cd  Linux系统的一些常用命令_第4张图片

pwd#查看文件路径

alias#  查看linux系统有哪些别名

定义别名
    1.命令的简称
    2.自己造一个命令

    自己定义的别名的名字,不能和linux系统里已经有的命令冲突,如果冲突,会导致已有的命令不能使用

root@wangyalin /]# alias mk='mkdir -p' 

[root@wangyalin /]# mk wang
[root@wangyalin /]# ls
bin    dev   lib    mnt   root  srv   tmp  wang
boot   etc   lib64  opt   run   sys   usr  world
china  home  media  proc  sbin  test  var
 

unalias#取消别名


vim编辑器:

1.vim是vi的升级款

2.bash 是linux里的命令解释器

-c  是选项,后面可以指定告诉bash需要执行的命令

sudo bash -c "cat << EOF > /etc/apt/sources.list && apt update
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF"

command1  &&  command2   command1命令执行成功就执行command2

3.ln 创建链接文件(快捷方式)
    link
     ln - make links between files
     -s  软链接(符号链接)
             symbol
       -s, --symbolic

      -f, --force
              remove existing destination files


              make symbolic links instead of hard links
软链接: 删除源文件会导致链接文件不能使用 --》快捷方式,文件和文件夹都可以创建
硬链接: 删除源文件会,链接文件可以使用,不能给文件夹创建

[root@fengdeyong test]# ln  -s  wangyalin.txt    wyl.txt     创建链接文件wyl.txt指向wangaylin.txt
                                                      源文件           链接文件
======
     1.文件链接
     2.文件夹链接

ll

执行"ll"命令的示例输出,该命令用于列出指定目录中的文件和子目录,并且会显示每个文件/目录的详细信息。

pwd 查看文件/文件夹的路径

pwd -P  显示链接文件真正的物理路径

-P, --physical

4.| 管道符号:  作用将前面一个命令的输出送给后面一个命令作为输入 --》中间人
             管道 pipe:是进程和进程之间通信的一种方式,命令在运行的时候,就是产生一个进程

5.在xshell编程,赋值变量是一定不能在‘=’左右有空格

[root@wangyalin wang]# x = 1
bash: x: command not found
这是因为他会认为你这个x是一个命令

6.输出变量[root@wangyalin wang]# sg=wangyalin
[root@wangyalin wang]# echo sg
sg
[root@wangyalin wang]# echo $sg
wangyalin
[root@wangyalin wang]# 

echo  用于输出内容
$接变量名就是引用变量的值

7.PATH

PATH变量里定义的是存放可执行文件的目录的名字,从左边的目录开始查找,找到了,就不往后面查找,如果没有找到,就从第2个目录里查找,以此类推

[root@wangyalin wang]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

8.破坏PATH变量会导致linux系统找不到命令,解决方法:定义一个正确的路径

用老师这个为例子:

[root@fengdeyong bin]# which fengdeyong
/usr/bin/which: no fengdeyong in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@fengdeyong bin]# PATH=FENGDEYONG
[root@fengdeyong bin]# ls
-bash: ls: 未找到命令

永久修改PATH变量
[root@fengdeyong ~]# vim /root/.bash_profile 

Linux系统的一些常用命令_第5张图片

root@wangyalin ~]# echo $PATH
/test:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

9.修改配置文件后,让其生效的方法:
1.重新登录
[root@fengdeyong ~]# su - root 重新登录就会生效
上一次登录:六 11月 18 14:43:01 CST 2023pts/3 上
[root@fengdeyong ~]# echo $PATH
/test:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@fengdeyong ~]# 
2.执行脚本文件
[root@fengdeyong ~]# source   /root/.bash_profile   在当前终端里执行脚本/root/.bash_profile --》在当前终端里执行,在父进程里执行
[root@fengdeyong ~]# 
[root@fengdeyong ~]# PATH=/test:$PATH  临时立马生效
[root@fengdeyong ~]# echo $PATH
/test:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@fengdeyong ~]# :

10.Linux系统的一些常用命令_第6张图片import 导入
export 导出,输出 --》输出这个变量为全局变量(环境变量)
export PATH  
   父进程里的变量是局部变量,在产生子进程的时候,子进程不能使用
这里还有单双引号的区别: 单引号是直接输出引号里的值,而双引号是可以引用地址的

[root@wangyalin ~]# sg=123
[root@wangyalin ~]# mn=456
 

[root@wangyalin ~]# ls
anaconda-ks.cfg  hello.sh
[root@wangyalin ~]# bash hello.sh
hello.sh: line 1: echo $sg: command not found
$mn
hello,world
[root@wangyalin ~]# vim 
Linux系统的一些常用命令_第7张图片

[root@wangyalin ~]# bash hello.sh


hello,world

#这里显示不出来sg mn 的值

需要用到export命令

[root@wangyalin ~]# export sg mn

[root@wangyalin ~]# bash hello.sh
123
456
hello,world
[root@wangyalin ~]# source hello.sh

11.案例

案例:
    编写一个自己的c语言程序,然后去执行它
1.编写myhello.c文件

[root@wangyalin myapp]# vim myhello.c
[root@wangyalin myapp]# ls
myhello.c

[root@fengdeyong myapp]# gcc  -o myhello   myhello.c   将myhello.c文件编译成myhello二进制文件
-o  指定输出的二进制文件的名字 output file

[root@wangyalin myapp]# ./myhello
I am wangyalin
hello,world


2.适应世界(顺应PATH变量)

[root@fengdeyong myapp]# PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin#老师把他的变量改回
[root@fengdeyong myapp]# ls
myhello  myhello.c
[root@wangyalin myapp]# cp myhello /bin  将我们编写的程序二进制文件复制到/bin

[root@fengdeyong myapp]# which myhello
/bin/myhello

[root@wangyalin myapp]# myhello#相当于执行这个命令
I am wangyalin
hello,world
 

find

find  可以到整个linux系统里去寻找文件或者文件夹

请查找出/test目录下文件名里以.log结尾的文件,大小大于10M文件 ,并且复制到/backup目录下
mkdir  /backup
find  /test
[root@fengdeyong test]# touch feng{1..100}.log
find  /test  -name  "*.log"  -size +10M  -type f  -exec cp  {}   /backup  \;
[root@fengdeyong test]# find  /test  -name  "*.log"  -size +10M  -type f  -exec rm -rf {} \;
[root@fengdeyong test]# find  /test  -name  "*.log"  -size +10M  -type f  -exec mv {} /backup \;


 {}  代表前面的find查找到的文件--》类似于一个占位符
 \; 代表find命令的结束
exec   是执行命令  execute
[root@fengdeyong test]# find  /test  -name  "*.log"  -size -10M  -type f   -ok  rm -rf {} \;
< rm ... /test/feng1.log > ? y
< rm ... /test/feng2.log > ? y
< rm ... /test/feng3.log > ? ^C
[root@fengdeyong test]# find  /test  -name  "*.log"  -size -10M  -type f   -exec rm -rf {} \;


精准匹配
模糊匹配
[root@fengdeyong myapp]# find / -name "*hello*"
find命令
用途:用于查找文件或目录
格式:find  [查找范围]  [查找条件] [动作]
常用查找条件
-name:按文件名称查找
-iname:按文件名称查找,不区分大小写
-size:   按文件大小查找
        +10k  大于10k      k--》M-->G
        -10k
-user:  按文件属主查找
        root
        wang

-type:  按文件类型查找
    f  普通的文件 file
    d  文件夹  directory
    l  链接文件  link
    p  管道文件  pipe
    c  字符设备文件 character
    b  块设备文件  block
    s  socket文件

-perm :按文件权限查找
-mtime :按文件更改时间查找
        修改文件的时间  modify time
        +7  7天前修改了文件内容   n*24小时  --》以天为单位
        -7  7天内修改了文件内容

-mmin  修改时间以分钟为单位统计  modify  minute
        +20  20分钟以前
        -20  20分钟以内

-newer:按比某个文件更新的查找

12.逻辑非  -not  !

.逻辑与  -a  and
逻辑或 -o  or  

优先级由上至下

13 查看文件的状态信息

 [root@wangyalin myapp]# stat myhello
  File: ‘myhello’
  Size: 8360          Blocks: 24         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 17305377    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-11-20 06:24:36.643336172 -0500
Modify: 2023-11-20 06:24:13.918666624 -0500
Change: 2023-11-20 06:24:13.918666624 -0500
 Birth: -

               

你可能感兴趣的:(linux,linux,github,运维,vim)