linux 命令行 学习笔记 - Go语言中文社区

linux 命令行 学习笔记


拷贝:
cp file1 file2
cp -r dir1 dir2
移动:
mv file …
mv file dir/
重命名:
mv file1 file2
mv dir1 dir2 #dir2 存在,则为移动操作(dir1移动到dir2内)
删除:
rm file
rm -r dir

创建文件:
touch a.txt
touch .aa (创建隐藏文件)
>a.txt
查看文件:
cat
less (分页查看 ctrl-- ctrl++ 缩小、放大)
查看文件类型:
file
通配符:
*
解包:
unzip 包名
tar zxvf 包名 (解压tar.gz)
tar jxvf 包名 (解压tar.bz2)
打包:
zip -r 包名 目录/
tar zcvf 包名 目录/
tar jcvf 包名 目录/

默认的文件描述符:
stdin: 0
stdout: 1
stderr: 2
这里写图片描述

标准输出可以使用重定向符
输出重定向符: >
cat file1 > file
追加重定向符号:>>
cat file1 >> file
利用cat file1 file2 > file 也可以完成追加的功能

标准错误输出不可以直接使用>,要加上标准错误输出的文件描述符,即:2>

标准输入使用<重定向

管道:
管道符: |
cat files.txt|uniq|grep txt|sort

文件权限:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

获取进程号:
ps aux

后台运行:
firefox&
或 firefox
ctrl z(暂停)
bg (正在后台运行的程序)
fg (后台运行的程序切换到前台)

ln -s aaa bbb 为可执行程序aaa新建一个名为bbb的链接

定位:
locate --regrexp xxx (使用正则表达式查找)
locate 查找的是数据库updatedb,该数据库每天更新,所以新创建的文件找不到 可以先使用sudo updatedb强制更新之后,即可使用locate查找到新创建的文件
find
find . 查找当前目录下的所有文件
find .|grep .txt
find . -type f (只看文件)
find . -type d(只看目录)
find . -type f -exec ls -l ‘{}’ ‘;’
find . -type f -exec grep -ni hello ‘{}’ ‘;’ -print (查找目录下所有的文件,并执行grep匹配有hello关键字的文件及路径, -n表示同时输出行号,-ni表示匹配时忽略大小写)

网络操作:
ssh 远程操作 服务器端在22端口监听,服务器安装openssh-server,客户端安装openssh-client
ssh ip/域名
ssh-keygen 生成秘钥
cd ~/.ssh下面就会有id_rsa(私钥) id_rsa.pub(公钥)
ssh-copy-id 用户名@ip/域名 (拷贝公钥到服务器,以后ssh登录就无需输入密码了,或者手动拷贝到服务器的/home/usrname/.ssh/authorized_keys)
tmux

rsync 数据传输
rsync -r mydir 域名: 将本地文件夹拷贝到远程服务器
rsync -r mydir/ 域名:mydir/ 将本地mydir内容同步到远程服务器
rsync -av mydir/ 域名:mydir/ 将本地目录新增的文件同步到远端
rsync -av --delete ~/Desktop/lgcb/video/ 域名:~/media/lgcb/ --dry-run (看本地与远端的目录差别)
rsync -av --delete ~/Desktop/lgcb/video/ 域名:~/media/lgcb/ (真正的同步动作)

编译安装开源软件步骤:
1 解压缩
2 ./configure
3 make
4 sudo make install

安装deb包:
sudo dpkg -i xxx.deb
dpkg -l 列出当前安装的所有包名
dpkg -L 包名 列出该包下面所有文件
dpkg -S 文件 列出该文件出自哪个包

sudo apt-get install xxx
sudo apt-get remove xxx
sudo apt-get purge xxx (连着配置文件一起删除)
apt-cache search xx | less (不知道精确包名时可以查)

shell脚本编写
$# 执行参数个数
$0 执行文件名
$1 第一个参数

’ '包裹命令,是直接获取命令输出
判断:

if [ 1=1]
then
   echo "hello"
fi

循环:

cd $1
for file in 'ls'
do
  mv $file $file.txt
done

’ ’ 包裹的语句,在远程服务器上执行

ssh -t username@domainname 'touch a.txt'

sed “s/7000/7001/g” redis-7000.conf > redis-7001.conf (字符串替换)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/fangyuanqi/article/details/81126639
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-25 12:14:42
  • 阅读 ( 1991 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢