3

【Linux】常用命令

 3 years ago
source link: https://www.guofei.site/2018/02/04/linux.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【Linux】常用命令

2018年02月04日

Author: Guofei

文章归类: 1-1-算法平台 ,文章编号: 101


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2018/02/04/linux.html

Edit

下载上传文件

补充xshell中的两个有用的命令

  1. sz 文件名
    下载文件到本地。
  2. rz
    跳出窗口让你选择上传的文件,然后上传。

文件和目录

cd /home # 进入一个目录  
cd .. # 返回上一级目录  
cd ../.. # 返回上两级目录  
cd - # 返回上次所在的目录  

pwd # 显示工作路径  

# ls:查看
ls # 查看目录中的文件  
ls -F # 查看目录中的文件  
ls -l # 显示文件和目录的详细资料  
# 第一部分是drwxr-xr-x
# - d:这一项是文件夹
# - r:read读权限
# - w:write
# - x :执行权限
# - r-x:该用户所在用户组的权限
# - r-x:其它用户组的权限

ls -a # 显示隐藏文件  
ls *[0-9]* # 显示包含数字的文件名和目录名  

tree # 显示文件和目录由根目录开始的树形结构
tree -d # 仅显示目录
tree -L n # n代表数字..表示要显示几层...
tree -f # 显示完整路径..

mkdir dir1 # 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 # 同时创建两个目录  
mkdir -p /tmp/dir1/dir2 # 创建一个目录树  

# rm: 删除
rm -f file1 # 删除文件
rm -rf dir1 # 删除一个叫做 'dir1' 的目录并同时删除其内容  
rm -rf dir1 dir2 #  同时删除两个目录及它们的内容  
rmdir dir1 # 删除目录,目录为空才行

mv dir1 new_dir # 重命名/移动 一个目录  
cp file1 file2 # 复制一个文件  
cp dir/* . # 复制一个目录下的所有文件到当前工作目录,不会复制子目录  
cp -a dir1 dir2 # 复制一个目录到另一个目录,包括子目录

ln -s file1 lnk1 创建一个指向文件或目录的软链接  
ln file1 lnk1 创建一个指向文件或目录的物理链接  

# touch:新建
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)  

find

find / -name file1 # 从 '/' 开始进入根文件系统搜索文件和目录  
find / -user user1 # 搜索属于用户 'user1' 的文件和目录  
find /home/user1 -name \*.bin # 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件  
find /usr/bin -type f -atime +100 # 搜索在过去100天内未被使用过的执行文件  
find /usr/bin -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件  
find / -name \*.rpm -exec chmod 755 '{}' \; # 搜索以 '.rpm' 结尾的文件并定义其权限  
find / -xdev -name \*.rpm # 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备  
locate \*.ps # 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令  
whereis halt # 显示一个二进制文件、源码或man的位置  
which halt # 显示一个二进制文件或可执行文件的完整路径  

案例

统计文件个数

# 统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l

# 统计当前文件夹下目录的个数
ls -l |grep "^d"|wc -l

# 统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l

# 统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
  • ls -l 列出文件和文件夹,ls -lR 递归列出文件和文件夹
  • grep "^-" 筛选出以横线开头的,grep "^d" 筛选出以d开头的
  • wc -l 计算有多少行

打包和压缩文件

tar

tar 只是打包,不是压缩

tar -cf archive.tar file1 # 打包
tar -tf archive.tar # 显示包中的内容
tar -xf archive.tar # 解包

# -c 产生新的包
# -f 指定包的文件名
# -x 解包
# -r 往包内增加文件,-u 更新文件
# -t 列出文件

tar有很多参数,下面列出常用的:

tar -cf all.tar * .jpg # 将所有.jpg的文件打成一个名为all.tar的包。
tar -uf all.tar logo.gif  # 更新原来tar包all.tar中logo.gif文件
tar -cvf archive.tar file1 file2 dir1 # 打包一个包含了 'file1', 'file2' 以及 'dir1'的档案文件

zip

zip -r FileName.zip DirName # 压缩
unzip FileName.zip # 解压

详情链接
可以比较一下Python的zip操作

程序结构

赋值

export x='ls' # 赋值
$x -la # 前加$表示取出变量值

代码

for x in one two three four
do
        echo number $x
done

详情链接

时间

date +%Y-%m-%d --date '1 day ago'
DATE=$(date +%Y-%m-%d --date '1 day ago')

安装软件

apt-get update
apt-get install sudo

一些常用的工具

apt install tree # tree
sudo apt install git # 安装git ,用 sudo apt install git-all 安装所有额外组件

安装anaconda

# 下载安装包 https://www.anaconda.com/products/individual
# 用 sh 命令运行下载好的安装包 sh **.sh
# 设置环境变量:
export ANACONDA_HOME='root/anaconda3' # 这里填入你安装 anaconda的目录
export PATH=$ANACONDA_HOME/bin:$PATH
source ~/.bashrc

常用软件

tree
  • -a 隐藏的目录和文件也显示
  • -d 只显示目录,不显示文件
  • -D 列出文件或目录的更改时间。
  • -f 在每个文件或目录之前,显示完整的相对路径名称。
  • -L level 限制目录显示层级。
  • -u 列出拥有者,没有对应的名称时,则显示用户识别码。

打开软件

pyspark  
spark-shell  

查看已安装软件

  1. rpm包安装的 可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。
    [root@hexuweb102 ~] rpm -qa | grep ruby
  2. 以deb包安装的 可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;
    [root@hexuweb102~]dpkg-l|grepruby
  3. yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
    [root@hexuweb102 ~] yum list installed | grep ruby
  4. 如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,

上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。

说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令

vim

  • 命令模式:在Linux终端中输入 vim 文件名 就进入了命令模式,但不能输入文字。
  • 编辑模式:在命令模式下按 i 就会进入编辑模式,此时就可以写入程式,按 Esc 可回到命令模式。
  • 末行模式:在命令模式下按 : 进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

命令模式转到编辑模式:

  • i
  • o 当前行下面插入一个空行,并把光标移动过去,然后进入编辑模式
  • O 当前行上面插入一个空行,并把光标移动过去,然后进入编辑模式
  • r 替换光标处的字符
  • R 替换当前字符及其后的字符,直到按 [ESC]
  • yy 拷贝一行
  • nyy 拷贝n行
  • x 剪切光标所在位置
  • X 剪切光标前一个位置
  • dd 剪切一行
  • db 从当前剪切到单词开头
  • dw 从当前剪切到单词结尾
  • ndd 剪切下面n行
  • p 黏贴,和上面配合使用
  • L 当前屏幕底行
  • H 当前屏幕头行
  • M 当前屏幕中间行
  • $ 当前行尾
  • 0当前行首
  • w下一个单词首部
  • b 上一个单词
  • } 下一个空白行
  • { 上一个空白行

常用的末行命令:

  • :w:写入磁盘
  • :wq 退出保存
  • :q! 退出不保存
  • r filename :将文件考到光标处
  • :n 光标移动到第n行并回到命令模式

其它命令模式 nyw:拷贝n个单词 u:撤销 %:自动匹配查找 a:追加到后面 s: 从当前光标位置处开始,以输入的文本替代指定数目的字符 S: 删除指定数目的行,并以所输入文本代替之 d0: 删至行首 D: 删除光标处到行尾 d+}:删除光标所在处到下一个空白行 dG:删除光标处到文件结尾

vsp + 文件名垂直分屏 Ctrl+ww:不同屏幕切换 / + 查找内容 :开始查找 n:下一个目标 N:上一个目标 59,60s/源/目标/g 从59到60全部替换 %s/源/目标/g 全文替换

参考文献

关于Linux命令的: https://www.cnblogs.com/yjd_hycf_space/p/7730690.html
关于压缩解压缩的:http://blog.csdn.net/radianceblau/article/details/54925014
查找已安装的文件:http://blog.hexu.org/archives/1158.shtml


您的支持将鼓励我继续创作!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK