Linux学习笔记总结

选择操作系统
设置终端软件
如何学习命令


用户名@机器名:当前工作目录$用户输入命令
peter@dog:~$
~ 表示用户主目录


ls
mkdir 文件夹
rm 文件
rm -r 文件夹


命令本身 参数 操作对象


The Linux Command Line 教程
man rm 打开命令手册
/ 参数 查阅参数使用方法
/ -r
q 退出用户手册




文件系统树结构
绝对路径和相对路径
cd 命令


根目录
当前目录 pwd


走马观花看命令
copy 
    拷贝文件 cp file1 file2
    拷贝目录 cp -r file1 file2
move
    mv file dir
rename
    mv file1 file2
    mv dir1 dir2 # dir2 存在 则为移动操作
remove
    rm file
    rm -r dir
创建文件
    touch a.txt
    >a.txt # 重定向符
创建目录
    mkdir dir
查看文件
    cat file
查看文件类型
    file a.txt


wget url 下载html文件
Unix Linux 对文件后缀名不敏感
cat file
less file
Ctrl --
Ctrl ++
j 向下
k 向上
/ 进行字符查找
g 到文件头
G 到文件尾
q 退出文件


vim 编辑器


echo 打印


通配符
打包压缩
unzip file.zip
zip -r file.zip dir/


.tar.gz
解压 tar zxvf filename.tar.gz
压缩 tar zcvf filename.tar.gz dir/


.tar.gz2
解压 tar jxvf filename.tar.gz
压缩 tar jcvf filename.tar.gz dir/




终端配置




文件权限
    普通用户在自己的 hone 目录下有 写权限
    在其他目录下则没有
    超级管理员在任何地方都有 写权限
    sudo touch aa.txt 以超级管理员的身份执行 系统会要求 密码
    
    sudo apt-get -y install vim
用户权限
三种权限
r
w
x
文件模式
ls -l filename
- file
l sym link
d directory
...


ls -ld dir


chmod 控制文件模式
vim a.sh
ZZ 退出插入模式
./a.sh 执行文件
chmod +x a.sh


chowm 改变文件拥有者




重定向
date >a.txt
ls /bin|grap less
ls /bin >bin.txt
grep less <bin.txt
三个重要的文件
stdin 0
stdout 1
stderr 2
拐弯的各种方式
redirect stdout 输出重定向
    > 重定向前清空
    >> 不清空
标准错误输出重定向
    2>
    2>>
标准输入信息(不常用,通常使用管道线)
    <
    <<
管道线
前面一个命令的输出 作为后面一个命令的输入
cat files.txt|uniq 输出不重复
cat files.txt|uniq/grep txt 只输出txt结尾的文件
cat files.txt|uniq/grep txt/sort 对输出结果排序




软件安装
手动安装
    解压 tar zxvf /tar jxvf
    安装 
        PATH
        ln -s /opt/sublime_text_3/sublime_text /usr/bin/subl
    第二种自己下载源码 编译 安装软件过程
        进入源码目录
        ./configure
        make
        sudo make install
deb 包
    程序本身
    配置文件
    安装位置
    依赖关系
    sudo dpkg -i google-chrome-stable_current_i386.deb
    dpkg -l 列出系统上所有安装过的 deb 包
    dpkg -l|grep chrome
    dpkg -L google-chrome-stable 查看 deb 包在系统上安装了哪些文件
    dpkg -S dir 查看 dir 来自于哪个包
从 apt-get 仓库安装
    sudo apt-get install git 安装
    sudo apt-get remove git 卸载
    sudo apt-get purge git 卸载 并删除配置文件
    apt-cache search name|less 搜索要安装的软件包的包名






搜索
locate 在系统全局范围内定位文件
locate vimrc
locate --regrxp xxx 匹配正则表达式
updatedb 每天执行一次 将文件名保存到数据库
locate 在数据库正查找 而不是在文件系统中查找 找不到系统中新创建的文件
sudo updatedb


find 在一个目录范围内定位文件
find .
find .|grep .txt
find . -type f
find . -type d
find . -type f -exec ls -l '{}' ';' 
find . -type f -exec grep hello '{}' ';' -print
find . -type f -exec grep -n hello '{}' ';' -print
find . -type f -exec grep -ni hello '{}' ';' -print 忽略大小写


grep 




进程
获取进程号
PID
man ps
Ctrl + Alt + t 呼出终端
Ctrl + Shift + t 打开一个新的终端标签
ps aux
ps aux|less
/str 查找str
ps aux|grep vim
Ctrl + Shift + c 复制
Ctrl + Shift + v 粘贴
Ctrl + a 到行首


后台执行
firefox &
Ctrl + Z 暂停
bg 后台执行 
fg 回到前台


kill
kill -2 pid
kill -15 pid
kill -9 pid




网络操作
远程操作
ssh 远程操作工具
    ssh 是网络上两台机器互联的一种协议 需要互开 22 端口
    客户端要安装 相应的软件 openssh-client
    服务端安装 软件 openssh-server
$ssh peter@happycasts.net 连接服务器
Ctrl + d 退出服务器
ssh-keygen 
cd ~/.shh 
ls 
会多出两个文件
    id_rsa 私钥
    id_rsa.pub 公钥
将公钥上传到服务器 /hone/peter/.ssh/authorized_keys
ssh-copt-id peter@happycasts.net


tmux 强大的终端窗口管理器
tmux -a 回到上次因为网络中断或者退出连接时的窗口


数据传输
rsync 数据传输工具
remote synchronization
上传
rsync -r 本地目录 服务器:指定的路径(默认/hone/peter/)
rsync -r mydir happycasts.net:dir
    mydir 目录
    mydir/ 目录中的所有文件
    : 不可缺少
下载
rsync -r happycasts.net:mydir .
本地增加文件后同步
rsync -r mydir/ happycasts.net:mydir/
rsync -a mydir/ happycasts.net:mydir/ 保留更多文件的信息
rsync -av mydir/ happycasts.net:mydir/ 打印同步过程中的信息
    前后两个 / 都不能少
本地删除文件后同步
rsync -av --delete mydir/ happycasts.net:mysir/
rsync -av --delete mydir/ happycasts.net:mysir/ --dry-run




脚本编程
    指定解析器
        #!/usr/bin/env bash
        #!/usr/bin/env python
        #!/usr/bin/env ruby
    语句即命令
        命令对空格非常敏感
        脚本语句对空格变态的敏感
    位置参数
        peter.sh a.txt b.txt
        $# 一共有多少个参数
        $0 peter.sh
        $1 a.txt
        $2 b.txt
    脚本不在当前 shell 执行
        脚本中的语句不是在当前 shell 中执行的
        新开一个 shell 执行脚本中语句
        在当前 shell 中执行脚本语句
            source peter.sh
    循环控制
        给当前目录中的文件都加上 .txt 的后缀
        cd $1
        echo I am in `pwd`
        for file in `ls`
        do
        mv $file $file.txt
        done
    远程执行
        ssh -t peter@happycast.net 'touch a.txt'
    确认执行
        
    其他语言写脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值