【Linux】常用命令
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.
【Linux】常用命令
2018年02月04日Author: Guofei
文章归类: 1-1-算法平台 ,文章编号: 101
版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2018/02/04/linux.html
下载上传文件
补充xshell中的两个有用的命令
- sz 文件名
下载文件到本地。 - 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
查看已安装软件
- rpm包安装的
可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。
[root@hexuweb102 ~] rpm -qa | grep ruby
- 以deb包安装的
可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;
[root@hexuweb102~]dpkg-l|grepruby
- yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
[root@hexuweb102 ~] yum list installed | grep ruby
- 如果是以源码包自己编译安装的,例如.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
您的支持将鼓励我继续创作!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK