1. 程式人生 > >linux筆記1

linux筆記1

可執行文件 卸載 find bin 占用 unzip saveas 跨分區 actor

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