linux筆記1
linux一切沒有消息的消息就是最好的消息
基本命令學習
命令組成:cmd [options] [args]
手冊查看:
man 打開手冊,具體使用man man
命令展示:
<1>pwd 顯示當前工作路徑
<2>cd 切換工作路徑
linux文件系統結構是從/開始
路徑如果從/開始算----》絕對路徑
從當前路徑開始算-----》相對路徑(.當前 ..上一級)
<3>ls
options:
-a
-l
-i
-d
-h
<4>查看文件內容
cat filepath 顯示文件全部內容
less filepath 按屏顯示
/key 搜索
q 退出
head -行數 filepath 顯示文件前幾行
tail -行數 filepath 顯示文件的後幾行
<5>復制
cp [-r(目錄)] srcpath destpath
<6>剪切
mv srcpath destpath
<7>刪除
rm [-r(目錄) -f(強制)] filepath
<8>創建文件
touch filename 空文件
<9>創建目錄
mkdir dirname 空目錄
<10>關機
shutdown -h now
poweroff
init 0
halt
重啟
shutdown -r now
reboot
init 6
<11>
history---->查看歷史命令
文件管理
文件屬性(元信息)
<1>stat filepath
<2>ls -l(部分)
drwxr-xr-x. 2 root root 6 11月 26 12:15 音樂
文件類型d
不以後綴區分類型
七種文件類型
- regular 普通文件
d directory 目錄文件
c charactor 字符設備文件
b block 塊設備文件
l link 符號鏈接文件
p pipe 管道文件
s socket 套接字文件
文件權限rwxr-xr-x
擁有者 所屬組 其他用戶
u g o a(all)
修改文件權限:
<1>chmod u/g/o/a (+ -)r/w/x filepath
<2>chmod 0666 filepath
修改文件的擁有者和所屬組
chown user:group filepath
目錄文件:
r ls
w touch / mkdir / rm
x cd
防止產生權限過大的文件:
umask
mode & ~umask === 文件真正的權限
特殊權限
u+s---》所有有此權限的執行文件,可以使普通用戶在執行此命令期間,將身份切換為文件擁有者
文件的硬鏈接個數 2
硬鏈接:同一個文件,多一個名字
inode是同一個分區文件的唯一標識
所以硬鏈接文件不能跨分區
ln srcpath dest
cp -l srcpath dest
符號鏈接(軟鏈接):
就是一個快捷方式,存儲是源文件的路徑
可以跨分區
ln -s srcpath dest
cp -s srcpath dest
文件擁有者和所屬組
創建用戶useradd username
給定密碼passwd username
切換用戶su - username
刪除用戶userdel -r username
登出用戶exit
用戶信息:
/etc/passwd
組信息:
/etc/group
密碼:
/etc/shadow
組創建groupadd groupname
組刪除groupdel groupname
用戶添加到組內:
gpasswd -a user group
用戶從組中刪除:
gpasswd -d user group
文件大小
文件的大小(size) != 所占磁盤空間的大小(block)
stat filepath
block == 512bytes
du -sh filepath 查看filepath對應的文件所占用磁盤空間的大小
df -h 查看磁盤分區占用情況
文件時間
access time
modify time ls -l 內容改變
change time 屬性改變
文件的查找
可執行文件:
which cmd
whereis cmd
非可執行:
遍歷數據庫 locate filepath
更新數據庫 updatedb
find(遍歷磁盤空間)
find path options
options:
-name 按名字找
find /etc/ -name "passwd"
-size 按文件大小查找
find /etc/ -size n(b/c/k)
-mtime 修改時間
find /etc/ -mtime n(天)
-type 類型
find /etc/ -type f/d/c/b/p/l/s
-exec 對於查找到的結果執行
find /etc/ -name "hello" -exec ls -l {} \;
只對找到的文件執行ls -l結果,不打印路徑
-ok
find /etc/ -name "hello" -ok ls -l {} \;
在執行ls -l之前會詢問
-print 打印查找的結果
find /etc/ -name "hello" -print -exec ls -l {} \;
對找到的文件執行ls -l結果,打印路徑
-a 連接多個查找選項的
find /etc/ -type d -a -size +10k
文件的打包壓縮
壓縮:
.gz .bz2 .zip
gzip file 壓縮為.gz
gunzip file.gz 解壓縮
bzip2 file
bunzip2 file.bz2
zip xxx.zip file dir1 dir2
unzip xxxzip
主要tar options xx.tar.xx file1.... dir.....
options:
-c 創建
-v 過程可視
-f 在最後,後跟包名
-j 生成bz2壓縮格式
-z 生成gz格式壓縮文件
-J 生成xz格式
-x 解壓縮
-C 指定解壓路徑
-t 不解壓不解包的情況下查看壓縮包中內容
-r 向包中追加新文件
文件重定向
當用戶登陸成功後,三個文件依次打開:
標準輸入(stdin 0) 標準輸出(stdout 1) 標準錯誤輸出(stderr 2)
0< 標準輸入重定向
1> 標準輸出重定向
2> 標準錯誤輸出重定向
>> 追加
| 管道
wc [-lwc] filepath
-l line 統計filepath文件的行數
-w word 單詞個數
-c charactor 字符個數
grep [-iwn] key filepath ---->篩選文件內容
vim編輯器的使用:
vim filepath---->打開--->一般模式
--->進入編輯模式進行編輯(iIaAoOsS)
--->從編輯模式進入一般模式(Esc / Ctrl+c)
--->從一般模式進入命令行模式(:w保存 :q退出)
一般模式下:
2yy 復制2行
p 粘貼
2dd 剪切2行
u 撤銷
Ctrl+r 還原
x/X 刪除光標字符
r 替換
R 一直替換到Esc為止
塊選擇:
ctrl+v 方向鍵選擇
I / A 插入相應內容--->Esc Esc
gg 首行
G 末行
5G 第5行
命令行模式下:
:w 保存
:q 退出
:q! 強制退出
w filepath 另存為
saveas filepath 另存為
%s/oldstring/newstring/g 將所有的oldstring替換為newstring
2,5s/oldstring/newstring/g 將第2行到第5行oldstring替換為newstring
set nu 顯示行號
set ts=4 將Tab設置為4個字符寬度
軟件包管理
源碼包
.tar.gz .tar.bz2 .tar.xz
<1>下載並解壓解包
<2>編譯make
<3>make install
二進制包(.rpm)
yum 安裝:
/etc/yum.repo.d/xxx.repo
yum install xxxx
例如有如下軟件包:
coreutils-8.22-21.el7.x86_64.rpm
coreutils包名
yum install coreutils 安裝
yum remove coreutils 卸載
yum repolist 查看倉庫中有多少軟件包
yum list 列出所有的軟件包
yum provides /usr/bin/ls 查看文件對應的軟件包
yum update coreutils 更新
yum clean all 清除緩存
yum源所在路徑
/etc/yum.repos.d/xxx.repo
本地yum源配置:
1.將鏡像文件掛載到文件系統
2.創建鏡像的掛載點 mkdir /mnt/centos7
3.光盤鏡像在/dev/cdrom目錄
4.掛載光盤鏡像
mount -t iso9660 -o loop /dev/cdrom /mnt/centos7
5.配置鏡像的yum源
vim /etc/yum.repos.d/my.repo
[local_centos7]
name=centos7
baseurl=file:///mnt/centos7
enabled=1
gpgcheck=0
已下載的rpm軟件包,安裝:
xxxx.rpm
rpm -ivh xxxx 安裝已下載的rpm包
rpm -e xxxx 卸載
rpm -U xxxx 更新
rpm -qa 查詢系統中所有已安裝的rpm包
rpm -qf /usr/bin/ls 查詢ls對應的軟件包
網絡管理
<1>查看ip, mac, netmask....
ip addr
ifconfig
<2>查看/啟動/重啟/關閉/自啟動/禁用服務
systemctl status/start/restart/stop/enable/disable 服務名字
<3>手動配置靜態ip地址
關閉NetworkManager
systemctl stop NetworkManager
配置/etc/sysconfig/network-scripts/ifcfg-xxx
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.60.1
PREFIX=24
GATEWAY=172.16.60.254
重啟網絡服務
systemctl restart network
<4>防火墻
關閉防火墻
systemctl stop firewalld
systemctl disable firewalld
<5>vsftpd服務 ---> 文件共享
安裝:yum install vsftpd
啟動:systemctl start vsftpd
開機自啟動:systemctl enable vsftpd
配置文件:/etc/vsftpd/vsftpd.conf
訪問共享目錄:
下載安裝:yum install lftp
lftp 192.168.5.129
lcd --->切換下載路徑
get filepath 下載非目錄文件
mirror filepath 下載目錄文件
bye 退出
<6>nfs遠程掛載
下載安裝:
yum install nfs-utils rpcbind
啟動:
systemctl start nfs
systemctl enable nfs
systemctl start rpcbind
systemctl enable rpcbind
編輯共享路徑:
vim /etc/exports
/var/ftp/pub *(ro,sync,no_root_squash)
客戶端掛載:
mount 192.168.5.129:/var/ftp/pub /mnt
進程管理
查看進程信息
ps aux
終止進程通過kill 發送信號
kill -l查看所有的信號
kill -9 3333 發送9號信號給進程號為3333的進程
top 實時查看系統中進程的運行狀態
創建pyenv虛擬環境
sudo yum install openssl* 安裝其所需要的庫文件
git clone https://github.com/yyuu/pyenv.git ~/.pyenv 下載pyenv
echo ‘export PYENV_ROOT="$HOME/.pyenv"‘ >> ~/.bash_profile
echo ‘export PATH="$PYENV_ROOT/bin:$PATH"‘ >> ~/.bash_profile
echo ‘eval "$(pyenv init -)"‘ >> ~/.bash_profile
exec $SHELL 重啟終端運行的程序(shell)
source ~/.bash_profile 重新加載配置文件.bash_profile
pyenv install --list 列出所有我們可以通過pyenv安裝的python版本
pyenv install -v 3.6.4 用pyenv命令安裝python3.6.4
pyenv versions 查看當前系統中所有的python版本
pyenv version 查看當前所使用的版本
pyenv global 3.6.4 將使用版本切換到3.6.4
pyenv version
python
如果成功了 重啟計算機
linux筆記1