一、文件相关
1. 文件查找
-
grep -rn "default" ./
: 查找当前目录下包含default的文件 -
find ./ -name "*.py"
查找当前路径下的.py文件 -
locate -b ‘\filename’
查找满足条件的文件 -
whereis+文件名
:locate the binary, source, and manual page files for a command。- 用于程序名的搜索,搜索结果只限于二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。
- eg:
whereis lspci
查看lspci
-
which+可执行文件名
:which的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。- 使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
grep、find区别,grep是根据查找文件中的内容,find是查找文件的名字。
2. 文件压缩
zip -r attack.zip ./attack
:将当前路径下attack文件夹中的文件进行压缩,压缩后的文件名为attack.zip, 如果不指定.zip后缀,将会自动添加
zip与之对应的解压命令为unzip
tar xvf file.tar.gz
对tar文件进行解压
3. Linux 文件按时间排序
ls -alt
按照修改时间排序,等价于ls --sort=time -la
ls -alc
按照创建时间排序ls -alu
按照访问时间排序- 以上命令均可使用
-r
实现逆序排序
4. chown - 改变文件的用户或组
语法:chown [-cfhvR] [–help] [–version] user[:group] file…
chown -R donald:donald disk
:将disk目录下所有文件与子目录的拥有者和群组都设置为donald
5. Linux系统间文件传输
- rsync
- 命令:
rsync -r /home/suy/datasets/lfw suy@172.22.58.38:/home/suy/datasets
- 同步两台服务器间的文件夹
- 命令:
- scp
- 命令:
scp -r 00_Project suy@172.22.58.38:/home/suy/datasets
- 将本地的00_Project文件夹拷贝到目标服务器的/home/suy/datasets路径下
- 该命令调换下顺序,即可实现将远程服务器上的文件拷贝到本地服务器,eg:
scp -r suy@172.22.58.38:/home/suy/datasets 00_Project
- 命令:
rz、sz
快速上传、下载文件,需要安装lrzsz,安装方法:yum install lrzsz
。
6. 文件比较命令
diff:compare files line by line,一行一行的比较两个文件或目录,并指出哪些文件的哪些行不同。
sdiff:side-by-side merge of file differences,比较两个文件并以并排的格式显示差别。
7. 文件移动 – 将一个文件夹下的所有文件移动到一个新的目录中
在整理文件时可能会遇到一种场景,将某个文件夹下的的文件放到一个新的文件中,该操作不能简单通过mv
命令操作完成,可以通过如下命令进行操作:
场景:将当前路径下所有文件都移动到 新建立的backup文件夹中。
mkdir backup
find -maxdepth 1 \! -name backup \! -name . -exec mv {} backup/ \;
上面命令中,-maxdepth
参数指定查询深度为当前,不进入次级目录查找。\!
“非”的意思-name
find的参数,匹配文件名,可以使用正则表达式。
8. mount/umount挂载、卸载磁盘
先使用df -h
命令查看当前磁盘占用状况,如果占用量比较大,可以考虑挂载磁盘,挂载磁盘的操作为:
- 使用
sudo fdisk -l
命令分析当前服务器上的磁盘情况,查看是否还有剩余磁盘可供使用 - 建立一个文件夹 folder_name
- 使用
mount $disk_name $folder_name
命令,将文件进行挂载:eg:sudo mount /dev/sdc2 /home/suy/data_disk/datasets_sdc
卸载磁盘可以直接使用umount
命令即可。eg: sudo umount ~/data_disk/disk_sdb
注意:有时权限有问题,此时加上sudo
即可。
9. 软连接
-
当前路径创建test 引向/var/www/test 文件夹
ln –s /var/www/test test
-
创建/var/test 引向/var/www/test 文件夹
ln –s /var/www/test /var/test
-
在conda目录下,创建py文件,链接到其他目录:
ln -s /public/99_datasets/py3.6.8 /home/donald/.conda/envs/py3.6.8
10. 查看文件大小并按照大小排序
首先,查看当前路径下所有文件大小的命令为du -d 1 -h
, 这里-d 1
表明目录显示级别,只显示1级目录。-h
是显示单位,不然就是以kb为默认单位进行显示。
如果需要对结果进行排序,使用sort命令即可。
按数值进行显示,需要添加 -n
参数,默认是递增顺序进行显示,如果想递减仅限显示,可以通过添加-r
参数实现。
注意:如果按照大小进行排序,不能在du参数中使用
-h
参数了
11. 修改指定目录下所有文件的权限
chmod -R 755 path
二、其他
1. 查看系统distribution信息
lsb_release -a
该命令的作用为print distribution-specific information,ubuntu、centOS都可使用。
eg:
2. 查看内核版本
uname -r #查看内核版本
uname -a #查看内核相关的所有信息
cat /proc/version
3. CentOS 查看版本信息
可以使用上述的 lsb_release -a
命令,也可以使用下面的命令:
cat /etc/centos-release
也可以使用cat /etc/redhat-release
命令获取版本信息
执行结果为:CentOS Linux release 7.6.1810 (Core)
4. 查看zsh版本信息
zsh版本,可以通过zsh --version
或 $SHELL --version
命令
- 红帽系统查看系统版本
- 使用
hostnamectl
和cat /etc/redhat-release
命令。更推荐:hostnamectl
命令,显示内容更完整,如下所示:
- 使用
5. 查看系统启动时间
-
who 命令查看
who -b #查看最后一次系统启动的时间。 who -r #查看当前系统运行时间 ```
-
w 查看
w命令:w - Show who is logged on and what they are doing. w displays information about the users currently on the machine, and their processes. The header shows, in this order, the current time, how long the system has been run‐ning, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes.
up后表示系统到目前运行了多久时间。反过来推算系统重启时间
6. 查看正在运行的进程信息
一般常用的是ps -aux
或 ps -ef
,其中ps -ef
可以看到父进程,可以获知进程间关系。
结合查询命令可以快速查看自己想要的信息:
eg:查看 12345进程的信息:ps -aux | grep 12345
eg:查看 12345进程的进程关系信息:ps -ef | grep 12345
eg:查看包含run关键字的进程:ps -aux | grep run
7. netstat
把TCP状态全都取出来,然后进行统计:netstat -nat | awk '{print$6}' | sort | uniq -c
统计结果示例:
【待续】ssh
使用ssh 端口映射,最近用得比较多,一个比较好的主题,后面专门写文章讲解下。
【待续】Top命令
待续
三、refer