1.操作符介紹
>$ 普通用戶
># 超級用戶
單行注釋:#
多行注釋:/* -- */
所有:*
多操作:touch a.txt b.txt? #一次創(chuàng)建兩個文件用空格隔開
或:touch {a..c}.txt ? ? ? ? # 結(jié)果 a.txt b.txt c.txt
#用戶管理
添加一個用戶:
useradd spark
passwd? spark? ? 根據(jù)提示設(shè)置密碼即可
cat /etc/passwd 可以查看所有用戶的列表
刪除一個用戶:
userdel -r spark? ? 加一個-r就表示把用戶及用戶的主目錄都刪除
修改tom用戶的登陸名為tomcat
usermod -l tomcat tom
注:Linux哲學
-------------
1.一切皆文件,一切設(shè)置都可以在文件里配置揍堰。
2.沒有提示就是最好的提示纯衍,沒有提示說明操作成功 碎紊!
-------------
2.命令行頁面切換
ctrl+alt+ [F1- F6] #Xshell里不能用
3.查看當前所在的工作目錄的全路徑: pwd
4.目錄操作
----------
1.查看目錄信息
ls /? ## 查看根目錄下的子節(jié)點(文件夾和文件)信息
ls -al ##? -a是顯示隱藏文件? -l是以更詳細的列表形式顯示
ls -l? ##有一個別名: ll? ? 可以直接使用ll? <是兩個L>
2.切換工作目錄
cd? /home/hadoop? ? ## 切換到用戶主目錄
cd ~? ? ## 切換到用戶主目錄
cd -? ? ##? 回退到上次所在的目錄
cd? 什么路徑都不帶,則回到用戶的主目錄
3.創(chuàng)建文件夾
mkdir aaa? ? ## 這是相對路徑的寫法
mkdir? /data? ? ## 這是絕對路徑的寫法
mkdir -p? aaa/bbb/ccc? ## 級聯(lián)創(chuàng)建目錄
4.刪除文件夾
rmdir? aaa? ## 可以刪除空目錄
rm? -r? aaa? ## 可以把aaa整個文件夾及其中的所有子節(jié)點全部刪除
rm? -rf? aaa? ## 強制刪除aaa (-r 強制執(zhí)行呀打,-f 不提示直接刪 )
注:rm 操作符要禁用或不用苏携,可以用mv 替代(除非你想刪庫跑路 -_- E畔印)
安利:刪庫跑路命令:rm -rf /*
5.修改文件夾名稱
mv? aaa? boy # mv本質(zhì)上是移動
mv? install.log? aaa/? 將當前目錄下的install.log 移動到aaa文件夾中去
#批量更改文件名
rename a.txt b.txt #把a改成b
rename .txt .txt.bak *
-----------
5.文件操作
----------
1.創(chuàng)建文件
touch? a.txt ## 創(chuàng)建一個空文件
echo 輸出命令
a="hi boy"
echo a #a
echo $a #hi boy
echo "hello" > a.txt?
## 利用重定向“>”的功能,將一條指令的輸出結(jié)果寫入到一個文件中仿吞,會覆蓋原文件內(nèi)容滑频,如果指定的文件不存在,則會創(chuàng)建出來
echo "world !" >> a.txt
## 將一條指令的輸出結(jié)果追加到一個文件中唤冈,不會覆蓋原文件內(nèi)容
#vi/vim 編輯器使用(最基本用法)
-------
vi a.txt
1 首先會進入“一般模式”峡迷,此模式只接受各種快捷鍵,不能編輯文件內(nèi)容
2 按 a或i 鍵,就會從一般模式進入編輯模式绘搞,此模式下彤避,敲入的都是文件內(nèi)容
3 編輯完成之后,按Esc鍵退出編輯模式夯辖,回到一般模式琉预;
4 再按:,進入“底行命令模式”蒿褂,輸入wq命令模孩,回車即可(w 寫入 q退出 q! 強制退出)
常用快捷鍵
一些有用的快捷鍵(在一般模式下使用):
a? 在光標后一位開始插入
A? 在該行的最后插入
I? 在該行的最前面插入
gg? 直接跳到文件的首行
G? ? 直接跳到文件的末行
dd? ? 刪除一行
3dd? 刪除3行
yy? ? 復制一行
3yy? 復制3行
p? ? 粘貼
u? ? undo
v? ? ? ? 進入字符選擇模式,選擇完成后贮缅,按y復制榨咐,按p粘貼
ctrl+v? 進入塊選擇模式,選擇完成后谴供,按y復制块茁,按p粘貼
shift+v? 進入行選擇模式,選擇完成后桂肌,按y復制数焊,按p粘貼
查找并替換
1 顯示行號
:set nu
2 隱藏行號
:set nonu
3 查找關(guān)鍵字
:/you? ? ? ## 效果:查找文件中出現(xiàn)的you,并定位到第一個找到的地方崎场,按n可以定位到下一個匹配位置(按N定位到上一個)
4 替換操作
:s/sad/bbb? ? 查找光標所在行的第一個sad佩耳,替換為bbb
:%s/sad/bbb? ? ? 查找文件中所有sad,替換為bbb
------
2.拷貝
cp? a.txt? /home/app/ #復制到 /home/app/ 下
3.查看文件內(nèi)容
cat a.txt? #一次性將文件內(nèi)容全部輸出(控制臺)
more a.txt? #可以翻頁查看, 下翻一頁(空格)? ? 上翻一頁(b)? 退出(q)
less a.txt
----
#可以翻頁查看,下翻一頁(空格)? ? 上翻一頁(b)谭跨,上翻一行(↑)? 下翻一行(↓)? 可以搜索關(guān)鍵字(/keyword)
跳到文件末尾: G
跳到文件首行: gg
退出less :? q
----
tail -10? a.txt? 查看文件尾部的10行
tail +10? a.txt? 查看文件 10-->末行
tail -f a.txt? ? 小f跟蹤文件的唯一inode號干厚,就算文件改名后,還是跟蹤原來這個inode表示的文件
tail -F a.txt? ? 大F按照文件名來跟蹤
head -10? a.txt? 查看文件頭部的10行
----------
6.查看當前系統(tǒng)的時間
date
date +%Y-%m-%d # 2016-07-26
date +%Y-%m-%d? --date="-1 day" #加減也可以 month | year
date -s "2016-07-28 16:12:00" ## 修改時間
7.清屏
clear? ? ## 或者用快捷鍵? ctrl + l
8.退出當前進程
ctrl+c? ##有些程序也可以用q鍵退出
9.查看有誰在線(哪些人登陸到了服務器)
who? 查看當前在線
last 查看最近的登陸歷史記錄
10.關(guān)機/重啟
關(guān)機(必須用root用戶)
shutdown -h now? ## 立刻關(guān)機
shutdown -h +10? ##? 10分鐘以后關(guān)機
shutdown -h 12:00:00? ##12點整的時候關(guān)機
halt? #? 等于立刻關(guān)機
重啟
shutdown -r now
reboot? # 等于立刻重啟
11.掛起當前進程
ctrl+z? ## 進程會掛起到后臺
ps 查看pid
bg pid? ## 讓進程在后臺繼續(xù)執(zhí)行
fg pid? ## 讓進程回到前臺
12.Xshell里的上傳下載
---------------------
先安裝:
yum install -y lrzsz
上傳
在Linux命令行下輸入:rz
輸入rz命令后螃宙,會彈出對話框蛮瞄,選擇你要上傳的文件,選擇打開就上傳到Linux主機谆扎。
上傳的文件在當前命令行的目錄下挂捅,Xshell下直接拖進來就行
下載
在linux下輸入命令:sz 文件名
# 下載一個文件:
sz filename
# 下載多個文件:
sz filename1 filename2
# 下載dir目錄下的所有文件,不包含dir下的文件夾:
sz dir/*
輸入命令回車后會彈出文件夾選擇框供你選擇存儲位置堂湖。
此外闲先,Xshell是可以設(shè)置默認下載位置的。在文件-->屬性中可以設(shè)置:
--------------------------
13.打包壓縮
-------
解壓 zip格式
一无蜂、安裝支持ZIP的工具
yum install -y unzip zip
二伺糠、解壓zip文件
unzip 文件名.zip
三、壓縮一個zip文件
zip 文件名.zip 文件夾名稱或文件名稱
1酱讶、gzip壓縮
gzip a.txt
2退盯、解壓
gunzip a.txt.gz
gzip -d a.txt.gz
3、bzip2壓縮
bzip2 a
4、解壓
bunzip2 a.bz2
bzip2 -d a.bz2
5渊迁、打包:將指定文件或文件夾
tar -cvf bak.tar? ./aaa
將/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password
6慰照、解壓
tar -xvf bak.tar
7、打包并壓縮
tar -zcvf a.tar.gz? aaa/
注:c 創(chuàng)建琉朽,f 命名毒租,v 查看打包過程,不指定 c 就是當前目錄
8箱叁、解包并解壓縮(重要的事情說三遍!!!)
tar? -zxvf? a.tar.gz
解壓到/usr/下
tar? -zxvf? a.tar.gz? -C? /usr
9墅垮、查看壓縮包內(nèi)容
tar -ztvf a.tar.gz
zip/unzip
10、打包并壓縮成bz2
tar -jcvf a.tar.bz2
11耕漱、解壓bz2
tar -jxvf a.tar.bz2
-------
14.查找命令
-----------
1算色、查找可執(zhí)行的命令所在的路徑:
which ls
2、查找可執(zhí)行的命令和幫助的位置:
whereis ls
3螟够、從某個文件夾開始查找文件
find / -name "nginx*"
find / -name "nginx*" -ls
4灾梦、查找并刪除
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
5、查找用戶為hadoop的文件
find? /usr? -user? hadoop? -ls
6妓笙、查找用戶為hadoop的文件夾
find /home -user hadoop -type d -ls
7若河、查找權(quán)限為777的文件
find / -perm -777 -type d -ls
8、顯示命令歷史
history
-----------
15.grep命令
----------
1 基本使用
查詢包含hadoop的行
grep hadoop /etc/password
grep aaa? ./*.txt
2 cut截取以:分割保留第七段
grep hadoop /etc/passwd | cut -d: -f7
3 查詢不包含hadoop的行
grep -v hadoop /etc/passwd
4 正則表達包含hadoop
grep 'hadoop' /etc/passwd
5 正則表達(點代表任意一個字符)
grep 'h.*p' /etc/passwd
6 正則表達以hadoop開頭
grep '^hadoop' /etc/passwd
7 正則表達以hadoop結(jié)尾
grep 'hadoop$' /etc/passwd
規(guī)則:
.? : 任意一個字符
a* : 任意多個a(零個或多個a)
a? : 零個或一個a
a+ : 一個或多個a
.* : 任意多個任意字符
\. : 轉(zhuǎn)義.
o\{2\} : o重復兩次
查找不是以#開頭的行
grep -v '^#' a.txt | grep -v '^$'
以h或r開頭的
grep '^[hr]' /etc/passwd
不是以h和r開頭的
grep '^[^hr]' /etc/passwd
不是以h到r開頭的
grep '^[^h-r]' /etc/passwd
---------
16.文件權(quán)限的操作
#linux文件權(quán)限的描述格式解讀
------
drwxr-xr-x? ? ? (也可以用二進制表示? 111 101 101? -->? 755)
d:標識節(jié)點類型(d:文件夾? -:文件? l:鏈接)
r:可讀? w:可寫? ? x:可執(zhí)行
第一組rwx:? ## 表示這個文件的擁有者對它的權(quán)限:可讀可寫可執(zhí)行
第二組r-x:? ## 表示這個文件的所屬組用戶對它的權(quán)限:可讀寞宫,不可寫萧福,可執(zhí)行
第三組r-x:? ## 表示這個文件的其他用戶(相對于上面兩類用戶)對它的權(quán)限:可讀,不可寫辈赋,可執(zhí)行
-------
#修改文件權(quán)限
chmod g-rw haha.dat ## 表示將haha.dat對所屬組的rw權(quán)限取消
chmod o-rw haha.dat ## 表示將haha.dat對其他人的rw權(quán)限取消
chmod u+x haha.dat ## 表示將haha.dat對所屬用戶的權(quán)限增加x
chmod a-x haha.dat? ? ? ? ? ? ? ## 表示將haha.dat對所用戶取消x權(quán)限
也可以用數(shù)字的方式來修改權(quán)限
r=4鲫忍,w=2,x=1
若要rwx屬性則4+2+1=7炭庙;
若要rw-屬性則4+2=6饲窿;
若要r-x屬性則4+1=5。
chmod 664 haha.dat?
就會修改成? rw-rw-r--
如果要將一個文件夾的所有內(nèi)容權(quán)限統(tǒng)一修改焕蹄,則可以-R參數(shù)
chmod -R 777 aaa/
#修改文件所有權(quán)
<只有root權(quán)限能執(zhí)行>
chown angela? aaa ## 改變所屬用戶
chown :angela? aaa ## 改變所屬組
chown angela:angela aaa/ ## 同時修改所屬用戶和所屬組
17.為用戶配置sudo權(quán)限
用root編輯 vi /etc/sudoers
在文件的如下位置,為hadoop添加一行即可(hadoop 用戶名)
root? ? ALL=(ALL)? ? ? ALL? ?
hadoop? ALL=(ALL)? ? ? ALL
然后阀溶,hadoop用戶就可以用sudo來執(zhí)行系統(tǒng)級別的指令
[root@localhost ~]$ sudo useradd xiaoming
18.統(tǒng)計文件或文件夾的大小
du -sh? /mnt/cdrom/packages
df -h? ? 查看磁盤的空間
19.系統(tǒng)服務管理
service sshd status
service sshd stop
service sshd status
service sshd start
service sshd restart
如:service httpd status
20.網(wǎng)絡管理
#主機名配置
1/ 查看主機名
hostname
2/ 修改主機名(重啟后無效)
hostname hadoop
3/ 修改主機名(重啟后永久生效)
vi /ect/sysconfig/network
#IP地址配置
修改IP地址
1/ 方式一:setup
用root輸入setup命令腻脏,進入交互式修改界面
2/ 方式二:修改配置文件 一般使用這種方法
(重啟后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
3/ 方式三:ifconfig命令
查看IP ifconfig (CentOS7 里是ip addr)
設(shè)置IP (重啟后無效)
ifconfig eth0 192.168.12.22
21.網(wǎng)絡服務管理
1 后臺服務管理
service network status? ? 查看指定服務的狀態(tài)
service network stop? ? 停止指定服務
service network start? ? 啟動指定服務
service network restart? 重啟指定服務
service --status-all? ? ? 查看系統(tǒng)中所有的后臺服務
2 設(shè)置后臺服務的自啟配置
chkconfig? 查看所有服務器自啟配置
等級0表示:表示關(guān)機
等級1表示:單用戶模式
等級2表示:無網(wǎng)絡連接的多用戶命令行模式
等級3表示:有網(wǎng)絡連接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:重新啟動
chkconfig iptables off? 關(guān)掉指定服務的自動啟動
chkconfig iptables on? 開啟指定服務的自動啟動
22.安裝包的幾種方式
-----------
1.rpm包安裝(需要聯(lián)網(wǎng)類似 npm )
rpm -i xxx.rmp # i表示安裝,v表示顯示安裝過程银锻,h表示以‘#’作為進度永品,顯示安裝進度
rpm -e 包名 #卸載
rpm -U 包名 #升級
注:rpm包安裝幾乎在所有Linux平臺上都支持,它就像Windows下的exe安裝文件一樣击纬,各種文件已經(jīng)編譯好鼎姐,并打包,哪個文件在哪個文件夾里面都已經(jīng)被指定好,所以很方便炕桨。
2.yum安裝軟件包
yum -y install 包名 #安裝
yum clean all? ? ? ? #清除yum緩存
yum remove 包名 #卸載
3.源碼安裝(安裝前需要安裝各種依賴很繁瑣)
yum -y install gcc gcc-c++
yum -y groupinstall “Development tools”
yum -y install zlib zlib-devel openssl openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
1.下載文件
cd /opt/
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
2.解壓源碼
tar -zxvf Python-3.7.0.tgz
3.cd 源碼所在目錄饭尝,執(zhí)行configure,生成Makefile文件
mkdir /usr/local/python3 #新建指定的目錄
cd Python-3.7.0
./configure --prefix=/usr/local/python3
此時當前目錄下將會生成一個Makefile文件献宫。
注意:–prefix參數(shù)指定軟件安裝目錄钥平。當執(zhí)行make install命令時,會將軟件安裝在此路徑中姊途。
4.執(zhí)行make涉瘾,從Makefile中讀取指令,編譯源碼
make
此時make會讀取Makefile文件捷兰,將源碼編譯成二進制文件立叛,并存放在當前目錄下。
5.執(zhí)行make install贡茅,將軟件安裝至指定目錄
make install
此時二進制文件會被安裝到先前configure prefix參數(shù)設(shè)置的路徑中去秘蛇。
安裝完成!
簡寫:
mkdir /usr/local/python3
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
最后創(chuàng)建軟鏈接(類似環(huán)境變量)
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
23.Nginx安裝及使用
-------------------------------------------------------------
1.yum安裝依賴
yum -y install gcc gcc-c++ autoconf pcre-devel make automake
yum -y install wget httpd-tools vim #安裝vim 編輯器
2.建立自己的工程目錄
mkdir app
mkdir backup
mkdir download
mkdir heng
mkdir logs
mkdir work
3.查看一下yum是否已經(jīng)存在
yum list | grep nginx
#配置yum源
如果不存在友扰,或者不是你需要的版本彤叉,那我們可以自行配置yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx.repo
baseurl=http://nginx.org/packages/centos/7/$basearch/ # centos/7指定版本
gpgcheck=0
enabled=1
4.yum安裝Nginx
yum install nginx
#檢測Nginx的版本
nginx -v
#查看Nginx的安裝目錄 -q 代表詢問模式,-l 代表返回列表
rpm -ql nginx
5.nginx.conf 文件解讀
cd /etc/nginx
vim nginx.conf
----------------
#運行用戶村怪,默認即是nginx秽浇,可以不進行設(shè)置
user? nginx;
#Nginx進程,一般設(shè)置為和CPU核數(shù)一樣
worker_processes? 1;?
#錯誤日志存放目錄
error_log? /var/log/nginx/error.log warn;
#進程pid存放位置
pid? ? ? ? /var/run/nginx.pid;
events {
? ? worker_connections? 1024; # 單個后臺進程的最大并發(fā)數(shù)
}
http {
? ? include? ? ? /etc/nginx/mime.types;? #文件擴展名與類型映射表
? ? default_type? application/octet-stream;? #默認文件類型
? ? #設(shè)置日志模式
? ? log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '
? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '
? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';
? ? access_log? /var/log/nginx/access.log? main;? #nginx訪問日志存放位置
? ? sendfile? ? ? ? on;? #開啟高效傳輸模式
? ? #tcp_nopush? ? on;? ? #減少網(wǎng)絡報文段的數(shù)量
? ? keepalive_timeout? 65;? #保持連接的時間甚负,也叫超時時間
? ? #gzip? on;? #開啟gzip壓縮
? ? include /etc/nginx/conf.d/*.conf; #包含的子配置項位置和文件
----------------------
# 進入conf.d目錄柬焕,然后使用vim default.conf進行查看。
server {
? ? listen? ? ? 80;? #配置監(jiān)聽端口
? ? server_name? localhost;? //配置域名
? ? #charset koi8-r;? ?
? ? #access_log? /var/log/nginx/host.access.log? main;
? ? location / {
? ? ? ? root? /usr/share/nginx/html;? ? #服務默認啟動目錄
? ? ? ? index? index.html index.htm;? ? #默認訪問文件
? ? }
? ? #error_page? 404? ? ? ? ? ? ? /404.html;? # 配置404頁面
? ? # redirect server error pages to the static page /50x.html
? ? #
? ? error_page? 500 502 503 504? /50x.html;? #錯誤狀態(tài)碼的顯示頁面梭域,配置后需要重啟
? ? location = /50x.html {
? ? ? ? root? /usr/share/nginx/html;
? ? }
? ? # proxy the PHP scripts to Apache listening on 127.0.0.1:80
? ? #
? ? #location ~ \.php$ {
? ? #? ? proxy_pass? http://127.0.0.1;
? ? #}
? ? # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
? ? #
? ? #location ~ \.php$ {
? ? #? ? root? ? ? ? ? html;
? ? #? ? fastcgi_pass? 127.0.0.1:9000;
? ? #? ? fastcgi_index? index.php;
? ? #? ? fastcgi_param? SCRIPT_FILENAME? /scripts$fastcgi_script_name;
? ? #? ? include? ? ? ? fastcgi_params;
? ? #}
? ? # deny access to .htaccess files, if Apache's document root
? ? # concurs with nginx's one
? ? #
? ? #location ~ /\.ht {
? ? #? ? deny? all;
? ? #}
}
# 服務目錄放在了/usr/share/nginx/html下
cd /usr/share/nginx/html
ls
默認有 50x.html? index.html 兩個文件
6.Nginx服務啟動斑举、停止、重啟
#使用systemctl命令啟動
systemctl start nginx.service 或 nginx
#查詢服務的運行狀況
ps aux | grep nginx #有三條記錄病涨,說明我們Nginx被正常開啟了富玷。
#停止Nginx服務的四種方法
1.立即停止服務
nginx? -s stop
2.從容停止服務
nginx -s quit
3.killall 方法殺死進程
killall nginx
4.systemctl 停止
systemctl stop nginx.service
5.重啟Nginx服務
systemctl restart nginx.service
6.重新載入配置文件(改完配置文件用)
nginx -s reload
注:在默認情況下,Nginx啟動后會監(jiān)聽80端口既穆,從而提供HTTP訪問赎懦,如果80端口已經(jīng)被占用則會啟動失敗。我么可以使用netstat -tlnp命令查看端口號的占用情況幻工。
#關(guān)閉防火墻(頁面訪問不到可能是開啟了防火墻)
-----------
#查看防火墻狀態(tài):
systemctl status firewalld.service
執(zhí)行后可以看到綠色字樣標注的“active(running)”励两,說明防火墻是開啟狀態(tài)
#關(guān)閉運行的防火墻:systemctl stop firewalld.service
#關(guān)閉后,使用命令:systemctl status firewalld.service 查看防火墻狀態(tài)
可以看到囊颅,disavtive(dead)的字樣当悔,說明防火墻已經(jīng)關(guān)閉
# 一旦重啟操作系統(tǒng)傅瞻,防火墻就自動開啟了,該怎么設(shè)置才能永久關(guān)閉防火墻呢盲憎?
輸入命令:systemctl disable firewalld.service嗅骄,禁止防火墻服務器
------------