Linux基礎

Linux

  • 一、基礎
    • 01- 執行環境準備
    • 02- linux的版本分類
      • 02.1 內核版本
      • 02.2 發行版本
      • 02.3 內核和發行版本的區別:
    • 03- 虛擬機安裝
    • 04- 啟動linux
  • 二、系統操作
    • 05- 幫助命令
      • 05.1 man 幫助
      • 05.2 help 幫助
        • 05.2.1 內部命令
        • 05.2.2 外部命令
      • 05.3 info 幫助
    • 06- ls命令
      • 06.1 -r
      • 06.2 -rt
      • 06.3 -R
      • 06.4 -a
    • 07- cp
    • 08- 文本查看命令
      • 08.1 cat
      • 08.2 head
      • 08.3 tail
      • 08.4 wc
    • 09- 打包壓縮 和 解壓縮
      • 09.1 打包壓縮
        • 09.1.1 先打包,后壓縮
        • 09.1.2 直接打包并壓縮
      • 09.2 解壓縮
    • 10- 文本編譯器vi
      • 10.1 正常模式 normal mode
      • 10.2 插入模式 insert mode
      • 10.3 命令模式 command mode
        • 10.3.1 復制
        • 10.3.2 刪除
        • 10.3.3 光標移動
      • 10.4 可視模式 visual mode
        • 10.4.1 v 字符可視模式
        • 10.4.2 V 行可視模式
        • 10.4.2 ctrl V 塊可視模式
    • 11- 用戶和用戶組管理及密碼管理
      • 11.1 用戶
      • 11.2 用戶組
    • 12- su
      • 12.1 普通用戶 切換到 root
        • 12.1.1 su
        • 12.1.2 su -
      • 12.2 root 切換到 普通用戶tester
        • 12.2.1 su
        • 12.2.2 su -
    • 13- sudo
    • 14- 文件與目錄權限的表示方法
      • 14.1 類型
      • 14.2 權限
        • 14.2.1 對于文件
        • 14.2.2 對于目錄
      • 14.2 chmod
      • 14.3 chown
  • 三、Shell
    • 15- 什么是shell
    • 16- 執行腳本的不同方式
      • 16.1 bash filename.sh
      • 16.2 ./filename.sh
      • 16.3 source ./filename.sh
      • 16.4 . filename.sh
    • 17- 管道
    • 18- 重定向
      • 18.1 輸入重定向
      • 18.2 輸出重定向
      • 18.3 錯誤輸出重定向
      • 18.4 輸出(不管錯誤還是正確)重定向
    • 19- 變量
      • 19.1 定義
      • 19.2 變量賦值
      • 19.3 變量的引用
      • 19.4 取變量值
      • 19.5 變量的作用范圍
      • 19.6 環境變量
      • 19.7 預定義變量
      • 19.8 位置變量
    • 20- 數組
    • 21- 運算符
      • 21.1 expr 用于整數值計算
      • 21.2 let
    • 22- 特殊字符之 括號
      • 22.1 圓括號 () 和 (())
      • 22.2 方括號 [] 和 [[]]
      • 22.3 尖括號 重定向符號 <>
      • 22.4 花括號 {}
    • 23- expr
      • 23.1 用expr計算一個整數運算
      • 23.2 用" ` `"(兩個反引號) 將計算的結果賦值給新的變量
      • 23.3 用 $() 將計算的結果賦值給新的變量
    • 24- for的使用
    • 25- 使用循環處理未知參數
    • 26- 腳本優先級控制
    • 27- 一次性計劃任務
    • 28- 周期性計劃任務
    • 29- 如果數據不能按照預期時間運行
      • 29.1 延遲計劃任務
      • 29.2 flock 鎖文件
  • 三、文本操作篇
    • 30- find
      • 30.1 find 目錄 -name 文件名
      • 30.2 find 目錄 -regex 文件名
      • 30.3 find 目錄 -type x -regex 名字
      • 30.4 find 目錄 -xtime xxx

一、基礎

01- 執行環境準備

常見的有三種:

1、云主機 (阿里云騰訊云)
2、無數據的PC(不推薦多系統混跑)
3、虛擬機(推薦) (在windows/mac上安裝虛擬機) (可以隨時讓虛擬機停下來)

02- linux的版本分類

02.1 內核版本

版本號 由 主版本號、次版本號、末版本號 組成
如 5.0.15
(次版本號是奇數為開發版,偶數為穩定版)
https://www.kernel.org

02.2 發行版本

開源的,經常見到的發行版本有5種

02.2.1 RedHat Enterprise Linux
軟件經過專業人員測試,有部分要收費

02.2.2 Fedora
通過組建社區來免費提供操作系統,沒有專業測試,不穩定

02.2.3 CentOS
基于RedHat Enterprise 源代碼編譯的, 免費
(結合上面兩個操作系統)

02.2.4 Debian
為linux定制了華麗的界面

02.2.5 Ubuntu
為linux定制了華麗的界面

02.3 內核和發行版本的區別:

內核版本安裝完成后沒有用戶界面和軟件,是提供硬件抽象層、硬盤以及文件系統控制的核心程序
(linux核心只有內核部分,安裝完后,用戶界面/軟件都沒有。內核是系統的心臟,是linux中最基層的代碼)

發行版本是在內核的基礎上加入了用戶界面和各種軟件的支持
(linux發行版,就是在內核的基礎上,加入用戶界面,各種軟件的支持。比如CentOS、小紅帽等等。在內核的基礎上,開發不同應用程序,組成的一個完整的操作系統)

03- 虛擬機安裝

推薦 安裝VirtualBox虛擬機,然后在虛擬機中安裝linux系統

04- 啟動linux

登錄的shell(終端)

圖形終端
命令行終端
遠程終端(SSH、VNC)

二、系統操作

05- 幫助命令

05.1 man 幫助

man + 命令名稱

man ls

05.2 help 幫助

1、首先用type來檢測命令是內部還是外部命令

type + 命令名稱

如果顯示 xx is a shell builtin , 這說明是內部命令

如果顯示 xx is aliased to ls --color=auto , 這說明是外部命令

比如type cd
cd is a shell builtin
說明 cd 是 內部 命令type ls
ls is aliased to `ls --color=auto'
說明 ls 是 外部 命令

05.2.1 內部命令

help + 命令名稱

help cd

05.2.2 外部命令

命令名稱 --help

ls --help

05.3 info 幫助

info 命令名稱

info ls

linux基本操作命令是命令行

06- ls命令

06.1 -r

r(reverse) 意為逆向(配合-l使用)

06.2 -rt

ls -l -r          `默認是按照文件名逆向顯示的`
ls -l -r -t       `按照時間逆向顯示`

06.3 -R

06.4 -a

ls -R        遞歸顯示文件以及文件夾
ls -a        顯示隱藏文件

07- cp

cp -v     顯示復制的進度條
cp -p     復制時保留原有時間
cp -a     復制時保留原有所有屬性 時間 屬組屬主 權限

08- 文本查看命令

08.1 cat

08.2 head

08.3 tail

cat 文件名              # 顯示文件內容head -行數 文件名       # head -5 fileA     顯示文件前5行內容tail -行數 文件名       # tail -5 fileA     顯示文件最后5行內容tail -f 文件名          # 當文件內容發生變化,同步更新 比如會實時刷新的日志文件

08.4 wc

wc -l 文件名            # 用來 查看文件行數

09- 打包壓縮 和 解壓縮

09.1 打包壓縮

壓縮---> 打包+壓縮

打包是指將一大堆文件或目錄變成一個總的文件
壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件

09.1.1 先打包,后壓縮

1). 打包命令 cvf

將dirA 打包為 dirA.tar

tar -cvf dirA.tar dirA

2). 壓縮 分兩種 gzip 或 bzip
gzip xxx.tar

gzip dirA.tar

09.1.2 直接打包并壓縮

將dirA 壓縮為dirA.tgz (tar.gz是tgz的簡稱)

tar -czvf dirA.tgz dirA/
tar -czvf dirA.tar.gz dirA/

將兩個文件夾壓縮成一個tgz

tar -czvf dirAB.tgz dirA/ dirB/

bzip打包壓縮
tar -cjvf dirA.tbz2 dirA
tar -cjvf dirA.tar.bz2 dirA

09.2 解壓縮

解包

tar -xvf dirB.tar -C ./dir      # -C 后面的./dir為 執行解的包放的位置

解壓縮

tar -xzvf dirB.tgz -C ./B
tar -xjvf dirB.tar.bz2 ./B

10- 文本編譯器vi

vim 是一個同vi向上兼容的文本編輯器

10.1 正常模式 normal mode

10.2 插入模式 insert mode

有以下從正常模式到插入模式的 進入方式

i			# 光標處的前一個字符進入
I			# 光標處的當行某個字符前進入a 			# 光標處的下一個字符進入
A 			# 光標處的當行末尾字符后進入o 			# 光標處的下一行進入
O 			# 光標處的上一行進入

10.3 命令模式 command mode

10.3.1 復制

yy  		復制當前行
5yy 		復制從當前開始的5行
y$ 			復制該行中從當前光標開始到結尾的字符

10.3.2 刪除

dd  		刪除當前行
5dd 		刪除從當前開始的5行
d$  		刪除該行中從當前光標開始到結尾的字符x			刪除光標所在的字符
r			按r后輸入要替代的字符

10.3.3 光標移動

g			移動到文本第一行
G			移動到文本最后一行^			移動到當前行最開頭
$			移動到當前行最末尾

10.4 可視模式 visual mode

10.4.1 v 字符可視模式

以字符來選擇

10.4.2 V 行可視模式

以行來選擇

10.4.2 ctrl V 塊可視模式

選的是上下對齊的塊
適用于刪除或增加一整塊字符

1. 刪除

按ctrl v
鍵盤上下左右選擇要刪的字符塊
按 d
被選中的字符塊就被刪掉了

2. 增加

ctrl v
鍵盤上下移動光標 選擇要添加字符塊的行
按 I (也就是shift i)(光標指向被選字符塊的首行首字符)
輸入要增加的字符 (比如 output:)
按兩次esc
被選中的字符塊的每行前面就會加上剛才新增的字符

11- 用戶和用戶組管理及密碼管理

11.1 用戶

新建用戶 useradd
刪除用戶 userdel
修改用戶密碼 passwd
修改用戶屬性 usermod
  1. usermod -d /new/work/directory username
    將username用戶的家目錄改為 /new/work/directory

  2. chage
    更改用戶密碼過期信息

  3. id username
    查看用戶的 uid gid group

11.2 用戶組

usermod -g 用戶組1 用戶1
將 用戶1 的 組 改為 用戶組1

su -
當前用戶為root, 但要臨時切換到普通用戶下測試某功能,測試完成后恢復到原來的root用戶

12- su

su 命令用來做 root和普通用戶的相互切換 切換用戶

切換到root : su 后面 可加 可不加 root
切換到tester : su 后面 必須加 tester

tester是舉的一個普通用戶的例子

12.1 普通用戶 切換到 root

12.1.1 su

$ pwd    查看當前目錄為 /home/tester$ su     輸入root用戶密碼顯示
# pwd    # 井號說明已經進入root用戶了,  查看當前目錄為 /home/tester

用 su 切換到了root 身份,但shell環境仍然是普通用戶的shell
工作目錄仍然是普通用戶的工作目錄

12.1.2 su -

$ pwd      查看當前目錄為 /home/tester$ su -     輸入密碼顯示
# pwd     # 井號說明已經進入root用戶了,  查看當前目錄為  /root

用 su - 切換到了root 身份,shell環境也切換到root的shell
工作目錄變成了root的工作目錄

12.2 root 切換到 普通用戶tester

12.2.1 su

12.2.2 su -

# pwd       # 井號說明當前是root用戶,  查看當前目錄為 /root# su tester     shell環境仍然是root,   查看當前目錄為 /root# su - tester   shell環境也切換到普通用戶,  查看當前目錄為 /home/tester

13- sudo

sudo 將某些只有root用戶可以執行的命令授權給普通用戶,普通用戶就可以在不知道root密碼時執行root指定的命令
sudo 是 以自己的身份執行其他用戶的指令, 如以普通用戶身份執行root用戶的指令

比如 只有root用戶才能執行關機操作,但如果希望普通用戶也可以執行關機,兩種方法

方法一: 告訴普通用戶root的密碼(不安全,不推薦)
方法二: 使用sudo 命令(推薦)

使用sudo 命令的操作方法

  1. 首先在root下配置哪些命令可以被哪些用戶執行
    root用戶下 執行visudo
    添加如下內容 來 賦予 普通用戶1 的shutdown 命令

普通用戶1 ALL=/sbin/shutdown

  1. 執行sudo 命令來 做被配置的root下的shutdown 命令
    sudo shutdown -h

14- 文件與目錄權限的表示方法

0 123 456 789 xxxx xxxxxx xxxxxxxx
類型 <–權限–> 大小 時間 文件名

14.1 類型

  • 普通文件
    d 目錄
    b 塊特殊文件
    c 字符特殊文件
    l 符號鏈接
    f 命名管道
    s 套接字文件

14.2 權限

-rw-r-xr--. 1 tester tester   11 Jul  6 17:19 test.sh
權限一共占9個位數,所以用了1-9來表示位數

123 456 789
abc def ghi
權限

abc 文件屬主的權限(用戶的權限)
def 文件屬組的權限(用戶組的權限)
ghi 其他用戶的權限(其他人的權限)

14.2.1 對于文件

r 讀   r=4
w 寫   w=2
x 執行 r=1

-rw-r-xr–. 1 tester tester 11 Jul 6 17:19 test.sh
即表示
屬主權限為rw- ,數字表示為6, 屬主有讀和寫權限
屬組權限為r-x ,數字表示為5, 屬組有讀和執行權限
屬主權限為r-- ,數字表示為4, 其他用戶有讀權限

notes
對于test.sh 文件,表示屬主沒有執行權限,屬組有執行權限
經測試,屬主不能執行

14.2.2 對于目錄

x  進入目錄
rx 顯示目錄內的文件名
wx 修改目錄內的文件名

14.2 chmod

原文件 -rw-r-xr–. 1 tester tester 11 Jul 6 17:19 test.sh

chmod 修改文件、目錄 權限
可以對權限進行 增加 減少 或 直接設置

用字符表示方法

u 對屬主設置
g 對屬組設置
o 對其他設置
> 對屬主 增加執行權限 chmod u+x test.sh> 對屬組 減少執行權限 chmod g-x test.sh> 對其他 設置為執行權限 chmod o=x test.sh> 對屬主 屬組 其他 都增加讀取權限 chmod a+r test.sh> 對屬主 屬組 其他 都增加讀寫執行權限 chmod a+r+w+x test.sh> 用數字表示方法  為所有屬性 都增加讀寫執行權限 chmod 777 test.sh

14.3 chown

chown 來 修改屬主(owner)、屬組(group)

Examples:

  chown root /u        Change the owner of /u to "root".   將/u的 屬主 更改為“root”chown :staff /u      Change the group of /u to  "staff".  將/u的 屬組 更改為“staff”chown root:staff /u  Likewise, but also change its group to "staff".  將/u的 屬主 更改為“root”, 也將其屬組更改為“staff”chown -hR root /u    Change the owner of /u and subfiles to "root".  將/u和子文件的 屬主更改為“root”

三、Shell

15- 什么是shell

shell是命令解釋器,用于解釋用戶對操作系統的操作

shell把用戶執行的命令翻譯給內核, 內核根據命令執行的結果,再把結果反饋給用戶

CentOS 7 默認使用的shell是bash

16- 執行腳本的不同方式

有一個內容如下的文件 /home_local/tester/testMethods.sh 來檢測不同的執行方式的異同

#!/bin/sh
pwdcd /home

16.1 bash filename.sh

在當前的終端上產生一個bash的子進程, 在子進程里執行腳本,執行完成后回到父進程
使用這種方式執行, 發現雖然沒有執行權限, 但也可以執行

腳本中顯示cd到了/home目錄, 但是執行完成后又回到了原來的目錄

執行
bash testMethods.sh結果
/home_local/tester
/home查看 pwd
/home_local/tester

16.2 ./filename.sh

產生子進程,用#! (Sha-Bang)來解釋腳本
使用這種方式執行, 沒有執行權限時是不能執行的

腳本中顯示cd到了/home目錄, 但是執行完成后又回到了原來的目錄

先給腳本添加可執行的權限
chmod 777 testMethods.sh執行
./testMethods.sh結果
/home_local/tester
/home查看 pwd
/home_local/tester

16.3 source ./filename.sh

在當前的進程中執行
雖然沒有執行權限, 但也可以執行
腳本中顯示cd到了/home目錄, 最終當前目錄是/home
會對當前環境造成影響

執行
source ./testMethods.sh結果
/home_local/tester
/home查看 pwd
/home

16.4 . filename.sh

在當前的進程中執行
雖然沒有執行權限, 但也可以執行
腳本中顯示cd到了/home目錄, 最終當前目錄是/home
會對當前環境造成影響

執行
. testMethods.sh結果
/home_local/tester
/home查看 pwd
/home

17- 管道

管道:用于進程通信

管道符 |
將前一個命令執行的結果傳遞給后面的命令

(將前一個命令的輸出作為后一個命令的輸入)
同時會為兩個命令創建子進程

18- 重定向

將輸出到 標準輸出中的內容 輸出到 文件

18.1 輸入重定向

wc -l filename.sh  顯示文件行數
wc -l  然后在頁面中輸入任意幾行信息,按ctrl D 停止輸入, 結果顯示輸入信息的行數
wc -l < filename.sh  顯示文件行數, 用文件代替用戶輸入
輸入
wc -l testMethods.sh顯示
6 testMethods.sh
輸入
wc -l < testMethods.sh顯示
6

18.2 輸出重定向

echo "xxx" > filename.sh        覆蓋
echo "xxx" >> filename.sh       追加

18.3 錯誤輸出重定向

18.3.1 輸入一條不存在的命令 nocmd, 控制行下方顯示錯誤
bash: nocmd: command not found…

18.3.2 將錯誤輸出重定向到 err.txt
nocmd 2> err.txt

查看err.txt
cat err.txt
bash: nocmd: command not found…

18.4 輸出(不管錯誤還是正確)重定向

nocommand &> all.txt

輸出到標準輸出的輸出到文件

19- 變量

19.1 定義

有意義的變量名
不區分類型

19.2 變量賦值

為變量賦值的過程,稱為變量替換

1) 變量名=變量值  [等號左右不能出現空格]
value=2332) 使用let為變量賦值    [通常let用來計算]
let value=10+333) 將命令賦值給變量
通常是把命令的值賦給變量
l=ls4) 將命令結果賦值給變量,使用$() 或``
let c=$(ls -l /etc)
let c=`ls -l /etc`newed_file=`ls *.html -t | head -1`        # 取當前目錄下最新的一個 *.html文件
bak_file="${newed_file%.*}_`date +"%y%m%d%H%M"`"  # 名字后加時間戳5) 變量值有空格等特殊字符可以包含在 "" 或 ''string1="hello world"
string2='hello "world"'

19.3 變量的引用

${變量名} 也可以 $變量名

19.4 取變量值

echo ${變量名}
echo $變量名

19.5 變量的作用范圍

變量的默認作用范圍 只針對當前的shell(終端)有效

如果在當前的shell產生新的子shell,或者是當前shell的平行shell或父shell,都是無效的

step1: 舉個例子 命令行中給一個變量賦值

demo_var=333

step2: 然后在一個腳本中調用該變量,并打印值
文件名 testDemo.sh

#!/bin/sh
echo demo_var=$demo_var

step3: 用兩種在當前shell執行的執行方式來執行

source test07.sh        #執行結果       demo_var=333
. test07.sh             #執行結果       demo_var=333

可以獲取到該變量的值

step4: 用兩種會創建子進程的執行方式來執行

bash test07.sh          #執行結果       demo_var=
./test07.sh             #執行結果       demo_var=

發現并不能獲取到該變量的值

改變變量的默認作用范圍 用 export
export: 希望在子進程父進程以及其他shell中可以讀到當前shell中定義的變量時, 使用export

在命令行中加上
export demo_var

step5: 加上export后 然后用兩種會創建子進程的執行方式來執行

bash test07.sh          #執行結果       demo_var=333
./test07.sh             #執行結果       demo_var=333

可以獲取到該變量的值

step6:當不使用變量了,可以對變量刪除, 使用unset

unset demo_var

19.6 環境變量

把變量保存在系統中,使它成為環境變量

環境變量:每個shell打開都可以獲取到的變量

1)現有的環境變量有哪些
用 env 查看

env
用echo $xxx 來輸出值

2) 當前目錄的搜索路徑

echo $PATH

我們在執行 ls echo 這類命令時, 前面是沒有帶路徑的,這些命令都沒有在當前路徑,
linux就是通過 $PATH 這個搜索路徑來找的

輸入
echo $PATH顯示
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

3) 在原來的PATH路徑上加上我們的當前目錄 /home/tester

PATH=$PATH:/home/tester

就有當期的目錄了,可以直接執行

test0717.sh

19.7 預定義變量

echo $?				# 上一條命令的執行結果(是否成功)
echo $$ 			# 顯示進程的id號
echo $0				# 顯示當前的進程名稱

19.8 位置變量

為shell腳本添加參數

test0717.sh
如果第二個參數有值, 則用傳來的值
如果第二個參數沒有值, 則用_來代替

#!/bin/sh
echo para1=$1
echo para2=${2-_}
輸入
./test0717.sh a結果
para1=a
para2=_
輸入
./test0717.sh a bbb結果
para1=a
para2=bbb

20- 數組

定義一個名為IPTS的數組

Array=( 10.0.0.1 10.0.0.2 10.0.0.3)

1)第一個元素

輸入
echo ${Array}顯示 第一個元素
10.0.0.1

2)所有元素的列表

輸入
echo ${Array[@]}顯示 所有元素的列表
10.0.0.1 10.0.0.2 10.0.0.3

3)元素個數

輸入
echo ${#IPTS[@]}顯示 元素個數
3

4)下標值為1的元素

輸入
echo ${IPTS[1]}顯示 下標值為1的元素
10.0.0.2

21- 運算符

21.1 expr 用于整數值計算

1,輸入
expr 4+2		#(錯,要數字與運算符中間要加空格)顯示
4+2
2,輸入
expr 4 + 2顯示
6
3, 輸入
expr 4 + 9.0 	#(錯, 數字必須是整數)顯示
expr: non-integer argument
expr算得的值如何賦給變量4, 輸入
add_value=`expr 4 + 2`
echo "add_value=$add_value"顯示
add_value=6

21.2 let

let "變量名=變量值"

1, 輸入
let b=3*4
echo $b顯示
12

值以0開頭為八進制
值以0x開頭為十六進制

雙圓括號是let命令的簡化
((a=10))((a++))echo $((10+22))

22- 特殊字符之 括號

22.1 圓括號 () 和 (())

()      產生子shell 使用圓括號會產生一個子shell,如(xyz=223)數組初始化
(())    做算術運算      (())let 命令的簡化  ((a=8+2))

22.2 方括號 [] 和 [[]]

[]      做測試  [ 4 -gt 2 ]
[[]]    測試擴展[[ 4 > 2 ]]     做真正的測試

22.3 尖括號 重定向符號 <>

<>   做輸入輸出重定向 比較大小

22.4 花括號 {}

{ }     輸出范圍 ehco {0..9} 輸出0-9的數字

let 變量名=變量值

23- expr

expr (evaluate expressions的縮寫)。“表達式求值”。
Shell expr是一個功能強大。并且比較復雜的命令,它除了可以實現整數計算,還可以結合一些選項對字符串進行處理,例如計算字符串長度、字符串比>較、字符串匹配、字符串提取等。

23.1 用expr計算一個整數運算

expr \( 4 + 2 \) \* 2
12

23.2 用" "(兩個反引號) 將計算的結果賦值給新的變量

value1=`expr \( 4 + 2 \) \* 2`
echo $value112

23.3 用 $() 將計算的結果賦值給新的變量

value2=$(expr \( 4 + 2 \) \* 2)
echo $value212

24- for的使用

for 參數 in 參數列表
do操作命令
done
參數列表的產生: 使用 命令 / 文本文件
{0..9}  ---> 產生1-9的列表
/home/*.sh
for filename in ls `/home/*.shsh`
domv $filename $(basename $filename *.shsh).sh            #將后綴為shsh改為sh
done

25- 使用循環處理未知參數

while [ $# -ge 1 ];
doecho "total paras=" $#if [ $1 == help ] ; thenecho '$1' =$1fishift
done

26- 腳本優先級控制

使用nice renice 調整腳本優先級
避免出現 "不可控的"死循環

27- 一次性計劃任務

  設置at + 時間 + 命令查看atq

28- 周期性計劃任務

  配置crontab -e查看crontab -l

29- 如果數據不能按照預期時間運行

29.1 延遲計劃任務

anacontab

29.2 flock 鎖文件

三、文本操作篇

30- find

30.1 find 目錄 -name 文件名

find /etc -name passwd 查找 /etc 目錄下文件名為passwd的文件
find . -name "*bin"    查找 當前目錄下后綴名為 bin的文件名

30.2 find 目錄 -regex 文件名

find /etc -regex .*wd     查找 /etc 目錄下以wd結尾的文件
find /etc -regex .etc.*wd 查找 /etc 目錄下含 etc且wd結尾的文件

30.3 find 目錄 -type x -regex 名字

find 目錄 -type d -regex 目錄名
find 目錄 -type f -regex 文件名

30.4 find 目錄 -xtime xxx

find 目錄 -atime xxx    atime access 訪問時間
find 目錄 -ctime xxx    ctime change 改變時間
find 目錄 -mtime xxx    mtime modify 修改時間

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38337.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38337.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38337.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

npm install 中 --save 和 --save-dev 是什么?

npm&#xff0c;全名 Node Package Manager&#xff0c;套件管理工具&#xff0c;package.json 會記下你在項目中安裝的所有套件。 假設在項目中安裝 lodash npm i --save lodash這樣在 dependencies 中會出現&#xff1a; 如果修改了導入方式&#xff1a; npm i --save-dev …

在Linux中對docker 一鍵安裝,本地安裝,無網絡安裝,

在Linux中對docker 一鍵安裝 前提先準備好安裝包 非常絲滑 首先先把需要準備的文件準備好&#xff0c;/package/base.tar 和 /package/docker-20.10.10.tgz包 這兩個文件包必須放在 /package目錄下 再和/package同級的目錄下再準備conf目錄&#xff0c;conf目錄下放docker.se…

Labview解決“重置VI:xxx.vi”報錯問題

文章目錄 前言一、程序框圖二、前面板三、問題描述四、解決辦法 前言 在程序關閉前面板的時候小概率型出現了 重置VI&#xff1a;xxx.vi 這個報錯&#xff0c;并且發現此時只能通過任務管理器殺掉 LabVIEW 進程才能退出&#xff0c;這里介紹一下解決方法。 一、程序框圖 程序…

特征選擇 | 遞歸特征消除算法篩選最優特征

特征選擇 | 遞歸特征消除算法篩選最優特征 目錄 特征選擇 | 遞歸特征消除算法篩選最優特征寫在前面常規方法算法原理結果分析參考資料 寫在前面 在實際應用中&#xff0c;特征選擇作為機器學習和數據挖掘領域的重要環節&#xff0c;對于提高模型性能和減少計算開銷具有關鍵影響…

pve7.2虛擬機 lvm磁盤擴容,增加硬盤操作

之前安裝pve時候只有256的ssd,最近安裝的虛擬機較多&#xff0c;給加塊閑置硬盤&#xff0c;順便學習一下&#xff0c;像pve這種虛擬機系統&#xff0c;硬盤應該可以像nas你這樣隨時增加&#xff0c;而不影響上層應用&#xff0c;我自己也是摸索著做。 一、安裝好硬盤后打開pv…

vue3+ts-tsconfig.json報錯Option ‘importsNotUsedAsValues’

vue3ts-tsconfig.json報錯Option ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5. Specify compilerOption ‘“ignoreDeprecations”: “5.0”’ to silence this error. Use ‘verbatimModuleSyntax’ instead 自我記錄 翻譯 選項…

智能家居(2)---串口通信(語音識別)控制線程封裝

封裝語音線程&#xff08;語音通過串口和主控設備進行交流&#xff09;實現對智能家居中各種燈光的控制 mainPro.c(主函數) #include <stdio.h> #include "controlDevice.h" #include "inputCommand.h" #include <pthread.h>struct Devices …

echart 3d立體顏色漸變柱狀圖

如果可以實現記得點贊分享&#xff0c;謝謝老鐵&#xff5e; 1.需求描述 根據業務需求將不同的法律法規&#xff0c;展示不同的3d立體漸變柱狀圖。 2.先看下效果圖 3. 確定三面的顏色&#xff0c;這里我是自定義的顏色 // 右面生成顏色const rightColorArr ref(["#79D…

ComponentOne Studio ASP.NET MVC Crack

ComponentOne Studio ASP.NET MVC Crack FlexReport增強功能 添加了對在Microsoft Windows上部署Microsoft Azure的支持。 添加了對顯示嵌入字體的支持。 .NET標準版的經典C1PDF(Beta版) GrapeCity的經典C1Pdf庫現在提供了基于Microsoft.NET標準的版本。在任何.NET應用程序(包括…

每日一學——IP尋址

IP尋址是指在網絡中分配和識別設備的唯一IP地址。IP地址是由一串數字組成的標識符&#xff0c;用于在網絡中定位和識別設備。 IPv4是最常用的IP地址版本&#xff0c;它由32位的地址組成&#xff0c;通常表示為四個以點分隔的十進制數字&#xff08;例如192.168.0.1&#xff09…

江南大學計算機考研分析

24計算機考研|上岸指南 江南大學 江南大學計算機考研招生學院是人工智能與計算機學院。目前均已出擬錄取名單。 江南大學人工智能與計算機學院成立于2020年3月&#xff0c;辦學歷史可追溯到1994年設立的計算機應用專業。學院秉持江南大學“彰顯輕工特色&#xff0c;服務國計民…

【數據結構】棧和隊列

【數據結構】棧和隊列 一&#xff1a; 棧1.棧的概念及和結構2. 棧的實用3. 棧接口實現 二&#xff1a; 隊列1. 隊列的概念和結構2. 隊列的實用3. 隊列接口實現 三&#xff1a;擴展 一&#xff1a; 棧 1.棧的概念及和結構 棧&#xff1a;一種特殊的線性表&#xff0c;其只允許…

SAP安全庫存-安全庫存共享、安全庫存簡介

SAP系統中的安全庫存用于管理計劃外和計劃內的庫存需求,在某些行業中,由于不同的情況,如意外損耗、損壞、環境問題、制造工藝問題、需求增加等,通常會出現意外的庫存需求。 SAP提供了維護安全庫存的處理方式來處理這樣的問題,安全庫存的字段信息在主數據視圖中,在物料需…

題解 | #1002.Shortest path# 2023杭電暑期多校9

1002.Shortest path 簽到題 記憶化搜索 題目大意 給定一個正整數 n n n &#xff0c;可以對其進行以下操作&#xff1a; 如果 n n n 能被 3 3 3 整除&#xff0c;則可以使 n n / 3 nn/3 nn/3 ;如果 n n n 能被 2 2 2 整除&#xff0c;則可以使 n n / 2 nn/2 nn/2 …

【C++】deque容器

0.前言 1.deque構造函數 #include <iostream> using namespace std; #include <deque>//deque構造函數 void printDeque(const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it){//*it 100; //加了const就不能…

go的gin和gorm框架實現切換身份的接口

使用go的gin和gorm框架實現切換身份的接口&#xff0c;接收前端發送的JSON對象&#xff0c;查詢數據庫并更新&#xff0c;返回前端信息 接收前端發來的JSON對象&#xff0c;包含由openid和登陸狀態組成的一個string和要切換的身份碼int型 后端接收后判斷要切換的身份是否低于該…

windows下dll文件的創建詳細教程

1、前言 dll文件是啥&#xff0c;就不作過多贅述了。現在直接教大家如何創建與使用dll文件。 本文基于windows系統&#xff0c;使用的編譯相關工具為visual studio 2019。 2、創建dll 2.1 創建dll工程 首先打開visual studio&#xff0c;然后選擇創建新項目&#xff0c;在搜…

Word(1):文章頁碼設置

1.需求 在文檔的封皮頁不設置頁碼&#xff0c;在目錄頁頁碼設置為羅馬數字&#xff0c;在正文使用阿拉伯數字。 2.解決方法 step1&#xff1a; 在封皮頁的最后&#xff0c;點擊”插入“-分隔符-分節符&#xff08;下一頁&#xff09; step2&#xff1a;在目錄頁的最后&…

【Java學習】System.Console使用

背景 在自學《Java核心技術卷1》的過程中看到了對System.Console的介紹&#xff0c;編寫下列測試代碼&#xff0c; public class ConsoleTest {public static void main(String[] args) {Console cs System.console();String name cs.readLine("AccountInfo: ");…

探討uniapp的數據緩存問題

異步就是不管保沒保存成功&#xff0c;程序都會繼續往下執行。同步是等保存成功了&#xff0c;才會執行下面的代碼。使用異步&#xff0c;性能會更好&#xff1b;而使用同步&#xff0c;數據會更安全。 1 uni.setStorage(OBJECT) 將數據存儲在本地緩存中指定的 key 中&#x…