修改文件权限:
sudo chmod 666 xxx # 将xxx文件/文件夹的权限改为所有人可写可读。
更改当前工作目录:
su - huangtiantian01 # 改到 [huangtiantian01@xxx]$ 用户目录下
查看磁盘用量
df -h
du -h --max-depth 1 /ssd2/ #查看文件夹大小
Linux查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
# 查看内存信息
cat /proc/meminfo
软连接
ln -s /ssd2/data /home/huangtiantian01/
# /ssd2/data为需要被链接的源文件目录,/home/huangtiantian01/为创建软链接的目标文件目录
wget
下载目录下所有文件:
wget -r -np -nH -R index.html http://url/including/files/you/want/to/download/
解释一下各个参数的含义:
-r : 遍历所有子目录
-np : 不到上一层子目录去
-nH : 不要将文件保存到主机名文件夹
-R index.html : 不下载 index.html 文件
scp传文件
scp -r desUser@privateIp:desPath localFilePath # 从privateIp下载文件
scp -r localFilePath desUser@privateIp:desPath # 传文件到privateIp
1、同一局域网下
scp -P 22 -r localFilePath desUser@privateIp:desPath
2、不同网络
scp -P 8888 -r localFilePath desUser@publicIp:desPath
统计文件个数
ls -l |grep "^-"|wc -l # 统计某文件夹下文件的个数
ls -l | wc -l # 统计某文件夹下文件的个数
ls -l | grep "^d"|wc -l # 统计某文件夹下目录的个数
ls -lR | grep "^-"|wc -l # 统计文件夹下文件的个数,包括子文件夹里的
如统计/home/han目录(包含子目录)下的所有js文件
ls -lR /home/han|grep js|wc -l # 或
ls -l "/home/han"|grep "js"|wc -l
grep "^-" # 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l # 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
零碎
watch -n 0.2 nvidia-smi #查看GPU使用情况
head -n 1 /etc/issue # 查看操作系统版本
uname -a # 查看系统版本
nvidia-smi # 看用了多少内存
lspci | grep -i vga # 显示机器上的显卡信息
lsmod | grep nvidia # which drivers are loaded.
ps -eo pid,start,cmd # 看进程开始时间
find
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
1、find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
2、find的使用实例:
搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
$ find . -name 'my*'
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
$ find . -name 'my*' -ls
搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f
参数,则搜索普通文件+特殊文件+目录。
$ find . -type f -mmin -10
locate
locate
命令其实是find -name
的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate
命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate
之前,先使用updatedb
命令,手动更新数据库。
locate命令的使用实例:
搜索etc
目录下所有以sh
开头的文件。
$ locate /etc/sh
搜索用户主目录下,所有以m
开头的文件。
$ locate ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
$ locate -i ~/m
ps
ps aux | grep python # 查看Python进程
Linux下显示系统进程的命令ps
,最常用的有ps -ef
和ps aux
。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD风格。
ps aux
最初用到Unix Style中,而
ps -ef
被用在System V Style中,两者输出略有不同。
现在的大部分Linux系统都是可以同时使用这两种方式的。
1、ps -ef
是用标准的格式显示进程的、其格式如下
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,
//若与终端无关,则显示?
//若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
2、ps aux
是用BSD的格式来显示、其格式如下
与
ps -ef
不同的有列有
USER //用户名
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有
D //无法中断的休眠状态(通常 IO 的进程);
R //正在运行可中在队列中可过行的;
S //处于休眠状态;
T //停止或被追踪;
W //进入内存交换 (从内核2.6开始无效);
X //死掉的进程 (基本很少见);
Z //僵尸进程;
< //优先级高的进程
N //优先级较低的进程
L //有些页被锁进内存;
s //进程的领导者(在它之下有子进程);
l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ //位于后台的进程组;
有关僵尸进程和Z状态进程,见我这篇文章:垃圾进程之 D & Z 。
文件内容查阅
cat # 由第一行开始显示文件内容
tac # 从最后一行开始显示,可以看出 tac 是 cat 的倒著写
nl # 显示的时候,顺道输出行号
more # 一页一页的显示文件内容
less # 与 more 类似,但是比 more 更好的是,他可以往前翻页
head # 只看头几行
tail # 只看尾巴几行
od # 以二进位的方式读取文件内容
shell
1、查看shell
more /etc/shells # 查看目前我们的Linux有多少可以使用的shells
检查/etc/shells
这个档案,至少有底下这几个可以用的 shells:
/bin/sh (已经被 /bin/bash 所取代)
/bin/bash (就是 Linux 预设的 shell)
/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已经被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
2、切换shell:
chsh -s /bin/zsh # 设置zsh为你的默认的shell
chsh -s /bin/bash # 如果想切换回来bash,使用该命令即可
du
du -sh # 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh --max-depth=1 # 查看当前目录下一级子文件和子目录占用的磁盘容量。
零碎
sudo apt-get remove cuda
# 官网下载tgz,解压出一个cuda文件夹
sudo dpkg -i ***.deb
sudo apt-get install cuda-8.0
Use the following commands to uninstall a RPM/Deb installation:
sudo apt-get --purge remove # Ubuntu
sudo apt autoremove
install CUDA 8.0 and add these to my .profile
file:
vim ~/.profile
# 添加这两行:
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
export CUDA_HOME=/usr/local/cuda-8.0
# 最后:
source ~/.profile
nvidia显卡驱动与编译器版本的查询命令
转自 http://www.linuxdiyf.com/linux/16687.html
1)首先验证你是否有nvidia的显卡(http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡):
$ lspci | grep -i nvidia
2)查看你的linux发行版本(主要是看是64位还是32位的):
$ uname -m && cat /etc/*release
3)看一下gcc的版本:
$ gcc –version
4)查看NVIDIA显卡的驱动版本
$cat /proc/driver/nvidia/version
5)查看nvcc编译器的版本
nvcc -V i
6)/dev/nvidia*这里的文件代表了本机的NVIDIA显卡,如:
foo@bar-serv2:/dev$ ls -l nvidia*
crw-rw-rw- 1 root root 195, 0 Oct 24 18:51 nvidia0
crw-rw-rw- 1 root root 195, 1 Oct 24 18:51 nvidia1
crw-rw-rw- 1 root root 195, 255 Oct 24 18:50 nvidiactl
表示本机有两块NVIDIA显卡
7)查看显卡名称以及驱动版本
nvidia-smi
nvidia-smi -a
mac 查看、修改文件权限
1)查看权限
ls -l 文件夹名/文件名
2)修改文件的权限
chmod [<权限范围><权限操作><具体权限>] [文件或目录…]
<权限范围>
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
<权限操作>
+:表示增加权限
- :表示取消权限
=:表示唯一设定权限
<具体权限>
r:表示可读取
w:表示可写入
x :表示可执行
如:让其他用户都可以对111.txt文件有写的权限,则执行
chmod o+w 111.txt
解压、压缩
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar foldername/
压缩:rar a FileName.rar DirName
MAC下安装rar、unrar: https://blog.csdn.net/apple9005/article/details/55048241
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
SCP
https://www.vpser.net/manage/scp.html
scp常用的一些参数:
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接,认证,或是配置错误。
-C 启用压缩选项,
-r 传递目录下的所有内容
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
scp是安全的文件拷贝,基于ssh的登录。
假定你想把本地计算机/home下的一个名为a.tar.tz的文件拷贝到远程服务器192.168.0.2上的/home/tmp。而且你在远程服务器 上的帐号名为root。可以用这个命令:
scp /home/a.tar.tz [email protected]:/home/tmp/
如果把文件从远程机器拷贝到本机当前目录用这个命令:
scp [email protected]:/home/a.tar.tz
拷贝远程机器的整个目录下的文件
scp -r [email protected]:/home/* ./
ubuntu下用命令行安装软件
sudo dpkg -I iptux.deb # 查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于--info)
sudo dpkg -c iptux.deb # 查看iptux.deb软件包中包含的文件结构(其中-c等价于--contents)
sudo dpkg -i iptux.deb # 安装iptux.deb软件包(其中-i等价于--install)
sudo dpkg -l iptux # 查看iptux软件包的信息(软件名称可通过dpkg -I命令查看,其中-l等价于--list)
sudo dpkg -L iptux # 查看iptux软件包安装的所有文件(软件名称可通过dpkg -I命令查看,其中-L等价于--listfiles)
sudo dpkg -s iptux # 查看iptux软件包的详细信息(软件名称可通过dpkg -I命令查看,其中-s等价于--status)
sudo dpkg -r iptux # 卸载iptux软件包(软件名称可通过dpkg -I命令查看,其中-r等价于--remove)
注:dpkg命令无法自动解决依赖关系。如果安装的deb包存在依赖包,则应避免使用此命令,或者按照依赖关系顺序安装依赖包。
修改屏幕分辨率
856 xrandr --output HDMI-1 --mode 3840x2160_60.00
857 sudo xrandr --newmode "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
858 xrandr --output HDMI-1 --mode 3840x2160_60.00
859 xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"
860 sudo xrandr --addmode HDMI-1 3840x2160_60.00
861 xrandr --output HDMI-1 --mode 3840x2160_60.00
862 cvt 3840 2160 30
863 sudo xrandr --newmode "3840x2160_30.00" 338.75 3840 4080 4488 5136 2160 2163 2168 2200 -hsync +vsync
864 xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"
865 sudo xrandr --addmode HDMI-1 3840x2160_60.00
866 sudo xrandr --addmode HDMI-1 3840x2160_30.00
867 xrandr --output HDMI-1 --mode 3840x2160_30.00
868 cvt 3840 2160 25
869 sudo xrandr --newmode "3840x2160_25.00" 278.75 3840 4064 4464 5088 2160 2163 2168 2194 -hsync +vsync
870 sudo xrandr --addmode HDMI-1 3840x2160_25.00
871 xrandr --output HDMI-1 --mode 3840x2160_25.00
重启后出错:
1050 xrandr --dpi 168
1054 sudo gedit /etc/lightdm/lightdm.conf.d/lightdm.conf
1055 sudo xrandr --newmode "3840x2160_25.00" 278.75 3840 4064 4464 5088 2160 2163 2168 2194 -hsync +vsync
1056 sudo xrandr --addmode HDMI-1 3840x2160_25.00
1057 xrandr --output HDMI-1 --mode 3840x2160_25.00
简化版:
sudo xrandr --newmode "3840x2160_25.00" 278.75 3840 4064 4464 5088 2160 2163 2168 2194 -hsync +vsync
sudo xrandr --addmode HDMI-1 3840x2160_25.00
文件系统分辨率问题,杀掉文件系统进程:
top # 查看nautilus的进程号,或者:
ps aux | grep nautilus
kill -9 process_id