Linux常用命令

文件管理

ls -l #显示详细信息

ls -a # 显示隐藏文件

ls -i #显示文件的inode(当文件名出现乱码等问题时可以通过inode操作文件)

ls -l dirname |wc -l #显示目录下文件数量

ls -Rl dirname | wc -l #递归显示目录下文件数量

mv a b # 将目录a及其子目录移动到b

mv a/* b/ # 将目录a下的所有文件合并到目录b

cp -r a b #将文件或目录a拷贝到b(注意需要-r)

cp -rp a b #将文件或目录a拷贝到b并保留时间戳(有的操作系统默认保留,有的默认不保留)

cp -ra a b  #将文件a打包压缩后拷贝到b,-a将保留a的所有文件权限

rmdir a # 删除空目录a, a必须是空目录

rm -r a # 删除目录a及其子目录

tree -h # 打印树状结构
tree -L 3 # 显示前3层(数字可以随意指定)
tree -N # 自适应字符编码,解决Unicode字符乱码问题

diff -r -q /path/to/dir1 /path/to/dir2 # 查看目录1和目录2是否相同

 

磁盘管理

# 参考资料 http://www.techrepublic.com/article/how-to-free-disk-space-on-linux-systems/

df -h# 查看硬盘使用量

du -h # 查看目录占用空间大小

du -s # 查看目录占用空间总大小

du -k # 用kb显示

du -b # 用byte显示

du -a # “show all” 显示隐藏文件

du -x # 只看当前文件系统(也就是当前分区,不算其它分区挂载的)

du -ah /your/path/ | sort -nr | head -n 10  # du一个目录排序并只显示前10

du -xh /your/path/ |grep ‘^\S*[0-9\.]\+G’|sort -rn # 用正则表达式筛选(以字母开头的文件名,+G表示大于1GB的文件夹,也可以尝试用+M)

find /your/path/ -printf ‘%s %p\n’| sort -nr | head -10 # 找到前10大文件

测硬盘速度
dd if=/dev/zero of=test.bin bs=16M count=64

查看smart
sudo smartctl -a /dev/sda

touch filename # 新建文本文件filename(可以是任意扩展名)
echo “xxxx” > filename # 将引号内的xxxx写入文件filename
查找
which cmd # 根据环境变量查找命令所在位置
whereis  executable_name # 查看可执行命令所在的路径
locate # 比find快很多,apt-get install locate && sudo updatedb
find -name filename # 根据文件名查找
find -iname filename # 根据文件名忽略大小写查找
对查找到的文件执行某种操作
find -name filename -exec ls -al {} \; # 最后的{} \;不能少
find -name filename -exec rm -v {} \; # 删除找到的文件(rm 添加-v参数可以显示被删除的文件)

 

资源监视

lsof -i :port # 查看端口占用情况

查看硬件资源使用率(CPU、内存使用率等)
top
top -u user

更强大的top
htop

查看io资源使用情况
iotop

查看网络使用情况
iftop

date # 显示当前系统日期时间
cal # 显示日历

工具 简单介绍
top 查看进程活动状态以及一些系统状况
vmstat 查看系统状态、硬件和系统信息等
iostat 查看CPU 负载,硬盘状况
sar 综合工具,查看系统状况
mpstat 查看多处理器状况
netstat 查看网络状况
iptraf 实时网络状况监测
tcpdump 抓取网络数据包,详细分析
mpstat 查看多处理器状况
tcptrace数据包分析工具
netperf 网络带宽工具
dstat 综合工具,综合了 vmstat, iostat, ifstat, netstat 等多个信息
改用户名
sudo usermod -l 新用户 旧用户

改文件权限
sudo chown -R user:group url
sudo chmod -R umask url # umask可以用三个数字表示,如:chmod 770 url;在该命令中还可以添加删除权限,比如chmod +x url,表示对url的所有用户添加可执行权限
sudo chgrp # 改变群组
附录:umask是Linux使用3个数字表示文件权限的值,分别表示owner,group,others的权限,见下表:
0 — 无 没有任何权限
2 -w- 写 只有写权限
4 r– 读 只有读权限
5 r-x 读进入 只有写和进入/执行
6 rw- 读写 拥有读写权限
7 rwx 读写存 拥有都写进入/执行所有权限
对于拥有777最高权限的目录为:drwxrwxrwx+,文件为-rwxrwxrwx+,最前面的d表示目录(direction),-表示是文件,l表示链接
r表示拥有读权限,w表示拥有写权限,x对于目录表示拥有进入权限(root用户除外),对于文件表示拥有执行权限(只有拥有x权限才可以执行)
最后的”+”表示拥有更多的权限;如果为点“.”表示具有Linux的acl(Access Control Lists);为空格(也就是看不到这一位)表示不存在acl(比如在Windows的NTFS文件系统)
使用ls -l(可以简写为ll)即可显示umask以及其他详细信息,如:208343834 drwxrwx—+ num root root 0 1月 1日 1970年
说明:
最前面的数字表示inode
第二列就是umask
num表示硬链个数(最少为1,他本身就算是一个硬链,不可能为0)
root表示用户名
第二个root表示用户组
后面的0表示文件大小
后面是文件最后访问日期
如果是链接文件,后面还会有->xxx表示链接的位置

在文件中查找字符串

grep -rnw '/path/to/somewhere/' -e "pattern"
  • -r or -R is recursive,
  • -n is line number, and
  • -w stands match the whole word.
  • -l (lower-case L) can be added to just give the file name of matching files.

GUI管理员权限打开文件夹

sudo nautilus foldername 或 sudo gnome-open foldername

 

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注

18 − 5 =