linux(ubuntu)中一些特殊符號
?
匹配一個字元
*
匹配任意字串
()
開一個子程序,見程式碼
sorrow@ubuntu:~$ (ccc=1000)
sorrow@ubuntu:~$ (echo $ccc)
sorrow@ubuntu:~$ echo $ccc
sorrow@ubuntu:~$
以上都不能輸出ccc的值,因為小括號內是一個程序,新的小括號是另一個程序。
sorrow@ubuntu:~$ (echo $PATH)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
sorrow@ubuntu :~$
環境變數可以被繼承,要想變數可以被繼承,用export:
sorrow@ubuntu:~$ ccc=199
sorrow@ubuntu:~$ echo $ccc
199
sorrow@ubuntu:~$ (echo $ccc) #這裡可以繼承
199
sorrow@ubuntu:~$ bash #開一個子程序
sorrow@ubuntu:~$ echo $ccc #未繼承
sorrow@ubuntu:~$ exit
sorrow@ubuntu:~$ (echo $ccc)
199
sorrow@ubuntu:~$ export $ccc
bash: export: `199': not a valid identifier
[email protected]:~$ export ccc
[email protected]:~$ bash
[email protected]:~$ echo $ccc #子程序已繼承ccc
199
unset:刪除變數
sorrow@ubuntu:~$ echo $ccc
199
sorrow@ubuntu:~$ unset ccc
sorrow@ubuntu:~$ echo $ccc
sorrow@ubuntu:~$
cd -
回到上一層目錄
[]
用法1:括號內為可替換字母,以下命令檢視/目錄下以r或者v開頭的資料夾
[email protected]:~$ ls /[rv]*
/vmlinuz
ls: cannot open directory /root: Permission denied
/run:
acpid.socket fsck mlocate.daily.lock sendsigs.omit.d user
apache2 initctl mount shm utmp
avahi-daemon initramfs network systemd uuidd
cgmanager kerneloops.pid NetworkManager tmpfiles.d vmblock-fuse
crond.pid lightdm pppconfig tpvmlpd.pid vmtoolsd.pid
crond.reboot lightdm.pid resolvconf tpvmlpd.stat
cups lock rsyslogd.pid udev
dbus log samba udisks2
/var:
backups crash local log metrics run tmp
cache lib lock mail opt spool www
[email protected]:~$
同理,下面命令檢視以rstuvw開頭的檔案
sorrow@ubuntu:~$ ls /bin/[r-w]*
/bin/rbash /bin/systemd-escape
/bin/readlink /bin/systemd-hwdb
/bin/red /bin/systemd-inhibit
/bin/rm /bin/systemd-machine-id-setup
/bin/rmdir /bin/systemd-notify
/bin/rnano /bin/systemd-tmpfiles
/bin/running-in-container /bin/systemd-tty-ask-password-agent
/bin/run-parts /bin/tailf
/bin/sed /bin/tar
/bin/setfacl /bin/tempfile
/bin/setfont /bin/touch
/bin/setupcon /bin/true
/bin/sh /bin/udevadm
/bin/sh.distrib /bin/ulockmgr_server
/bin/sleep /bin/umount
/bin/ss /bin/uname
/bin/static-sh /bin/uncompress
/bin/stty /bin/unicode_start
/bin/su /bin/vdir
/bin/sync /bin/vmmouse_detect
/bin/systemctl /bin/wdctl
/bin/systemd /bin/which
/bin/systemd-ask-password /bin/whiptail
sorrow@ubuntu:~$
中括號內可以是大小寫字母、數字
用法2:不解釋,看程式碼
sorrow@ubuntu:~/test$ a=123
sorrow@ubuntu:~/test$ b=456
sorrow@ubuntu:~/test$ echo [123+456]
[123+456]
sorrow@ubuntu:~/test$ echo $[123+456]
579
{}
用法1:代表列舉
sorrow@ubuntu:~$ touch {a,b}{1,2}.txt
sorrow@ubuntu:~$ ls
a1.txt b2.txt Downloads myfirstshell.sh Public tmp.txt
a2.txt Desktop dreamingc myfirstshell.sh~ pythonCode Videos
b1.txt Documents Music Pictures Templates
sorrow@ubuntu:~$ rm {a,b}{1,2}.txt
sorrow@ubuntu:~$ ls
Desktop dreamingc myfirstshell.sh~ pythonCode Videos
Documents Music Pictures Templates
Downloads myfirstshell.sh Public tmp.txt
sorrow@ubuntu:~$
建立了4個組合檔案,又刪除
用法2:如果想輸出如果存在了aaa這個變數,又想輸出aaa00怎麼辦?
sorrow@ubuntu:~/test$ aaa=199
sorrow@ubuntu:~/test$ echo $aaa00
sorrow@ubuntu:~/test$ echo ${aaa}00
19900
sorrow@ubuntu:~/test$
& (外加jobs, kill, fg 的用法)
後臺執行,命令“見碼知義”
sorrow@ubuntu:~/test$ sleep 300 &
[1] 43926
sorrow@ubuntu:~/test$ jobs
[1]+ Running sleep 300 &
sorrow@ubuntu:~/test$ fg %1
sleep 300
^C
sorrow@ubuntu:~/test$ jobs
sorrow@ubuntu:~/test$ sleep 300 &
[1] 43929
sorrow@ubuntu:~/test$ jobs
[1]+ Running sleep 300 &
sorrow@ubuntu:~/test$ kill %1
sorrow@ubuntu:~/test$ jobs
[1]+ Terminated sleep 300
sorrow@ubuntu:~/test$
$?
表示上一條命令的返回值
sorrow@ubuntu:~$ test -d /etc
sorrow@ubuntu:~$ echo $?
0
sorrow@ubuntu:~$ test -d /etc/passwd
sorrow@ubuntu:~$ echo $?
1
sorrow@ubuntu:~$
表示返回值為0,/etc是一個目錄,返回值為1,表示/etc/passwd不是一個目錄
||和&&
||表示或者,前一個命令執行成功則不執行後面的命令。(||表示或者,&&表示和,跟c語言一樣。)
sorrow@ubuntu:~$ ls /bin/ || echo ok
bash lesskey rmdir
bunzip2 lesspipe rnano
busybox ln running-in-container
bzcat loadkeys run-parts
#。。。。。。。輸出太多了為了不佔用字數刪了,然後執行:
sorrow@ubuntu:~$ ls /bin/1234 || echo ok #沒有這個目錄
ls: cannot access /bin/1234: No such file or directory
ok
sorrow@ubuntu:~$
同理,&&的作用就不用多說了
; #這是分號
相當於回車,多用於shell程式設計時。下面看起來好像&&
sorrow@ubuntu:~$ ls ; echo asdf
Desktop dreamingc myfirstshell.sh~ pythonCode Videos
Documents Music Pictures Templates
Downloads myfirstshell.sh Public tmp.txt
asdf
sorrow@ubuntu:~$
’ ‘和”“
轉義
sorrow@ubuntu:~$ touch "a b c"
sorrow@ubuntu:~$ ls
a b c Documents dreamingc myfirstshell.sh Pictures pythonCode tmp.txt
Desktop Downloads Music myfirstshell.sh~ Public Templates Videos
sorrow@ubuntu:~$ touch 'a b c d '
sorrow@ubuntu:~$ ls
a b c Documents Music Pictures Templates
a b c d Downloads myfirstshell.sh Public tmp.txt
Desktop dreamingc myfirstshell.sh~ pythonCode Videos
sorrow@ubuntu:~$ rm a\ b\ c
sorrow@ubuntu:~$ rm a\ b\ c\ d\
sorrow@ubuntu:~$ ls
Desktop dreamingc myfirstshell.sh~ pythonCode Videos
Documents Music Pictures Templates
Downloads myfirstshell.sh Public tmp.txt
sorrow@ubuntu:~$
<和>和>>
輸入、輸出重定向、追加在檔案末尾
不解釋。。。。
sorrow@ubuntu:~/test$ ls -l /1234 > a.txt
ls: cannot access /1234: No such file or directory
sorrow@ubuntu:~/test$ ls -l /1234 2> a.txt
sorrow@ubuntu:~/test$ vim a.txt
錯誤輸出用2表示,>只能重定向標準輸出,要輸出標準錯誤用2>
腦洞:2> 可用於過濾
sorrow@ubuntu:~/test$ find / -name passwd 2> /dev/null
/etc/passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/usr/bin/passwd
^C
sorrow@ubuntu:~/test$
上面將錯誤輸入“黑洞(/dev/null)”,正確的資訊顯示(可以試試都標準輸出會怎樣)
&>
標準輸出和標準錯誤都輸出
<<
開啟緩衝區寫入
sorrow@ubuntu:~/test$ cat << EOF >a.txt
> asgfag
> agaer
> awrgtqg
> EOF
sorrow@ubuntu:~/test$ ls
a.txt
sorrow@ubuntu:~/test$ vim a.txt
將緩衝區寫入寫進a.txt中,只要輸入EOF三個字元就會結束輸入(vim檢視a.txt內容只有三行)
內容很少,也不夠詳細,歡迎補充^_^
相關推薦
linux(ubuntu)中一些特殊符號
? 匹配一個字元 * 匹配任意字串 () 開一個子程序,見程式碼 sorrow@ubuntu:~$ (ccc=1000) sorrow@ubuntu:~$ (echo $ccc) sorrow@ubuntu:~$ echo $ccc
在Linux(Ubuntu)中使用終端編譯並執行.c和.cpp檔案
首先要保證系統中安裝了C語言和C++對應的編譯器:gcc -> C ,g++ -> C++1、.c檔案的編譯與執行(1).c檔案hello.c程式碼如下:#include<stdio.h> int main() { printf("H
在Windows 10 自帶的Linux(Ubuntu)中安裝redis 步驟Mark
安裝步驟參考:https://blog.csdn.net/xiangwanpeng/article/details/54586087問題一:安裝完gcc後執行make命令的時候出現 'make' can be found in the following packages:於
Linux(Ubuntu)中改變敲入sudo之後記住密碼的時間
在使用Ubuntu時可能會遇到當敲入sudo XXX XXX….$: 之後系統會記錄密碼一段時間,如果想要改變這個記錄的時間(系統預設是5分鐘),方法如下: 輸入sudo visudo 找到”Defaults env_reset”行(如果沒有找到,就直接加入
在linux(ubuntu)系統中已經安裝好輸入法必需的框架和輸入法,如何切換輸入法?
我們知道在linux系統右上角設定->裝置->鍵盤中可以設定切換輸入法的快捷鍵,預設是super+空格,也就是windows鍵+空格。但是我在裝了一個預設漢語字母輸入法,谷歌輸入法和搜狗拼音輸入法後卻不能在他們之間來回切換。 後來終於發現只有同一個框架下的輸入法才可以自由使用快捷
Linux(Ubuntu)下的OpenGl的環境安裝, 在qt程式中使用opengl庫
OpenGl的環境安裝 以下參考自: https://blog.csdn.net/wasaiheihei/article/details/52085397 1. 建立基本編譯環境 首先不可或缺的,就是編譯器與基本的函式庫,如果系統沒有安裝的話,請依照下面的方式安裝: $ sudo a
老牛知點所以然-Linux(Ubuntu)配置安卓開發環境及過程中常見問題解決
[TOC] 題記: 這篇部落格基本上是半年多實踐過程中積累到筆記中的。在第二次配置完開發環境後,我就有意識的把大概的配置過程形成了一個筆記,這半年多將近一年的時間裡,陸續發現了一些不足和謬誤,還有以前踩過的坑沒有及時記下來,最近又踩過的,逐漸補充了過來,算是
決策樹算法(五)——處理一些特殊的分類
字典 如果 span items 分類 lis 函數 可能 一個 在之前的決策樹算法中我們已經講解了從數據集構造決策樹算法的功能模塊。 首先是創建數據集,然後計算香農熵,然後基於最好的屬性值劃分數據集,由於特征值可能多於兩個,因此可能存在大於兩個分支的數據集劃分。第一次劃
linux(ubuntu) 創建桌面圖標
mys devel navicat intellij evel log 執行權 avi mina 1 創建desktop後綴文件 2 添加內容 [Desktop Entry]Name=navicat// 應用名字Exec=/opt/navicat112_mysql_cs_
Linux(ubuntu)安裝redis集群,redis集群搭建
sof 安裝redis redis wget fig 開啟 ++ gem OS 今天學習一下redis集群的搭建。redis在現在是很常用的數據庫,在nosql數據庫中也是非常好用的,接下來我們搭建一下redis的集群。 一、準備
Linux(Ubuntu)常用命令(三)
需要 ip地址 useradd 賬號 his word color -a change 查看時間 cal :顯示當前日期。 cal 2018 :顯示全年日歷。/ cal -y 顯示當年日歷。 date :顯示當前時間。 這幾個一般不會用到了解即可。 查
Linux(ubuntu)下安裝pycharm出錯Unsupported major.minor version 52.0
version -i sim one line height 檢測 cin 變量 已安裝python 已安裝jdk 在pycharm文件夾中bin中執行sh ./pycharm.sh 時出錯:Unsupported major.minor version 52.0 這個錯誤
阿里雲 Linux(CentOS)中Redis配置注意事項
1,執行的Redis伺服器提示找不到該命令: 執行ln -s /root/redis-2.8.17/src/redis-server / usr / bin / redis-server,為redis-server建立軟連線,其中/root/redis-2.8.17/src/為我redis安裝目
阿里雲 Linux(CentOS)中MySQL5.7安裝配置以及遠端連線配置最新完整版
1, mysql57-community-release-el7-11.noarch.rpm 點選下載並上傳到阿里雲。 2,切換資料夾,然後一步步輸入下面三條命令,即安裝好的MySQL的 (1),rpm -ivh mysql57-community-release-el7-1
Vmware虛擬機器完整建立一個linux(Ubuntu)系統全過程(四)
上一篇中,我們已經完整的講完了虛擬機器的安裝和虛擬機器工具的安裝,使我們的Ubuntu實現的互動共享的功能,這一篇,我們要講的是用ssh和Xshell實現伺服器的功能。 第一步:獲取軟體(包含註冊碼) 提取碼:q2j1 第二步: 安裝過程截圖 第三步:
Vmware虛擬機器完整建立一個linux(Ubuntu)系統全過程(三)
在上一篇中,我們已經成功的將我們的虛擬機器安裝了系統,完成了對系統的設定,那麼,我們如何能將本機檔案和虛擬機器檔案進行互動和共享呢?還有,解析度上我們怎麼得到我們想要的解析度呢? 第一步: 開啟我們的虛擬機器,然後單擊VMware選單欄虛擬機器選項,在彈出的選項中選擇安裝VMware T
Vmware虛擬機器完整建立一個linux(Ubuntu)系統全過程(二)
上一篇,我們講到了VMware的安裝和建立一個新的虛擬機器的框架,這篇我們就講一下如何將我們的下載的linux系統匯入到我們的虛擬機器框架中。 第一步: 開啟VMware,點選編輯虛擬機器設定,選擇CD/DVD(SATA)將右邊的連線改成使用ISO映像檔案,瀏覽找到你的Ubuntu壓縮包
Vmware虛擬機器完整建立一個linux(Ubuntu)系統全過程(一)
所需軟體下載: Vmware10虛擬機器+ubuntu16.04.3+啟用金鑰獲取 提取密碼: 8bzm 當軟體下載完畢後 我們就做好了一個完整虛擬機器所需要的所有初步軟體,所以接下來我們先進行第一步Vmware虛擬機器的安裝。 第
ubuntu設定root密碼及 Xftp連線linux(ubuntu)時提示ssh伺服器拒絕了密碼,請再試一次
原文: ubuntu設定root密碼及 Xftp連線linux(ubuntu)時提示ssh伺服器拒絕了密碼,請再試一次 alt+f2,在彈出的執行視窗中輸入:gnome-terminal sudo passwd root,回車後按提示輸入兩次root的密碼
VMware Workstation的安裝以及Linux(Ubuntu)系統的安裝
最近開始學習Linux作業系統,對於我們初學者,怎麼安裝虛擬機器和Ubuntu確實很頭疼,下面是自己的一些成果,僅供參考。 一、VMware Workstation的安裝 VMware是最常用的虛擬機器,他面向企業和個人開發了多個版本,其中有一些需要使用者購買許可證,如VMware Work