Linux一些常用命令、操作总结
1、linux 启动过程分析
a)BIOS自检
b)启动GRUB/LILO
c)运行LINUX内核并检测硬件
d)运行系统的第一个进程init,它的进程号pid=1
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)其它特殊服务
2、Fedora root密码破解
重启后 立即按e键 进入一个页面,选择第二行 再按e键,在下一个页面输入空格和1,代表以第一种级别登录
按b键进入单用户模式 直接命令行输入passwd user 即可改密码,当然也可以在这里修改配置文件,
如修改启动级别(修改配置文件):vi /etc/inittab
注:Fedora不能在图形界面以root用户登录,只能在命令行下面登录,即su+root密码
且使用根用户登录Fedora必须先修改配置文件:vi /etc/pam.d/gdm
在该文件里注释掉下面这行: auth required pam_succeed_if.so user!= root quiet
保存退出 :wq
3、vi Hello.java建立Hello.java文件
输入i进入插入(编辑)模式
输入esc进入命令行模式
输入 :wq表示保存退出
输入:q!表示不保存退出
编译 javac Hello.java
运行 java Hello
4、java开发环境搭建
进入安装包目录输入./jdk-6u45-linux-i586.bin即可
看一个配置文件 vi /etc/profile [环境配置文件]
配置自己的JDK 设置环境变量
JAVA_HOME=/home/jdk1.6.0_45
PATH=$PATH:/home/jdk1.6.0_45/bin
CLASSPATH=.:/home/jdk1.6.0_45/jre/lib/rt.jar
export JAVA_HOME PATH CLASSPATH
5、MySql的安装、目录结构、配置、使用:
参考http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/04/2236240.html
rpm -qal | grep mysql 检查有没有装过mysql
默认安装目录结构:
1)数据库目录:/var/lib/mysql/
2)配置文件:/usr/share/mysql(mysql.server命令及配置文件)
3)相关命令:/usr/bin(mysqladmin、mysqldump等命令)(*mysql的一种安全启动式:/usr/bin/mysqld_safe --user=root &)
4)启动脚本:/etc/rc.d/init.d/
1、如果是rpm包,参考rpm包安装
2、如果是tar.gz文件
解压:tar -zxvf 包名.tar.gz
3、继续配置
groupadd mysql (创建mysql组)
useradd -g mysql mysql (创建mysql用户,并放入到Mysql组)
进入到mysql文件夹输入:scripts/mysql_install_db --user=mysql (初始化数据库)
chown -R root . (修改文件的所有者)
chown -R mysql data (修改date文件夹的所有者)
chgrp -R mysql . (改变用户组)
启动mysql服务:service mysql start
启动mysql
bin/mysqld_safe --user=mysql & (地址符&表示以后台方式启动)
如何进入mysql(默认没有密码)
# mysql -u root -p
解决mysql"Access denied for user 'root'@'localhost'"问题
#/etc/init.d/mysql stop (停止mysql)
#mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (启动安全模式)
#mysql -u root mysql (通过以上模式直接进入了mysql,不检查用户名和密码)
mysql>UPDATE user SET Password=PASSWORD('新密码') where USER='root';
mysql>FLUSH PRIVILEGES;
mysql>quit
# /etc/init.d/mysql restart
# mysql -u root -p
Enter password: <输入新设的密码>
出现You must SET PASSWORD before executing this statement的解决方法:
mysql> SET PASSWORD = PASSWORD('123456');
如果希望在任何一个目录下都可以进入mysql
则需要在 /root/.bash_profile中添加路径
mysql数据库的使用
1)进入mysql # mysql -u root -p
2)建立数据库和表creat database zpcdb1;
3)建表create table users(userId varchar(8),userName varchar(8));
4)加入数据insert into users values('001','zpc');
5)编写一个java文件读取数据库数据
6)mysql驱动存放位置:jdk目录下的/jre/lib/
要配置CLASSPATH环境变量 vi /etc/profile
在配置文件中增加一行(注意lib后面没有ext,Classpath路径要和真实的路径对应):CLASSPATH=.:/home/jdk1.6.0_45/jre/lib/mysql-connector-java-5.1.29-bin.jar
export CLASSPATH
备份mysql数据库(进入到mysql安装目录,就是放有mysqldump命令的目录)
mysqldump -u root -p 数据库名>data.bak 其中data.bak就是备份文件,随意指定名称
恢复mysql数据库
mysql -u root -p密码 数据库名<data.bak
6、安装tar.gz文件:
a、解压tar -zxvf ???.tar.gz (指定解压目录:tar zxvf filename.tar -C /specific dir)
b、进入目录配置./configure --prefix=/opt/zpcsamba
c、编译 make
d、安装 make install
补装gcc编译器 yum -y install gcc*
-c :create 建立压缩档案的参数;
-x : 解压缩压缩档案的参数;
-z : 是否需要用gzip压缩;
-v: 压缩的过程中显示档案;
-f: 置顶文档名,在f后面立即接文件名,不能再加参数
7、启动Eclipse[进入图形界面再打开终端]
进入图形界面的两种方式
1、startx 以执行命令者的身份启动X图形界面
2、init5 启动 runlevel 5所对应的服务,并运行图形登录管理器,由用户选择以何种身份登录,只有root有权执行
启动Eclipse
cd eclipse
ls
./eclipse
8、用户管理、目录结构
root 存放root用户的相关文件
home 存放普通用户的相关文件
bin 存放常用命令的目录
sbin 存放具有一定权限才可以使用的命令
mnt 默认挂载光驱和软驱的目录
etc 存放配置相关文件(环境变量、tomcat、mysql数据库的配置)
var 存放经常变化的文件
boot 存放引导相关的文件
df
df -h查看磁盘使用情况
9、添加用户、设密码、删除用户
useradd xiaozhou
设密码
passwd xiaozhou
删除用户
userdel xiaozhou
删除用户及用户主目录
userdel -r xiaoming
修改启动级别(修改一个配置文件)
vi /etc/inittab
10、重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
11、关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
12、文件操作命令
pwd显示当前工作目录
cd 改变目录
ls 列出文件和目录
ls -a 显示隐藏文件
ls -l显示长列表格式
mkdir 建立目录
rmdir 删除空目录
rm -rf 删除整个目录(里面内容全删掉)
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
mv a.txt b.txt重命名文件如果已经有b.txt则覆盖
rename 'a' 'b' a.txt 重命名a.txt为b.txt
cp zpc.java /home/zhou 把zpc.java文件拷到zhou目录下
rm zpc.java 删除zpc.java文件
管道命令|,把上一个命令的结果交给|的后面的命令处理
grep在文本中查询内容
grep -n "zpc" zpc.java到zpc.java文件中找zpc,找到后输出行数和那一行的内容
more 显示文件内容带分页
find / -name zpc.java从根目录开始查找zpc.java文件
ls -l>a.txt 本来改在终端显示的东西写入到文件a.txt中,覆盖写
ls -al>>a.txt追加写
13、如何在Linux中添加组
groupadd policeman
查看linux中所有的组
vi /etc/group
或者只查看
cat /etc/group
创建一个用户,指定将该用户分配到哪个组
useradd -g 组名 用户名
查看Linux所有用户信息
cat /etc/passwd
14、文件所有者对该文件的权限:
r 可读 用4表示
w 可写 用2表示
x 可执行 用1表示
-rw-r--r--
第一个字段表示文件的所有者对该文件的权限
第二个字段表示文件所在的组对该文件的权限
第三个字段表示其他的用户对该文件的权限
chmod 777 zpc1 修改了zpc1目录的访问权限,3个7分别表示本身、组内、组外
如果只想让自己和本组的人访问该目录,则777改成770
chmod 664 zpc1.java表示组内和自身都可以写
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组:usermod -g 组名 用户名
可以用usermod -d 目录名 用户名 改变该用户登录的初始目录
15、挂载光驱
mount /mnt/cdrom/
cd /mnt/cdrom/
ls
卸载
umount /mnt/cdrom/
16、Shell编程
ls -l /bin/*sh查看系统的shell种类
env 查看目前使用的shell种类
chsh -s /bin/csh 改成了csh这种shell
chsh -s /bin/bash 改成了bash这种shell
history 列出最近使用过的命令
history 5 显示最近使用的5个命令
17、网络配置
setup
保存网络设置
/etc/rc.d/init.d/network restart
ifconfig 查看网络配置
临时网络配置(这种方法会即时生效,但也是临时生效)
ifconfig eth0 x.x.x.x 对网卡进行设置
ifconfig eth0 network x.x.x.x对子网掩码设置
显示网络统计信息的命令
netstat
netstat -an 按端口号排序
netstat -anp 按端口号排序并显示进程号
ifconfig 查看网络配置
追踪数据包经过程命令:
traceroute www.sohu.com
route路由表
18、安装rpm包
rpm -i RPM包全路径名称 :安装包到当前系统
rpm -ivh RPM包全路径:带有提示信息的安装
i=install 安装
v=verbose 提示
h=hash 进度条
删除rpm包
rpm -e RPM包的名称
强制删除
rpm -e --nodeps RPM包的名称
查询linux中安装了哪些rpm软件
rpm -qa
rpm -qa mysql 查看系统是否安装了mysql
19、samba的安装步骤
a、rpm -q samba 检查是否已安装该软件(这里检查的是rpm为后缀的安装包)
b、如有就先卸载
c、把自己的安装文件挂载到linux下(如挂载U盘)
d、把 samba开头的文件拷到/home,准备安装
cp samba-4.1.6.tar.gz /home(这里是tar.gz的文件)
e、开始安装
f、创建一个用户youyou
useradd youyou
passwd youyou
g、给youyou设置samba密码
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
smbpasswd youyou
g、第二种方法:smbpasswd -a suyang 将系统用户suyang加入到 samba用户数据库
h、启动samba服务器
service smb start
service smb stop
service smb restart
另一种方法
a、yum -y install samba 在线安装samba
b、参考http://lxsym.blog.51cto.com/1364623/289156/
20、linux下挂载U盘
a、mkdir /mnt/USB 先在/mnt下建立一个叫USB的目录来挂载u盘
b、fdisk -l 查看一下磁盘分区情况
c、U盘插入USB口再输入fdisk -l查看一下u盘是否读取
d、mount -t vfat /dev/sdb1 /mnt/USB 挂载
e、cd /mnt/USB
ls -l /mnt/USB 查看u盘里的文件
f、umount /mnt/USB 卸载u盘(卸载时切换个目录,不要在u盘目录下卸载,否则提示忙)
21、任务调度的使用
1、设置任务crontab -e
2、每隔一分钟去执行date > /home/mydata1:* * * * * date >> /home/mydate
每天凌晨2:00执行date > /home/mydata1:在crontab -e中加入0 2 * * * date >> /home/mydate
*号分别表示分钟(每小时的第几分钟执行)、小时、日期、月历、星期
3、调度多个任务
1)在crontab -e中直接写
2)把所有的任务写入到一个可执行文件(shell编程)
4、终止任务调度
crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
22、查看进程状态
ps -aux | more
杀死进程
kill 进程号
kill -9 进程号(强制杀死)
另外一种查看进程方法
top | more 区别在于top命令不断实时刷新
top -d 10 指定系统更新进程的时间为10秒
20120 4188
date命令显示系统时间
查看月历:
cal 2 2014 查看2014年2月
cal 2014 查看2014整年
把日历存到test文件里
cal 2014 > test
23、linux补充知识:
1)拷贝文件夹(比拷贝文件多了个-r)
cp -r workspace/ /home
cp -rf workspace/ /home(加个f表示全覆盖,不用询问)
2)建立符号连接
ln -s 源 目标
ln -s /root/zpc.java zpc(zpc指向实际文件zpc.java)
3)grep在文本中查询内容
grep -n "zpc" /root/zpc.java /home/
在/root/zpc.java文件和/home/目下寻找包含zpc的串
4)find命令:搜索文件及目录
find /home -name abc 在home目录下查找名字为abc的文件
find /home -size +10k 查找/home目录下大小为10k的文件
find /home -admin -10 查找10分钟内存取过的文件或目录
5)每天凌晨两点自动备份数据库
vi mytask2.sh
在mytask2.sh中写入:/usr/bin/mysqldump -u root -p123456 zpcdb1 > /home/zpcdb1.bak
修改mytask2.sh的可执行权限:chmod 744 mytask2.sh
添加任务调度:crontab -e
写入:0 2 * * * /root/mytask2.sh
6)用户登录后自动执行的shell脚本文件(配置用户的或者全局的profile文件)
配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动。
7)显示变量内容
echo $PATH 输出当前PATH环境变量内容
env也可以直接查看所有环境变量
临时编辑环境变量(追加)export PATH=$PATH:/root/zpc
8)通配符的使用
find /home/ -name m* 在home目录下找m打头的文件
*代表多个字母或数字
?代表多一个字母或数字
[]限定范围 ls abc[1-6].java 表示abc后面可以跟一个1-6的数字
9)使用别名,alias用法
ls -l /home
取个别名:alias llh='ls -l /home'
10)文件压缩 zip aa.zip zpc.java user.java把zpc.java、user.java两个文件压缩到aa.zip中
文件夹压缩 zip -r aa2.zip ./workspace 把当前目录下的workspace压缩为aa2.zip
11)解压缩unzip aa.zip