Linux学习杂记
近期一口气看完了韩顺平老师讲的Linux视频教程,自己也在学习的过程中做了些笔记,记载例如以下。希望帮助到一些喜欢研究Linux的同学。也算是在云端备份一下笔记吧。以免电脑出现不可控的因素而遗失自己的心血。
首先声明,这篇笔记不是依照韩老师讲的顺序来写的。可能有些凌乱。但我相信。你总能找到你想要的信息:
Linux必看书籍:
鸟哥的私房菜
Linux编程从入门到精通
Linux内核安全剖析
命令:
shutdown -h now 立马关机
shutdown -r now 重新启动
reboot 重新启动
startx 进入图形界面
logout 用户注销
注意:
登陆时尽量少用root账号登陆,由于它是系统管理员,最大的权限,避免操作失误。
可利用普通用户登陆,登陆后再用“su -”命令来切换成系统管理员身份。
C程序在Linux下编译执行:
1. gcc hello.c 或者 gcc -o newName hello.c
2. ./a.out
简介。Linux的文件系统是採用级层式的树状文件夹结构,在此结构中的最上层是根目”/“,然后在此文件夹下再创建其它的文件夹。
根文件夹”/“下的文件有:
bin: 存放Linux中应用软件工具的各种命令。比如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、newaliases、nslookup passwd、quota、smb*、wget等。
sbin: 存放Linux中系统管理的各种命令。比如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevelshutdown等。
boot:存放内核以及启动所需的文件等。
dev: 存放设备文件。
etc: 存放系统的配置文件。
home: 用户文件的主文件夹。用户数据存放在其主文件夹中。
lib : 存放必要的执行库。
mnt :存放暂时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子文件夹下。
proc :存放存储进程和系统信息
root :超级用户的主文件夹
tmp : 存放暂时文件的文件夹
usr : 包括了一般不须要改动的应用程序。命令程序文件、程序库、手冊和其他文档。
var : 包括系统产生的常常变化的文件,比如打印机、邮件、新闻等假脱机文件夹、日志文件、格式化后的手冊页以及一些应用程序的数据文件等等。
建议单独的放在一个分区。
vi编辑器的使用:
在编辑模式时,ESC+“:wq" 为保存退出,":q!"为强制退出(不保存)
":set nu"在文件里每行行处显示行号
":set nonu"取消行号
":+数字" 为跳至该数字标示的行,如":4"跳到第四行
":/+字符串"查找特定字符串。假设搜索的字符串不是所要的,能够按"n"键来往下继续查找。如”:/main“查找”main“字符串位置。
":?+字符串" 使用方法同 上面的 ":/+字符串"
Linux的用户管理:
useradd userName 加入用户userName
passwd userName 改动用户userName的password
userdel userName 删除用户userName
userdel -r userName 删除用户以及用户主文件夹
Linux的执行级别:
命令 init 【012356】
执行级别:0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 系统重新启动
经常使用的执行级别是3和5,要改动默认的执行级别可改动文件 /etc/inittab的id:5:initdefault: 这一行中的数字。
Linux命令:
pwd 显示当前的工作文件夹
cd 切换文件夹
ls 列出文件和文件夹
ls -a 显示隐藏文件
ls -l 显示长列表格式
ls -la 显示隐藏文件,并以长列表格式显示
mkdir 新建文件夹
rmdir 删除空文件夹(不能删除有文件的文件夹,能够使用”rm -rf“强制删除有文件的文件夹)
touch 新建空文件
cp 拷贝文件
cp -r dir1 dir2 递归复制命令(复制子文件夹信息)
mv 移动文件或者改文件名称
rm 删除文件(不能直接删除文件夹)
rm -rf 强制删除全部内容(包含文件夹和文件)
ln 建立符号连接,类似如windows的为某个文件建立快捷方式吧
ln -s 源 目标 如ln -s /etc/inittab inittab (inittab指向实际文件/etc/inittab)
more 显示的文件内容较多时,分页显示
less 显示文件内容带分页
grep 在文本中查询内容 如 "grep main hello.java" , "grep -n main hello.java"显示所在行的行号
| 管道命令
man 命令相当于 windows的 help
find 搜索文件及文件夹
1. 在特定的文件夹下搜索并显示指定名称的文件和文件夹
find / -name Hello.java
2. 搜索一段时间内被存取/变更的文件或文件夹:
find /home -amin -10 10min内存取的文件或文件夹
find /home -atime -10 10h内存取的文件或文件夹
find /home -cmin -10 10min内更改过的文件或文件夹
find /home -ctime +10 10h前更改过的文件或文件夹
3. 搜索指定大小的文件
find /home -size +10k 查找/home文件夹下大小为10K的文件
重定向命令:
ls -l > a.txt 列表的内容写入文件a.txt中(覆盖写)
ls -la >> aa.txt 列表的内容追加到文件aa.txt的末尾
从文件里输入信息 database_program < database_data
在Linux中的每一个用户必须属于一个组,不能独立于组外。
在Linux中每一个文件有全部者、所在组、其它组的概念。
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
用命令 ls -ahl 能够看到文件的全部组
命令 chgrp 组名 文件名称 改动文件所在的组。
linux中加入组:groupadd groupName
加入用户时,能够指定将该用户加入到哪个组中,
相同的用root的管理权限能够改变某个用户所在的组:usermod -g 组名 username
还能够用 usermod -d 文件夹名 username 改变该用户登陆的初始文件夹
修复Redhat命令行英文乱码的情况:
vi /etc/sysconfig/i18n 在后面加上 LC_ALL=POSIX 注销后就可以恢复正常显示。
使用命令行备份和恢复mysql数据库:
备份:mysqldump -u root -ppassword 数据库名>data.bak
恢复:mysql -u root -ppassword 数据库名<data.bak
linux中加入组: groupadd groupName
查看linux中全部组信息: vi /etc/group 或者 cat /etc/group
创建用户,并同一时候指定将该用户分配到哪个组: useradd -g groupName userName
查看linux中全部用户信息:vi /etc/passwd 或者 cat /etc/passwd
改变权限的命令:
chmod 改变文件或文件夹的权限
如:chmod 777 abc.txt 赋予abc.txt权限 -rwxrwxrwx (4+2+1)
三组rwx分别属于:文件全部者訪问权限、用户所在组权限、其它用户权限。
改变文件拥有者(chown)和用户组(chgrp)命令:
如:chown xiaowang abc.txt 改变abc.txt的拥有者为xiaowang
chgrp root abc 改变abc所属的组为root
chown root ./abc 改变abc文件夹的全部者为root
chown -R root ./abc 改变abc文件夹及其以下全部的文件和文件夹的全部者为root
在linux上安装jdk的步骤:
1.把全部的安装文件打包成.iso文件。挂载到linux操作系统上:
mount /mnt/cdrom
2.把安装文件复制到 /home 下
cp 文件 /home
3.cd /home (切换文件夹到/home下)
4.安装
./xxxxx.bin
5.看看一个文件 /etc/profile (环境配置文件)
配置环境变量:例如以下图所看到的
Linux分区:
概述:首先我们要对硬盘分区的基本概念进行一些初步的了解。硬盘的分区主要分为基本分区和扩展分区两种,
基本分区和扩展分区的数目之和不能大于4。且基本分区能够立即被使用但不能再分区。扩展分区必须再进行分区后才干使用。
也就是说它必须还要进行二次分区。那么由扩展分区再分下去是什么呢?它就是逻辑分区,并且逻辑分区没有数量上的限制。
对windows用户来说,有几个分区就有几个驱动器,而且每一个分区都会获得一个字母标示符。然后就能够选用这个字母来指定在
这个分区上的文件和文件夹。它们的文件结构都是独立的。很好理解。但对这些用户初上手的redhat linux,可就有点恼人啦。由于对redhat linux用户来说不管有几个分区,分给给哪一个文件夹使用,它归根结底就仅仅有一个根文件夹,一个独立且唯一的文件结构。redhat linux中每一个分区都是用来组成整个文件系统的一部分。由于它採用了一种叫“加载”的处理方法。它的整个文件系统中包括了一整套的文件和文件夹,且将一个分区和一个文件夹联系起来。这时要加载的一个分区将使它的存储空间在一个文件夹下获得。
以下我们先来看看redhat
linux的驱动器是怎样标示的。
对于IDE硬盘,驱动器标示符为“hdx~”,当中“hd”表明分区所在设备的类型。这里是指IDE硬盘了。
“X”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”表示分区。前四个分区用数字1到4表示。它们是主分区或扩展分区。从5開始就是逻辑分区。比如。hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
挂载命令 mount [參数][设备 名称] [挂载点]
特别说明:在挂载光驱时,可直接使用 mount /mnt/cdrom
卸载命令 umount [设备名称]
查看磁盘使用情况 df [參数]
如:df -l
查看某个文件夹是在哪个分区 df [文件夹全路径]
查看linux系统分区详细情况 fdisk -l
Linux任务调度:
设置任务调度文件 /etc/crontab
设置个人任务调度。运行crontab -e命令。
接着输入任务到调度文件 如: 5 * * * * ls -l /etc/ > /tmp/to.txt (每小时的第五分钟运行ls -l /etc/ > /tmp/to.txt命令)
调度文件里时间表示的规则:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGRmeWxvbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
如何去调度多个任务?
1.在crontab -e 中直接写.(不推荐)
2.能够把全部的任务,写入到一个可运行文件(shell编程)。(非常好)
终止任务调度:
crontab -r 终止任务调度
crontab -l 列出当前有哪些任务调度
1.date命令:显示系统的时间。
能够在命令行中直接输入“date”命令。来查看系统的时间。
2.利用date命令来更改系统的时间。
date MMDDHHMMCCYY.SS:意思是指:月月日日时时分分年年年年.秒秒
3.查看月历:
cal 9 2014 : 查看2014年9月的日历。
4.查看年历:
cal 2014 : 查看2014年的年历
Linux监控网络状态信息:
显示网络统计信息的命令 netstat
此命令用来显示整个系统眼下的网络情况。
比如眼下的连接、数据包传递数据、或是路由表内容。
此命令直接输入就可以使用。如:netstat -an
检測主机连接命令ping:
是一种网络检測工具,它主要是用来检測远程主机是否正常,或是两部主机间的介质是否为断开、
网线是否脱落或网卡是否故障。如:ping 对方ip地址或网址
显示数据包经过历程命令:traceroute
此命令能够直接输入使用,用来检測数据包在网络上传输的过程。从本机到远程主机完整路径。帮助管理员解决这个问题。
route:
所谓路由是指将数据由来源网络送往目的地网络的操作,在大型网络中。路由是很复杂的,由于数据包在抵达目的地时,
可能经过的节点有非常多。路由表是存储在路由器或一些其它链接设置上的窗口。当中记录着到指定目的地的网络路径。以及这些路径的相关数值。
Linux压缩和解压问题:
■以zip和unzip处理.zip文件
1.zip命令的基本用法:
zip file.zip *:zip后接压缩后的文件名称,在它的后面输入要压缩的文件就可以。
2.压缩后。自己主动删除原文件
zip -m file.zip to.txt :意思是把to.txt文件压缩成file.zip文件,to.txt会自己主动删除的。
3.将子文件夹一起压缩:
zip -r file.zip * : 将当前文件夹下的子文件夹一起压缩。
4.忽略子文件夹的内容:
zip -j file.zip *
5.将已压缩的或没有必要压缩的文件去掉:
zip -n .mpg: .jpg: .gif:第一种文件里间要用“:”分开。
6.压缩某一日之后的文件:
zip -t 102002 file.zip:将当前文件夹下在2002年10月20日之后的文件压缩。
7.不压缩链接文件的原文件:
zip -y file.zip *
8.压缩率问题: -1到-9 (-9的压缩率最高)
zip -9 file.zip *
9.将不须要压缩的文件排除在外。
zip file.zip * -x file2.txt : 在压缩时,将当前文件夹内的file2.txt文件排除在外。
■以unzip命令进行.zip文件的解压缩
1.直接解压缩文件
unzip file.zip
2.排除不须要解压缩的文件
unzip file.zip -x file2:除了file2文件外,其它的文件都解压缩。
3.查看压缩包的内容
unzip -Z file.zip:查看file.zip压缩包的内容。也能够使用“-l”、“-v”来查看压缩包的内容
配置 .bashrc 文件能够指定某些程序在用户登陆的时候就自己主动启动。
alias使用方法(为某个命令取别名):
alias llh=' ls -l /home '
shell使用:
■通配符: * 代表多个字母或数字
? 代表一个字母或数字
ls a* ls a? ls ?
at?
ls f080[1-6].tif
runlevel 命令。能够查看当前的执行级别
Linux系统启动步骤例如以下:
a) BIOS自检
b) 启动GRUB/LILO
c) 执行LINUX内核并检測硬件
d) 执行系统的第一个进程init
e) init读取系统引导配置文件 /etc/inittab中的信息进行初始化
f) /etc/rc.d/rc.sysinit 系统初始化脚本
g) /etc/rc.d/rcX.d/[KS]* - 依据执行级别X配置服务
终止以“K”开头的服务
启动以“S”开头的服务
h) /etc/rc.d/rc.local 运行本地特殊配置
i) 其它特殊服务
Linux下Shell介绍:
查看眼下使用的是哪种shell:
env
在linux下。我们有时可能希望知道或是使用近期运行的命令。history可能会帮上大忙。
1.history 5 :显示近期使用的5个命令。
2. !5 : 运行历史编号为5的命令。
3. 。ls : 运行最后一次以“ls”开头的命令。
追踪路由: tracert 目标ip/域名
測试两个ip是否畅通:ping 目标ip
在windows下 查看ip情况命令:ipconfig
在linux/unix下查看ip情况命令:ifconfig
Linux网络环境配置:
方法一:(1) 用root身份登陆,执行setup命令进入到text mode setup utiliy对网络进行配置,这里能够进行
ip,子网掩码,默认网关,dns的设置。
(2) 这时网卡的配置没有生效,执行 /etc/rc.d/init.d/network restart命令。我们刚才做的设置才生效。
方法二:(1) ifconfig eth0 x.x.x.x对网卡进行设置
(2) ifconfig eh0 network x.x.x.x对子网掩码设置。
对广播地址和dns 使用默认的
注意: 这样配置网络将会马上生效,可是是暂时生效。
方法三:(1) 改动 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件中各个属性能够改动。包含ip,子网掩码,广播地址,默认网关。
(2) 这时网卡的配置没有生效。执行 /etc/rc.d/init.d/network restart 命令。我们刚才做的改动设置才生效。方法
这样的方法是最低层的改动
在Linux中,全部的设备都是文件。
Linux进程的概念和管理:
1. 在Linux中,每个运行的程序都称为一个进程。每个进程都分配一个ID号。
2. 每个进程,都会相应一个父进程,而这个父进程能够复制多个子进程。
比如wwwserver。
3. 每一个进程都可能以两种方式存在的。前台与后台。
所谓前台进程就是用户眼下的屏幕上能够进行操作的。
后台进程则是实际在操作,但因为屏幕上无法看到进程,通常使用后台方式运行。
4. 一般系统的服务都是以后台进程的方式存在,并且都会常驻在系统中,直到关机才结束。
ps 命令是用来查看眼下系统中,有哪些正在运行,以及它们运行的状况。能够不加不论什么參数。
显示具体的进程信息:
1. ps -a:显示当前终端的全部进程信息。
2. 以用户的格式显示进程信息:ps -u。
3. 显示后台进程执行參数:ps -x
pa -aux : 看到全面。信息也全面。
若是某个进程运行一半须要停止时,或是已消耗了非常大的系统资源时。此时能够考虑停止该进程,使用 kill 命令
来完毕此项任务。
终止某个进程:kill 进程号 如:kill 12345
kill -9 12345:由于有些进程会捕捉某些信号,假设直接不能结束进程能够使用 "-9" 传送信息(强制kill掉)。
Linux学习杂记的更多相关文章
- Linux学习日记-使用EF6 Code First(四)
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- Linux学习笔记之兄弟连
systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...
- Linux学习内容
Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- 实验楼 linux 学习
实验楼 linux 学习 一.Linux 用户管理 1.查看用户 who am i // who mom likes whoami ====--------====== 输入的第一列表示打 ...
- linux学习网站分享
http://www.zhihu.com/question/19895288 http://linux.vbird.org/ 两个linux学习的网页存起来,以后学习.
随机推荐
- Netty 实现SSL安全连接(wss://)
原文:Netty5使用自签证书实现SSL安全连接 在客户端是https:// 协议下,使用ws:// 协议连接会报错的,得需要使用wss:// 连接.(ip连接失败时使用域名连接) netty创建服务 ...
- FIFO调度算法和LRU算法
一.理论 FIFO:先进先出调度算法 LRU:最近最久未使用调度算法 两者都是缓存调度算法,经常用作内存的页面置换算法. 打一个比方,帮助你理解.你有很多的书,比如说10000本.由于你的书实在太多了 ...
- Linux教程 - 管道和重定向
管道和重定向! 保持数据流动 介绍 在前两节中,我们看了一些可以为我们操作数据的过滤器.在本节中,我们将看到我们如何将它们结合在一起来执行更强大的数据操作. 本节涉及一些阅读.即使这些机制及其 ...
- Error after SQL Server 2012 installation: Login Failure for "SQL Server Integration Services 11.0" SSIS service
When you install SQL Server 2012 and you try to connect to SSIS services, you cannot due to that the ...
- MVC 设计模式与三层架构
一.JavaEE开发模式 什么是开发模式 模式是在开发过程中总结出的"套路",总结出的一套约定俗成的设计模式 JavaEE模式 model1模式 技术组成 :jsp+javaBea ...
- 利用meterpreter下的Venom免杀后门
转载请注明作者:admin-神风 下载地址:https://github.com/r00t-3xp10it/venom .从Github上下载框架: tar.gz OR zip OR git clon ...
- Windows 0day成功验证之ETERNALBLUE
本帖由春秋首发~作者:神风 @春秋文阁负责人 方程式又一波0day[该贴有工具]:https://bbs.ichunqiu.com/thread-21736-1-1.html 最近一段时间出现一波高潮 ...
- Mybatis框架Day01(上)
框架课程 1 课程计划 第一天: 1.mybatis的介绍 2.Mybatis的入门 a) 使用jdbc操作数据库存在的问题 b) Mybatis的架构 c) Mybatis的入门程序 3.Dao的开 ...
- HTML5 UI 控件Mobiscroll的使用(年月日三级联动)
概述: 遇到制作一个html5界面,需要选择年月日,其实这个功能很常用.一般我们都是网上找,之前也没有收藏一个自己常用的,今天发现一个不错的库.特此记录一下使用过程,以便以后遇到了方面查阅. 1.官方 ...
- java知识回顾
一.构造方法能不能被继承 当然不能,1.构造方法是类的唯一入口 2.构造方法与类名相同 3.子类构造方法中隐式的调用了父类的构造方法 二.值传递和引用传递.不变类和可变类.直接赋值和浅拷贝和深拷贝 ...