这是我在Linux系统下写的第一篇博客,花了一周的时间从Windows系统转到Linux并且可以完成日常操作,能在Linux系统下完成开发,运用各种开发工具,写各种语言小程序和JavaEE。

  经过这一周后,我的感觉就是,Linux太好玩了!!!

  感受一下我的桌面:

  

 Linux和Windows最大的区别在于,你可以自己定制属于自己的个人计算机,这是我最大的感悟——比如,我不需要微软的各种服务进程,我需要的只是我要用我需要的服务进程。我在Windows下开机,会有226个进程,内存占用率达到40%;而当我在Linux下开机(现在附开Firefox浏览器、音乐播放器和wine QQ):

感受一下,这是我的电脑配置:

  Linux下的Java IDE我安装了MyEclipse、IntelliJ IDEA,然后我发现Linux系统下的MyEclipse实在是太烂了,写个代码都一卡一卡的,翻页看代码就像翻PPT一样,实在不能忍,然后就卸载了,专心用IntelliJ IDEA写Java代码。Linux下的git比在Windows下使用好多了,不存在git bash,在哪打开终端都是git bash,而且tab还有提示,maven也有提示,非常舒服。

  Linux下的不同之处总结:

  一、环境变量配置:

  在Windows中的环境变量配置还是很友好的,在系统设置直接有环境变量配置,但是在Linux下不是这样的:在/etc/.profile中,必须以root身份打开

  

  环境变量配置方法如下:

  

  其中的PATH才是真正的环境变量根配置,其他都是变量引用,好好看就能明白了。

  不过这个环境变量的配置是全局的环境变量,就是不论以哪个身份登陆都可以使用该设置。

  不过如果经常使用一个用户,推荐在该用户的HOME中配置.bash_profile,这样比较安全,不至于环境变量配置错误连开机都开不了。我曾经把环境变量配置错了,开机后登陆不上去,进不去系统,最后用命令行登陆进去后,花了一天时间对着满屏的命令,找到了原因,是环境变量配置错误了。因为Linux开机后,是要检查一次环境变量的,如果环境变量出错,是进不去系统的。

  二、划分swap空间

  swap空间是Linux特有的一个概念,Linux系统的内存不仅仅需要物流内存条的大小,也需要硬盘中划分出一块区域供系统使用。Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样可以节省系统开销,甚至越过系统瓶颈。但是这块区域并不是越大越好,小了又不够用,最好划分的和物理内存一样大。

  三、权限的控制

  也许会认为,Windows下也有权限,不过Windows的权限控制在Linux的权限控制面前简直弱爆了,看一下就知道了:

    

  清晰可见,现在的我只有权限使用opt文件夹里面的东西,我甚至连读取一下里面的文本都没有权限:

  

  由此可见Linux系统是多么的安全!

  四、强大的终端命令

  如果说出最大的区别,莫过于无所不能的终端命令了,强大无比,而且可通过各种编程语言做成可执行的.sh脚本,现在列出一系列常用命令(部分摘自Boblim的博客,自己又添加一些):

  1、关于用户切换

  

  1. su 切换到root用户
  2. su - user 切换至user用户
  3. sudo -i 切换到root用户
  4. sudo xxx 暂时用sudo身份执行命令
  5. exit 退回上一身份

  2、关于系统信息

 

  1. arch 显示机器的处理器架构()
  2. uname -m 显示机器的处理器架构()
  3. uname -r 显示正在使用的内核版本
  4. dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
  5. hdparm -i /dev/hda 罗列一个磁盘的架构特性
  6. hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
  7. cat /proc/cpuinfo 显示CPU info的信息
  8. cat /proc/interrupts 显示中断
  9. cat /proc/meminfo 校验内存使用
  10. cat /proc/swaps 显示哪些swap被使用
  11. cat /proc/version 显示内核的版本
  12. cat /proc/net/dev 显示网络适配器及统计
  13. cat /proc/mounts 显示已加载的文件系统
  14. lspci -tv 罗列 PCI设备
  15. lsusb -tv 显示 USB 设备
  16. date 显示系统日期
  17. cal 显示2007年的日历表
  18. date 041217002007.00 设置日期和时间 - 月日时分年.秒
  19. clock -w 将时间修改保存到 BIOS

  3、关机 (系统的关机、重启以及登出 )

  1. shutdown -h now 关闭系统()
  2. init 关闭系统()
  3. telinit 关闭系统()
  4. shutdown -h hours:minutes & 按预定时间关闭系统
  5. shutdown -c 取消按预定时间关闭系统
  6. shutdown -r now 重启()
  7. reboot 重启()
  8. logout 注销

  4、文件和目录的操作

  1. cd /home 进入 '/ home' 目录'
  2. cd .. 返回上一级目录
  3. cd ../.. 返回上两级目录
  4. cd 进入个人的主目录
  5. cd ~user1 进入个人的主目录
  6. cd - 返回上次所在的目录
  7. pwd 显示工作路径
  8. ls 查看目录中的文件
  9. ls -F 查看目录中的文件
  10. ls -l 显示文件和目录的详细资料
  11. ls -a 显示隐藏文件
  12. ls *[-]* 显示包含数字的文件名和目录名
  13. tree 显示文件和目录由根目录开始的树形结构()
  14. lstree 显示文件和目录由根目录开始的树形结构()
  15. mkdir dir1 创建一个叫做 'dir1' 的目录'
  16. mkdir dir1 dir2 同时创建两个目录
  17. mkdir -p /tmp/dir1/dir2 创建一个目录树
  18. rm -f file1 删除一个叫做 'file1' 的文件'
  19. rmdir dir1 删除一个叫做 'dir1' 的目录'
  20. rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
  21. rm -rf dir1 dir2 同时删除两个目录及它们的内容
  22. mv dir1 new_dir 重命名/移动 一个目录
  23. cp file1 file2 复制一个文件
  24. cp dir/* . 复制一个目录下的所有文件到当前工作目录
  25. cp -a /tmp/dir1 . 复制一个目录到当前工作目录
  26. cp -a dir1 dir2 复制一个目录
  27. ln -s file1 lnk1 创建一个指向文件或目录的软链接
  28. ln file1 lnk1 创建一个指向文件或目录的物理链接
  29. touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
  30. iconv -l 列出已知的编码

  5、文件搜索

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

  6、磁盘空间

  1. df -h 显示已经挂载的分区列表
  2. ls -lSr |more 以尺寸大小排列文件和目录
  3. du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
  4. du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小

  

  7、用户和群组

  1. groupadd group_name 创建一个新用户组
  2. groupdel group_name 删除一个用户组
  3. groupmod -n new_group_name old_group_name 重命名一个用户组
  4. useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
  5. useradd user1 创建一个新用户
  6. userdel -r user1 删除一个用户 ( '-r' 排除主目录)
  7. usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
  8. passwd 修改口令
  9. passwd user1 修改一个用户的口令 (只允许root执行)
  10. chage -E -- user1 设置用户口令的失效期限
  11. pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
  12. grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
  13. newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

  

  8、文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消

  1. ls -lh 显示权限
  2. ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
  3. chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
  4. chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
  5. chown user1 file1 改变一个文件的所有人属性
  6. chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
  7. chgrp group1 file1 改变文件的群组
  8. chown user1:group1 file1 改变一个文件的所有人和群组属性
  9. find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
  10. chmod u+s /bin/file1 设置一个二进制文件的 SUID - 运行该文件的用户也被赋予和所有者同样的权限
  11. chmod u-s /bin/file1 禁用一个二进制文件的 SUID
  12. chmod g+s /home/public 设置一个目录的SGID - 类似SUID ,不过这是针对目录的
  13. chmod g-s /home/public 禁用一个目录的 SGID
  14. chmod o+t /home/public 设置一个文件的 STIKY - 只允许合法所有人删除文件
  15. chmod o-t /home/public 禁用一个目录的 STIKY

  9、文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消

  1. chattr +a file1 只允许以追加方式读写文件
  2. chattr +c file1 允许这个文件能被内核自动压缩/解压
  3. chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
  4. chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
  5. chattr +s file1 允许一个文件被安全地删除
  6. chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
  7. chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
  8. lsattr 显示特殊的属性

  10、打包和压缩文件

  1. bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
  2. bzip2 file1 压缩一个叫做 'file1' 的文件
  3. gunzip file1.gz 解压一个叫做 'file1.gz'的文件
  4. gzip file1 压缩一个叫做 'file1'的文件
  5. gzip - file1 最大程度压缩
  6. rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
  7. rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
  8. rar x file1.rar 解压rar
  9. unrar x file1.rar 解压rar
  10. tar -cvf archive.tar file1 创建一个非压缩的 tarball
  11. tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
  12. tar -tf archive.tar 显示一个包中的内容
  13. tar -xvf archive.tar 释放一个包
  14. tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
  15. tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
  16. tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
  17. tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
  18. tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
  19. zip file1.zip file1 创建一个zip格式的压缩包
  20. zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
  21. unzip file1.zip 解压一个zip格式压缩包

  

  11、DEB 包

  1. dpkg -i package.deb 安装/更新一个 deb
  2. dpkg -r package_name 从系统删除一个 deb
  3. dpkg -l 显示系统中所有已经安装的 deb
  4. dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb
  5. dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
  6. dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
  7. dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
  8. dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

  12、APT 软件工具

  1. apt-get install package_name 安装/更新一个 deb
  2. apt-cdrom install package_name 从光盘安装/更新一个 deb
  3. apt-get update 升级列表中的软件包
  4. apt-get upgrade 升级所有已安装的软件
  5. apt-get remove package_name 从系统删除一个deb
  6. apt-get check 确认依赖的软件仓库正确
  7. apt-get clean 从下载的软件包中清理缓存
  8. apt-cache search searched-package 返回包含所要搜索字符串的软件包名称
    add-apt-repository ppa:<ppa_name>  添加 ppa 到当前的库中并且自动导入公钥

 

  欢迎评论和转载。

Windows转Linux总结(附带常用Linux命令-LinuxMint)的更多相关文章

  1. 【Linux基础】常用Linux命令: cd, cp, ls, mkdir, mv, rm, su, uname

    常用Linux命令:cd, cp, ls, mkdir, mv, rm, su, uname cd命令:切换当前工作目录至 dirName(目录参数) 其中 dirName 可为绝对路径或相对路径.若 ...

  2. Linux系统中常用的命令汇总

    日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了 1) 查看某个服务的运行情况 (例如Redis) ps -ef | grep redis //e-显示程 ...

  3. Linux学习之常用压缩命令(三)

    (一)常用压缩命令 (1)gzip命令 (2)gunzip命令 (3)tar命令 (4)zip命令 (5)unzip命令 (6)bzip2命令 (7)bunzip2命令 (一)常用压缩命令 (1)gz ...

  4. Linux学习之常用网络通信命令与shell简单应用技巧(四)

    (一)常用网络通信命令 (1)ping命令 (2)write命令 (3)wall命令 (4)ifconfig命令 (5)shutdown命令 (6)reboot命令 (二)shell简单应用技巧 (1 ...

  5. linux下安装python linux下一些常用的命令

    注意 ubuntukylin-14.04.2-desktop-amd64 自带python2.7.6 这个说的比较详细 http://wenku.baidu.com/link?url=gaeFcQrc ...

  6. Linux运维常用的命令详解

    1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 显示了系 ...

  7. linux几条常用的命令

    列出一些手头分分钟要用到的命令. 1.df -h 用来查看各个分区的大小 2.du -h --max-depth=0 /data2/xijun.gong/tt_data 用来查看文件夹的大小,并指定递 ...

  8. linux系统下常用的命令(吐血自己整理,且用且珍惜)

    1)linux命令太多,有时候记不起来是哪个,为了方便大家查询,自己吐血整理了以下这些,转载时请标明出处,珍惜原创成果 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜 ...

  9. Linux系统:常用Linux系统管理命令总结

    本文源码:GitHub·点这里 || GitEE·点这里 一.目录指令 1.创建目录make directory mkdir 目录名称 //mkdir spring,创建一个spring文件夹 mkd ...

随机推荐

  1. SpringCloud的服务注册中心(四)- 高可用服务注册中心的搭建

    一.双 服务注册注册中心 1.服务注册中心的服务端 - EurekaServer 1.1.EurekaServer1 String.application.name=eureka-server ser ...

  2. redis入门(02)redis的常见问题

    一.常见问题 1.安装遇到/bin/sh: cc: command not found 解决办法:安装gcc yum install gcc 2.后台启动server端 2.1.问题现象 2.2.解决 ...

  3. OAuth2.0学习(1-13)oauth2.0 的概念:资源、权限(角色)和scope

    mkk 关于资源的解释 : https://andaily.com/blog/?cat=19 resource用于将系统提供的各类资源进行分组管理, 每一个resource对应一个resource-i ...

  4. ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

    ABP框架简介 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...

  5. POJ-3253 Fence Repair---Huffman贪心

    题目链接: https://vjudge.net/problem/POJ-3253 题目大意: 有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长 ...

  6. 原生js的一些研究和总结(1)

    数据类型 基本类型值包括: undefined,null,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,它们的值保存在栈空间,我们通过按值来访问的. 引用类型包括 ...

  7. C# WinForm 富文本编辑器 用kindeditor实现本地图片只选取不上传到编辑器

    以下资料有参考网上其它童鞋作品,原作者看到务喷!!!! 以下资料有参考网上其它童鞋作品,原作者看到务喷!!!! 重要的事只要说两遍... 网上找了几天关于WinForm富文本编辑效果都不理想,各种坑, ...

  8. Java内存回收机制.md

    1.java的内存 java的内存结构分为 堆 (是gc的主要区域) 线程共享,主要是用于分配实例对象和数组 栈 线程私有,它的生命周期和线程相同,又分成 虚拟机栈和本地方法栈,只有它会报 Stack ...

  9. [LeetCode] Diameter of Binary Tree 二叉树的直径

    Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...

  10. 将 Net 项目升级 Core项目经验:(三)迁移后的Net Standard版本的类库测试和多平台项目实测

    迁移后的Net Standard版本的类库测试和多平台项目实测 按照第一步的方法,添加一个Net Core的MSTest项目,然后将原来的测试项目下的代码迁移到新测试 项目中,然后引用新的Beyond ...