導航:首頁 > 程序命令 > linux計算器命令

linux計算器命令

發布時間:2022-12-19 10:02:47

linux常用命令有哪些

linux 常用命令有:

Ⅱ linux借用外部命令expr,實現計算器功能,利用管道,進程

test指令(使用指令man查詢)

功能:檢查文件類型,值比較。

test的各種參數和使用。

test EXPRESSION1 –a EXPRESSION2

當表達式1和表達式2同時為真時值為真

test EXPRESSION1 –o EXPRESSION2

當表達式1或者表達式2為真時值為真

test –n STRING

或者

test STRING

當STRING串的長度不為零時值為真

test –z STRING

當STRING串長度為零時值為真

test STRING1 = STRING2

當STRING1和STRING2相同時值為真

test STRING1 != STRING2

當STRING1 和 STRING2不同時值為真

test INTEGER1 –eq INTEGER2

當INTEGER1等於INTEGER2時值為真

test INTEGER1 –ge INTEGER2

當INTEGER1大於或者等於INTEGER2時值為真

test INTEGER1 –gt INTEGER2

當INTEGER1 大於INTEGER2時值為真

test INTEGER1 –le INTEGER2

當INTEGER1小於等於INTEGER2時值為真

test INTEGER1 –lt INTEGER2

當INTEGER1 小於INTEGER2時值為真

test INTEGER1 –ne INTEGER2

當INTEGER1不等於INTEGER2時值為真

test FILE1 –ef FILE2

當FILE1和FILE2有同樣的device和inode號時為真(詳細見linux文件學習筆記)

test FILE1 –nt FILE2

當FILE1修改時間比FILE2新時值為真

test FILE1 –ot FILE2

當FILE1修改時間比FILE2舊時值為真

test –b FILE

FILE存在並且內容是block類型的

test –c FILE

FILE存在並且是字元類型的

test –d FILE

FILE存在並且是一個目錄

test –e FILE

FILE是否存在

test –f FILE

FILE存在並且是一個正則表達式類型的文檔

test –g FILE

FILE存在並且是 set-group-ID也就是SGID(詳細見後文學習筆記)

test –G FILE

FILE存在並且由有效的GROUP ID所擁有(詳細見後文學習筆記)

test –h FILE

FILE存在並且是一個符號鏈接(詳細見後文學習筆記)

test –k FILE

FILE存在並且設置了sticky bit set(詳細見後文學習筆記)

test –L FILE

FILE存在並且是一個符號鏈接

test –O FILE

FILE存在並且由一個有效的USER ID所擁有

test –p FILE

FILE存在並且是一個命名管道(命名管道見後文學習筆記)

test –r FILE

FILE存在並且授予了可讀的許可權

test –s FILE

FILE存在並且size大於0

test –S FILE

FILE存在並且是一個socket

test –t FD

文件的描述符FD在終端打開

test –u FILE

FILE存在並且SUID已經被設置

test –w FILE

FILE存在並且授予了寫操作許可權

test –x FILE

FILE存在並且授予了可執行的許可權

----------------------------------------------------------------------------------------------------------------------------------------------------

expr

expr是linux的手工命令行計數器,它可以幫助我們完成一些基本的表達式值運算。同時它也是一個字元串處理工具

(1) 整數運算

$expr ARG1 | ARG2

$expr ARG1 & ARG2

$expr ARG1 < ARG2

$expr ARG1 <= ARG2

$expr ARG1 = ARG2

$expr ARG1 != ARG2

$expr ARG1 >= ARG2

$expr ARG1 > ARG2

$expr ARG1 + ARG2

$expr ARG1 – ARG2

$expr ARG1 * ARG2

使用乘法時,需要使用反斜杠進行轉義

$expr ARG1 % ARG2

(2) 字元串操作

$expr length 「xxx」 //計算字元串長度

$expr substr 「this is a」pos length //從第pos位開始截取length長度的子串

$expr index 「tesr」e //獲取e在主串中首次出現的位置

(3) 增量計數

例子

loop=3

loop=`expr $loop + 1`

echo $loop

結果是4,在第二行代碼中,使用反引號,shell會將反引號中的內容作為一個系統命令,這樣一來,就好像我們在命令行內輸入了expr $loop + 1然後這個命令的返回結果被賦值到loop。

(4) 模式匹配(按照正則表達式模式匹配串)

通過指定冒號選項計算字元串中字元數。.*意即任何字元重復0次或多次。

> VALUE=account.doc

> expr $VALUE : 』.*』

8

在expr中可以使用字元串匹配操作,這里使用模式抽取.doc文件附屬名。

$expr $VALUE : 『\(.*\).doc』

accounts

(5) 其他

+ TOKEN

將TOKEN解釋為串,不管它是一個關鍵字或者一個操作符

延伸知識:

引號的作用

1 雙引號(「」)

1)使用」」可引用除字元$(美元符號)、`(反引號)、\(反斜線)外的任意字元或字元串。雙引號不會阻止shell對這三個字元做特殊處理(標示變數名、命令替換、反斜線轉義)。

Eg:name=gezn; echo 「User name:$name」//將列印User name :gezn

Echo 「The date is:`date +date-%d-%m-%Y`」//將列印The date is: 03-05-2009

Echo –e 「$USER\t$UID」 //將列印gezn 500

2)如果要查新包含空格的字元串經常用到雙引號

2 單引號(』』)

1) 如果用單引號把字元串括起來,則dayi9nhao內字元串中的任何特殊字元的特殊含義均被屏蔽。

2) 舉例:echo –e 『$USER\t$UID』//將列印$USER $UID(沒有屏蔽\t,是因為選項「-e」的緣故)

echo 『USER\t$UID』 //將列印$USER\t$UID

3 反引號(``)

1) shell將反引號中的內容作為一個系統命令,並執行其內容。使用這種方法可以替換輸出為一個變數

2) 舉例:a=`date + date-%d-%m-%Y` //將列印The date is: 03-05-2009

4.反斜線(\)

1)如果下一個字元有特殊含義,反斜線防止shell誤解其含義,即屏蔽其特殊含義。

2)下屬字元包含有特殊含義:& * + $ ` 「 | ?

3) 在列印字元串時要加入八進制字元(ASCII相應字元)時,必須在前面加反斜線,否則shell作普通數字處。

舉例: bj=Beijing; echo 」variable\$bj=$bj」//將列印variable $bj = beijing

------------------------------------------------------------------------------------------------------------------------------------------------

Shell特殊變數

在Shell中,預先定義了幾個有特殊含義的Shell變數,它們的值只能由Shell根據實際情況進行賦值,而不能通過用戶重新設置。shell的特殊變數包括它的位置和一些系統變數.

(一)常用位置變數:

$# 命令行上實際參數的個數,但不包含Shell腳本名。
$? 上一條命令執行後的返回值(也稱作 「退出碼」)。它是一個十進制數。多數Shell命令執行成功時,則返回值為0;如果執行失敗,則返回非0值。
$$ 當前進程的進程號。
$! 上一個後台命令對應的進程號,這是一個由1~5位數字構成的數字串。
$- 由當前Shell設置的執行標志名組成的字元串。例如:
set -xv 這個命令行給Shell設置了標志-x和-v(用於跟蹤輸出)。
$* 表示在命令行中實際給出的所有實參字元串,它並不僅限於9個實參。
$@ 它與$*基本功能相同,但是使用時加引號,並在引號中返回每個參數
$0 腳本名稱
$1..$9 第N個參數

下面的aaa bbb 為變數名

${aaa:-bbb} 如果$aaa為空或未定義,則取值$bbb.否則取值$aaa

${aaa:+bbb} 如果$aaa非空,則取值$bbb,否則取值為空

${aaa:=bbb} 如果$aaa非空,則取值$aaa,否則取值$bbb而且賦值(aaa=bbb)

${aaa:3} 如果aaa=abcdefg,則${aaa:3}的值為:defg ,相當於substr,計數從0開始

${aaa:3:2} 如上; ${aaa:3:2}取值為: de.相當於substr

${#aaa} 字元串$aaa的長度.

(二)常用系統變數:
$HOME 用戶的主目錄
$USER 用戶名稱
$GROUP 用戶所屬組名
$PATH 默認的搜索路徑
$HOSTNAME 主機名稱
$TZ 時區
$MAIL 存放郵件的路徑名

練手:

#!/bin/bash

echo $0

echo $*

echo $@

echo $#

echo $$

echo $_

在terminal窗口中執行:

./test.sh -a -b –c /home

./test.sh

-a -b -c /home

-a -b -c /home

4

3250

/home

區別$*和$@編寫如下test.sh腳本:

#!/bin/bash

function testargs

{

echo "$# args"

}

testargs "$*"

testargs "$@"

unset -f testargs

在terminal窗口中執行:

./test.sh -a -b /home

1 args //很明顯就一個嘛,傳入的是$*這個串,不是解釋後的參數

3 args //$@必須和引號搭配,所以結果正確

#!/bin/bash

function testargs

{

echo "$# args"

}

testargs $*

testargs $@

unset -f testargs

再次執行有:

./test.sh -a -b /home

3 args

3 args

作者:Aga.J
出處:http://www.cnblogs.com/aga-j

Ⅲ linux系統下用Ubuntu編寫的c語言計算器,關鍵如何輸入一長串式子直接得出答案

第一步:打開終端,隨便進入一個文件夾用於存放你編寫的程序
#cd /home/usr/workspace
#vi Hello.c
接著你就會看到vi編輯器,按I開始輸入,接著輸入你的代碼,
輸完後按Esc,再輸入":wq"(引號內)保存退出,
好,現在你已經用vi編輯好了你程序。
第二步:用gcc編譯你的程序
在終端輸入
#gcc -o hello hello.c
編譯完成後,在你的文件中出現一個hello運行文件。
第三步:運行編譯好到hello文件,在終端輸入
#./hello
到這一步你的程序開始運行了。

Ⅳ 如何退出linux下的dc計算器

你進入了一個目錄無法用 cd .. 退回有以下原因:1、該子目錄所在的父目錄已經被刪除或者改名
2、該子目錄所在的父目錄的許可權已經被修改(可能是把當前用戶的可執行許可權去了,或者已經改變了所有者,而當前用戶沒有可執行許可權)

你需要做的是:
1、確認該目錄及其父目錄還存在或者沒被改名。
2、如果符合1,則可以修改父目錄的許可權,添加可執行許可權 sudo chmod -R ugo+x filename //filename 是該子目錄的父目錄。或者是 sudo chown -R user:group filename user group 分別是當前用戶的用戶名和組名

Ⅳ linux下的bc計算器做出結果後答案怎麼復制

可以直接輸出到文件里。
你在原有執行的bc命令及其後的數和計算等一系列內容(你算數用的所有內容)之後空一個格,添加
>> filename
,filename是文件名,最好不是已經在當前目錄下已經存在的文件,否則會把結果附在原來文件的最後處。這樣執行bc過程中的全部輸出都不會出現在屏幕上,而是輸入到filename這個文件裡面。

Ⅵ 在Linux下,用shell編寫一個簡單的計算器,要實現加減乘除4個功能就行了

不用寫吧,本來有個 bc 命令可用,沒有下載就成.
非要寫一個,zsh 的function里有一個,名 zcalc,
貼上來給你

#!/usr/bin/zsh -i
#
# Zsh calculator. Understands most ordinary arithmetic expressions.
# Line editing and history are available. A blank line or `q' quits.
#
# Runs as a script or a function. If used as a function, the history
# is remembered for reuse in a later call (and also currently in the
# shell's own history). There are various problems using this as a
# script, so a function is recommended.
#
# The prompt shows a number for the current line. The corresponding
# result can be referred to with $<line-no>, e.g.
# 1> 32 + 10
# 42
# 2> $1 ** 2
# 1764
# The set of remembered numbers is primed with anything given on the
# command line. For example,
# zcalc '2 * 16'
# 1> 32 # printed by function
# 2> $1 + 2 # typed by user
# 34
# 3>
# Here, 32 is stored as $1. This works in the obvious way for any
# number of arguments.
#
# If the mathfunc library is available, probably understands most system
# mathematical functions. The left parenthesis must be adjacent to the
# end of the function name, to distinguish from shell parameters
# (translation: to prevent the maintainers from having to write proper
# lookahead parsing). For example,
# 1> sqrt(2)
# 1.4142135623730951
# is right, but `sqrt (2)' will give you an error.
#
# You can do things with parameters like
# 1> pi = 4.0 * atan(1)
# too. These go into global parameters, so be careful. You can declare
# local variables, however:
# 1> local pi
# but note this can't appear on the same line as a calculation. Don't
# use the variables listed in the `local' and `integer' lines below
# (translation: I can't be bothered to provide a sandbox).
#
# Some constants are already available: (case sensitive as always):
# PI pi, i.e. 3.1415926545897931
# E e, i.e. 2.7182818284590455
#
# You can also change the output base.
# 1> [#16]
# 1>
# Changes the default output to hexadecimal with numbers preceded by `16#'.
# Note the line isn't remembered.
# 2> [##16]
# 2>
# Change the default output base to hexadecimal with no prefix.
# 3> [#]
# Reset the default output base.
#
# This is based on the builtin feature that you can change the output base
# of a given expression. For example,
# 1> [##16] 32 + 20 / 2
# 2A
# 2>
# prints the result of the calculation in hexadecimal.
#
# You can't change the default input base, but the shell allows any small
# integer as a base:
# 1> 2#1111
# 15
# 2> [##13] 13#6 * 13#9
# 42
# and the standard C-like notation with a leading 0x for hexadecimal is
# also understood. However, leading 0 for octal is not understood --- it's
# too confusing in a calculator. Use 8#777 etc.
#
# Options: -#<base> is the same as a line containing just `[#<base>],
# similarly -##<base>; they set the default output base, with and without
# a base discriminator in front, respectively.
#
#
# To do:
# - separate zcalc history from shell history using arrays --- or allow
# zsh to switch internally to and from array-based history.

emulate -L zsh
setopt extendedglob

local line ans base defbase forms match mbegin mend psvar optlist opt arg
local compcontext="-math-"
integer num outdigits outform=1
# We use our own history file with an automatic pop on exit.
history -ap "${ZDOTDIR:-$HOME}/.zcalc_history"

forms=( '%2$g' '%.*g' '%.*f' '%.*E' )

zmodload -i zsh/mathfunc 2>/dev/null

: ${ZCALCPROMPT="%1v> "}

# Supply some constants.
float PI E
(( PI = 4 * atan(1), E = exp(1) ))

# Process command line
while [[ -n $1 && $1 = -(|[#-]*) ]]; do
optlist=${1[2,-1]}
shift
[[ $optlist = (|-) ]] && break
while [[ -n $optlist ]]; do
opt=${optlist[1]}
optlist=${optlist[2,-1]}
case $opt in
('#') # Default base
if [[ -n $optlist ]]; then
arg=$optlist
optlist=
elif [[ -n $1 ]]; then
arg=$1
shift
else
print "-# requires an argument" >&2
return 1
fi
if [[ $arg != (|\#)[[:digit:]]## ]]; then
print - "-# requires a decimal number as an argument" >&2
return 1
fi
defbase="[#${arg}]"
;;
esac
done
done

for (( num = 1; num <= $#; num++ )); do
# Make sure all arguments have been evaluated.
# The `$' before the second argv forces string rather than numeric
# substitution.
(( argv[$num] = $argv[$num] ))
print "$num> $argv[$num]"
done

psvar[1]=$num
while vared -cehp "${(%)ZCALCPROMPT}" line; do
[[ -z $line ]] && break
# special cases
# Set default base if `[#16]' or `[##16]' etc. on its own.
# Unset it if `[#]' or `[##]'.
if [[ $line = (#b)[[:blank:]]#('[#'(\#|)(<->|)']')[[:blank:]]#(*) ]]; then
if [[ -z $match[4] ]]; then
if [[ -z $match[3] ]]; then
defbase=
else
defbase=$match[1]
fi
print -s -- $line
line=
continue
else
base=$match[1]
fi
else
base=$defbase
fi

print -s -- $line

case ${${line##[[:blank:]]#}%%[[:blank:]]#} in
q) # Exit if `q' on its own.
return 0
;;
norm) # restore output format to default
outform=1
;;
sci[[:blank:]]#(#b)(<->)(#B))
outdigits=$match[1]
outform=2
;;
fix[[:blank:]]#(#b)(<->)(#B))
outdigits=$match[1]
outform=3
;;
eng[[:blank:]]#(#b)(<->)(#B))
outdigits=$match[1]
outform=4
;;
local([[:blank:]]##*|))
eval $line
line=
continue
;;
*)
# Latest value is stored as a string, because it might be floating
# point or integer --- we don't know till after the evaluation, and
# arrays always store scalars anyway.
#
# Since it's a string, we'd better make sure we know which
# base it's in, so don't change that until we actually print it.
eval "ans=\$(( $line ))"
# on error $ans is not set; let user re-edit line
[[ -n $ans ]] || continue
argv[num++]=$ans
psvar[1]=$num
;;
esac
if [[ -n $base ]]; then
print -- $(( $base $ans ))
elif [[ $ans = *.* ]] || (( outdigits )); then
printf "$forms[outform]\n" $outdigits $ans
else
printf "%d\n" $ans
fi
line=
done

return 0

支援小數點,+ - * / , ok

Ⅶ Linux命令

命令格式: 命令 [-選項] [參數]

如:ls -la /usr

**說明: **

大部分命令遵從該格式

多個選項時,可以一起寫 eg:ls –l –a à ls –la

簡化選項與完整選項(註:並非所有選項都可使用完整選項) eg:ls –all à ls –a

作用:切換用戶身份

語法:su [選項] 用戶名

-c 僅執行一次命令,而不切換用戶身份

$ su – root

env

$ su – root –c 「useradd longjing」

文件或目錄的CRUD

英文:change directory 命令路徑:內部命令 執行許可權:所有用戶

作用: 切換目錄

語法:cd [目錄] / 切換到根目錄

.. 回到上一級目錄

. 當前目錄

~ 當前用戶的宿主目錄(eg:# cd ~用戶名 進入某個用戶的家目錄)

英文:list 命令路徑:/bin/ls 執行許可權:所有用戶

作用:顯示目錄文件

語法:ls [-alrRd] [文件或目錄]

-a all 顯示所有文件,注意隱藏文件,特殊目錄.和..

-l(long) 顯示詳細信息

-R(recursive) 遞歸顯示當前目錄下所有目錄

-r (reverse) 逆序排序

-t(time) 按修改時間排序(降序)

英文:print working directory 命令路徑:/bin/pwd 執行許可權:所有用戶

作用:顯示當前工作目錄

語法:pwd [-LP]

-L 顯示鏈接路徑,當前路徑,默認

-P 物理路徑

eg:# cd /etc/init.d

英文:make directories 命令路徑:/bin/mkdir 執行許可權:所有用戶

作用:創建新目錄

語法:mkdir [-p] 目錄名

-p 父目錄不存在情況下先生成父目錄 (parents)

eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數-p即可自動創建父目錄。

命令路徑:/bin/touch 執行許可權:所有用戶

作用:創建空文件或更新已存在文件的時間

語法:touch 文件名

eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創建多個文件

創建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號

注意:生產環境中,文件名,一定不要加空格

英文: 命令路徑:/bin/cp 執行許可權:所有用戶

作用:復制文件或目錄

語法:cp [–rp] 源文件或目錄 目的目錄

-r -R recursive 遞歸處理,復制目錄

-p 保留文件屬性 (原文件的時間不變)

eg:

1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/

2,,絕對路徑 cp –R / ect/service /root/test/aa/bb

英文:move 命令路徑:/bin/mv 執行許可權:所有用戶

作用:移動文件或目錄、文件或目錄改名

語法:mv 源文件或目錄 目的目錄

英文:remove 命令路徑:/bin/rm 執行許可權:所有用戶

作用:刪除文件

語法: rm [-rf] 文件或目錄

-r (recursive)刪除目錄,同時刪除該目錄下的所有文件

-f(force) 強制刪除文件或目錄 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認

注意:工作中,謹慎使用rm –rf 命令。

擴展點 :刪除亂碼文件

一些文件亂碼後使用rm -rf 依然無法刪除

此時,使用ll -i 查找到文件的inode節點

然後使用find . -inum 查找到的inode編號 -exec rm {} -rf ;

就能順利刪除了

英文:concatenate 命令路徑:/bin/cat 執行許可權:所有用戶

作用:顯示文件內容

語法:cat [-n] [文件名]

-n 顯示行號

eg:cat /etc/services

命令路徑:/bin/more 執行許可權:所有用戶

作用:分頁顯示文件內容

語法:more [文件名]

空格或f 顯示下一頁

Enter鍵 顯示下一行

q或Q 退出

命令路徑:/usr/bin/head 執行許可權:所有用戶

作用:查看文件前幾行(默認10行)

語法:head [文件名]

-n 指定行數

eg:head -20 /etc/services head –n 3 /etc/services

命令路徑:/usr/bin/tail 執行許可權:所有用戶

作用:查看文件的後幾行

語法:tail [文件名]

-n 指定行數

-f (follow) 動態顯示文件內容

獲取一個大文件的部分文件,可使用head或tail命令

head -n 100 /etc/services >config.log

英文: link 命令路徑:/bin/ln 執行許可權:所有用戶

作用:產生鏈接文件

語法:

ln -s [源文件] [目標文件] 創建軟鏈接 源文件 使用 絕對路徑

ln [源文件] [目標文件] 創建硬鏈接

eg:ln -s /etc/service ./service.soft

創建文件/etc/service的軟鏈接service.soft

eg:/etc/service /service.hard

創建文件/etc/service的硬鏈接/service.hard

軟連接類似於windows下的快捷方式

軟連接文件格式:

lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services

1 硬鏈接數量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。

13鏈接文件的長度

格式解析(特徵):

1, 軟連接的文件類型是 l(軟連接),軟連接文件的許可權 都是 lrwxrwxrwx

2,-> 箭頭指向到源文件

真正的許可權取決於對源文件的許可權

時間值為創建軟連接的時間

軟連接可以跨文件系統生成

硬鏈接特徵

1,相當於 cp -p +同步更新

2,通過i節點識別,與源文件有相同的inode節點

3,硬鏈接不能跨分區,ln /home/test/issuels /boot/test (錯誤)

4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)

刪除軟連接

rm -rf symbolic_name

英文:manual 命令路徑:/usr/bin/man 執行許可權:所有用戶

作用:獲取命令或配置文件的幫助信息

語法:man [命令/配置文件]

eg:man ls man services

(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)

調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。

使用/加上關鍵的參數可直接定位搜索, n 查找下一個,shift+n 查找上一個

eg: /-l 直接查看-l的介紹

擴展:man的級別 (幫助文檔的類型, 了解1 5即可)

man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)

1是命令,5是配置文件 man優先顯示命令,可指定幫助類型

eg:man 5 passwd (5代表配置文件級別)

[圖片上傳失敗...(image-6718d2-1624438708895)]

help 查看shell內置命令的幫助信息

eg:help cd

內置命令,使用whereis,which,man都不能查看

type 命令 查看內部命令還是外部命令

命令名 --help 列舉該命令的常用選項

eg: cp --help

命令路徑:/bin/find 執行許可權:所有用戶

作用:查找文件或目錄

語法:find [搜索路徑] [匹配條件]

如果沒有指定搜索路徑,默認從當前目錄查找

find命令選項

-name 按名稱查找 精準查找

eg:find /etc -name 「init」 在目錄/etc中查找文件init

-iname 按名稱查找

find查找中的字元匹配:

*:匹配所有

?:匹配單個字元

eg:find /etc -name 「init???」 在目錄/etc中查找以init開頭的,且後面有三位的文件

模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用*。

eg: # find . –name *g

-size ****按文件大小查找

以block為單位,一個block是512B, 1K=2block +大於 -小於 不寫是等於

eg:find /etc -size -204800 在etc目錄下找出大於100MB的文件

100MB=102400KB=204800block

**-type ** 按文件類型查找

f 二進制文件l 軟連接文件 d 目錄 c 字元文件

eg: find /dev -type c

find****查找的基本原則

佔用最少的系統資源,即查詢范圍最小,查詢條件最精準

eg:

如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/

命令路徑:/bin/grep 執行許可權:所有用戶

作用:在文件中搜尋字串匹配的行並輸出

語法:grep [-cinv] '搜尋字元串' filename

選項與參數:

-c :輸出匹配行的次數(是以行為單位,不是以出現次數為單位)

-i :忽略大小寫,所以大小寫視為相同

-n :顯示匹配行及行號

-v :反向選擇,顯示不包含匹配文本的所有行。

eg:grep ftp /etc/services

eg:#grep -v ^# /etc/inittab 去掉文件行首的#號

eg:# grep -n 「init」/etc/inittab 顯示在inittab文件中,init匹配行及行號

eg:# grep -c「init」/etc/inittab 顯示在inittab文件中,init匹配了多少次

命令路徑:/usr/bin/which 執行許可權:所有用戶

作用: 顯示系統命令所在目錄(絕對路徑及別名)

which命令的作用是,在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令

alias ls='ls --color=auto'

/bin/ls

/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

命令路徑:/usr/bin/whereis 執行許可權:所有用戶

作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **

eg: which passwd 和 whereis passwd

eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd

英文:GNU zip 命令路徑:/bin/gzip 執行許可權:所有用戶

作用:壓縮(解壓)文件,壓縮文件後綴為.gz

gzip只能壓縮文件,不能壓縮目錄;不保留原文件

語法:gzip 文件

-d將壓縮文件解壓(decompress)

解壓使用gzip –d或者 gunzip

命令路徑:/usr/bin/bzip2 執行許可權:所有用戶

作用: 壓縮(解壓)文件,壓縮文件後綴為.bz2

語法:bzip2 [-k] [文件]

-k:產生壓縮文件後保留原文件(壓縮比高)

-d 解壓縮的參數(decompress)

解壓使用bzip2 –d或者 bunzip2

命令路徑:/usr/bin/zip 執行許可權:所有用戶

作用: 壓縮(解壓)文件,壓縮文件後綴為.zip

語法:zip 選項[-r] [壓縮後文件名稱] [文件或目錄]

-r壓縮目錄

eg:zip services.zip /etc/services 壓縮文件;

zip -r test.zip /test 壓縮目錄

如果不加-r選項,壓縮後的文件沒有數據。

解壓使用unzip

命令路徑:/bin/tar 執行許可權:所有用戶

作用:文件、目錄打(解)包

語法:tar [-zcf] 壓縮後文件名 文件或目錄

-c 建立一個壓縮文件的參數指令(create),後綴是.tar

-x 解開一個壓縮文件的參數指令(extract)

-z 以gzip命令壓縮/解壓縮

-j 以bzip2命令壓縮/解壓縮

-v 壓縮的過程中顯示文件(verbose)

-f file 指定文件名,必選項

1, 單獨的打包 ,解包 tar –cf tar –xf

2, 打包之後,進行壓縮 gzip bzip2

3, 一步到位 tar –zcvf tar -zxvf

tar -cf -xf 單獨 壓縮 解壓縮

tar -z 以gzip打包目錄並壓縮 文件格式.tar.gz(.tgz)

tar -j 以bzip2打包目錄並壓縮 文件格式.tar.bz2

eg:tar -zcvf dir1.tar.gzdir1 使用gzip將目錄dir1壓縮成一個打包並壓縮文件dir1.tar.gz

eg: tar -cvf bak.tar . 將當前目錄的文件打包為bak.tar

eg: tar -xvf bak.tar 解壓

eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip將打包文件bak.tar壓縮為bak.tar.gz

eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2

eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)

eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件

eg:tar -xjf test.tar.bz2 解壓

最常用: tar + gzip

tar –zcvf 壓縮

tar –zxvf 解壓

補充:

1,文件路徑, 壓縮包帶文件路徑

2,源文件是保留的,不會被刪除

**shutdown **[選項] 時間

選項: -c: 取消前一個關機命令

-h:關機

-r:重啟

eg:

shutdown -h now 立即關機 shutdown -h 20:30 定時關機

其他關機命令 halt poweroff init 0

其他重啟命令

**reboot **重啟系統 reboot -h now立即重啟

init 6

注意:生產環境中,關機命令和重啟命令謹慎執行。

善於查看man help等幫助文檔

利用好Tab鍵 自動補全

掌握好一些快捷鍵

ctrl + c(停止當前進程)

ctrl + z 掛起當前進程,放後台

ctrl + r(查看命令歷史) history

ctrl + l(清屏,與clear命令作用相同)

方向箭頭 上 下 可以查看執行過的命令

ctrl + a 行首 ctrl + e 行尾

ctrl + k 清除 ctrl+ w 清除單詞

vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。

只有命令,沒有菜單。

《大碗》編輯器版

周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什麼插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎麼著學會也得小半年吧。半年!?入門都遠著呢!能學會移動游標就不錯了,你還別說耗不起,就這還是左右移動!!!

:

[圖片上傳失敗...(image-a08366-1624438708894)]

命令模式:又稱一般模式

編輯模式:又稱底行模式,命令行模式

|

命令

|

作用

|
|

a

|

在游標後附加文本

|
|

A(shift + a)

|

在本行行末附加文本 行尾

|
|

i

|

在游標前插入文本

|
|

I(shift+i)

|

在本行開始插入文本 行首

|
|

o

|

在游標下插入新行

|
|

O(shift+o)

|

在游標上插入新行

|

|

命令

|

作用

|
|

:set nu

|

設置行號

|
|

:set nonu

|

取消行號

|
|

gg

G

|

到第一行

到最後一行

|
|

nG

|

到第n行

|
|

:n

|

到第n行

|

|

命令

|

作用

|
|

:w

|

保存修改

|
|

:w new_filename

|

另存為指定文件

|
|

:w >> a.txt

|

內容追加到a.txt文件中 文件需存在

|
|

:wq

|

保存修改並退出

|
|

shift+zz(ZZ)

|

快捷鍵,保存修改並退出

|
|

:q!

|

不保存修改退出

|
|

:wq!

|

保存修改並退出(文件所有者可忽略文件的只讀屬性)

|

不保存並退出:

1, 有修改,但是修改後的內容是不保存的

2, 有突發情況,導致窗口退出。修改文件之後,直接刪除同名的.swp文件

|

命令

|

作用

|
|

x

|

刪除游標所在處字元 nx 刪除游標所在處後n個字元

|
|

dd

|

刪除游標所在行,ndd刪除n行

|
|

:n1,n2d

|

刪除指定范圍的行(eg :1,3d 刪除了123這三行)

|
|

dG

|

刪除游標所在行到末尾的內容

|
|

D

|

刪除從游標所在處到行尾

|

|

命令

|

作用

|
|

yy、Y

|

復制當前行

|
|

nyy、nY

|

復制當前行以下n行

|
|

dd

|

剪切當前行

|
|

ndd

|

剪切當前行以下n行

|
|

p、P

|

粘貼在當前游標所在行下 或行上

|

|

命令

|

作用

|
|

r

|

取代游標所在處字元

|
|

R(shift + r)

|

從游標所在處開始替換字元,按Esc結束

|
|

u

|

undo,取消上一步操作

|
|

ctrl+r

|

redo,返回到undo之前

|

|

命令

|

作用

|
|

/string

|

向後搜索指定字元串 搜索時忽略大小寫 :set ic

|
|

?string

|

向前搜索指定字元串

|
|

n

|

搜索字元串的下一個出現位置,與搜索順序相同

|
|

N(Shift + n)

|

搜索字元串的上一個出現位置,與搜索順序相反

|
|

:%s/old/new/g

|

全文替換指定字元串

|
|

:n1,n2s/old/new/g

|

在一定范圍內替換指定字元串

|

% 指全文,s 指開始,g 指全局替換

eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換

eg: :41,44/yang/lee/g 同上,不詢問,直接替換

使用替換命令來添加刪除注釋

:% s/^/#/g 來在全部內容的行首添加 # 號注釋

:1,10 s/^/#/g 在1~10 行首添加 # 號注釋

vi裡面怎麼查命令??

:!which cp

vi裡面怎麼導入命令的結果?

:r !which cp

v 可視字元模式

V****(shift+v) 可視行模式,選擇多行操作

**ctrl+v **可視塊模式(列模式),操作列

I或者O進入插入模式。

1,圖形化界面

2,setup 命令虛擬界面

3,修改配置文件(以網路方式為NAT示例)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.2.129

NETMASK=255.255.255.0

GATEWAY=192.168.2. 2 #網段2任意,IP地址2固定,網段為vmnet8的設置的IP網段

DNS1=114.114.114.114

DNS2=8.8.8.8

重啟網路生效:

service network restart

命令路徑:/bin/ping 執行許可權:所有用戶

作用:測試網路的連通性

語法:ping 選項 IP地址

-c 指定發送次數

ping 命令使用的是icmp協議,不佔用埠

eg: # ping -c 3 127.0.0.1

英文:interface configure 命令路徑:/sbin/ifconfig 執行許可權:root

作用:查看和設置網卡網路配置

語法:ifconfig [-a] [網卡設備標識]

-a:顯示所有網卡信息

ifconfig [網卡設備標識] IP地址 修改ip地址

英文:network statistics 命令路徑:/bin/netstat 執行許可權:所有用戶

作用:主要用於檢測主機的網路配置和狀況

-a all顯示所有連接和監聽埠

-t (tcp)僅顯示tcp相關選項

-u (udp)僅顯示udp相關選項

-n 使用數字方式顯示地址和埠號

-l (listening) 顯示監控中的伺服器的socket

eg:# netstat -tlnu 查看本機監聽的埠

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

協議 待收數據包 待發送數據包 本地ip地址:埠 遠程IP地址:埠

netstat –antpl

臨時生效:

hostname 主機名

[圖片上傳失敗...(image-ceed36-1624438708893)]

永久生效:修改配置文件

vi /etc/sysconfig/network

[圖片上傳失敗...(image-2b9d9e-1624438708893)]

修改主機名和ip地址之間的映射關系

vi /etc/hosts

192.168.2.120 node-1.e.cn node-1

可配置別名

[圖片上傳失敗...(image-ec86cf-1624438708893)]

進程和程序的區別:

1、程序是靜態概念,本身作為一種軟體資源長期保存;而進程是程序的執行過程,它是動態概念,有一定的生命期,是動態產生和消亡的。

2、程序和進程無一一對應關系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執行若干個程序。

進程和線程的區別:

進程: 就是正在執行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔用一定的系統資源。

線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創建;相對講,線程耗費的cpu和內存要小於進程。

進程管理的作用?

判斷伺服器的健康狀態

查看系統所有的進程

殺死進程

作用:查看系統中的進程信息

語法:ps [-auxle]

常用選項

查看系統中所有進程

ps應用實例 # ps -u or ps -l 查看隸屬於自己進程詳細信息

作用: 查看當前進程樹

語法:pstree [選項]

-p 顯示進程PID

-u 顯示進程的所屬用戶

作用:查看系統健康狀態

顯示當前系統中耗費資源最多的進程,以及系統的一些負載情況。

語法:top [選項]

-d 秒數,指定幾秒刷新一次,默認3秒(動態顯示)

作用:關閉進程

語法:kill [-選項] pId

kill -9 進程號(強行關閉) 常用

kill -1 進程號(重啟進程)

添加用戶

語法:useradd [選項] 用戶名

修改密碼命令

語法:passwd [選項] [用戶名]

用戶密碼:生產環境中,用戶密碼長度8位以上,設置大小寫加數字加特殊字元,要定期更換密碼。

ys^h_L9t

刪除用戶

-r 刪除賬號時同時刪除宿主目錄(remove)

作用:用於查看Linux文件系統的狀態信息,顯示各個分區的容量、已使用量、未使用量及掛載點等信息。看剩餘空間

語法:df [-hkam] [掛載點]

-h(human-readable)根據磁碟空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k 以KB 為單位顯示各分區的信息,默認

-M 以MB為單位顯示信息 -a 顯示所有分區包括大小為0 的分區

作用:用於查看文件或目錄的大小(磁碟使用空間)

語法: [-abhs] [文件名目錄]

-a 顯示子文件的大小

-h以易讀的方式顯示 KB,MB,GB等

-s summarize 統計總佔有量

eg:
-a(all) /home 顯示/home 目錄下每個子文件的大小,默認單位為kb

-b /home 以bytes為單位顯示/home 目錄下各個子目錄的大小

-h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小

-sh /home 以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize

df命令和命令的區別:

df命令是從文件系統考慮的,不僅考慮文件佔用的空間,還要統計被命令或者程序佔用的空間。

命令面向文件,只計算文件或目錄佔用的空間。

作用:查看內存及交換空間使用狀態

語法: free [-kmg]

選項:

-k: 以KB為單位顯示,默認就是以KB為單位顯示

-m: 以MB為單位顯示

-g: 以GB為單位顯示

清理緩存命令:

echo 1 > /proc/sys/vm/drop_caches

Ⅷ 求在linux環境下用QT編寫一個非常簡單的計算器計算器包括加,減,乘,除四種運算。用戶通過滑鼠進

如果只做四個簡單的運算這應應該可以
shell腳本代碼如下:
#!/bin/bash
read -p "input num1:" a
read -p "input num2:" b
read -p "input operator:" o
case $o in
+) let "res=a + b"
echo $res;;
-) let "res=a - b"
echo $res;;
/) awk 'BEGIN{printf "%.2f\n",'$a'/'$b'}';;
*) let "res=a * b"
echo $res;;
esac

閱讀全文

與linux計算器命令相關的資料

熱點內容
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151