现在的位置: 首页 > 综合 > 正文

linux常用的命令以及其他的一些知识点

2013年12月08日 ⁄ 综合 ⁄ 共 9270字 ⁄ 字号 评论关闭

切换到root 目录下 sudo -s -H (或者su -)
shutdown -h now 立刻进行关机 halt
shutdown -r now
reboot 现在重新启动计算机
切换用户 su -
logout 注销用户

linux 中文乱码的处理:LANG="en-US.UTF-8"(/etc/sysconfig/i18n)

 vi Hello.java
 i 进入到插入到模式
 输入esc(进入命令模式)
 输入:
 保存退出:wq
 退出但是不保存:q!

startx 进入图形界面
ls 列出当前目录的所有文件(ls -l)(ls -la)

 

root:存放root用户相关文件
home:存放普通用户相关文件
bin:存放常用命令的目录
sbin:具有一定的权限才能使用的命令
mnt:默认挂载光驱和软驱的命令的目录
etc:存放配置相关文件
boot:linux 启动的引导文件
var:存放临时数据
usr:文件默认安装的文件夹
显示当前在哪个路径下:pwd

linux用户管理:
添加用户:useradd zhanqiong
修改密码:passwd zhanqiong
删除用户:userdel zhanqiong
删除用户以及用户主目录 userdel -r zhanqiong

linu

运行级别
0:关机
1:单用户
2:多用户状态但是没有网络服务
3:多用户状态但是有网络服务
4:系统未使用但是保留给给用户
5:图形界面
6:系统重启
常用运行级别是3和5,要修改默认的的运行级别可修改文件
/etc/inittab的id:5:initdefault:这一行中的数字

解决错误配置的方法:
在进入grub引导界面,输入 e 再选中第二行 输入e 在最后输入 1【单用户级别】(前面有一个空格)让后恩b
linux下的密码破解和密码保护
第一部分:如何破解root密码
方法如下:
1.在grub引导界面中按“e”进入grub的编辑模式
2.编辑模式下选择第二项,即:“kernel/vmlinuz-2.4.20-8 root=LABEL=/”然后再按“e”编辑此项
3在后面加上“single”(注意前面有个空格),回车,按“b”这样就启动了linux的单用户模式
4.在“sh-2.05b#”之类的后面输入:passwd root
5.重启,正常进入,OK
防止别人通过单用户模式修改密码
1.grub有一个配置文件在/etc这个文件夹,“grub.conf”
2.我们看下文件的类容:
default=0
timeout=10
Password=985106ai(输入的)
...
这样在grub的界面已经不可以按“e”进行修改了,想修改必须按“p”输入密码后进行修改

linux 常用命令
pwd 显示当前工作目录
cd 改变目录

ls 列出文件和目录
ls -a显示隐藏文件
ls -l 显示长列表格式

mkdir 建立目录
rmkdir 删除空目录

touch 建立空文件

echo生成带内容的文件 echo "you are the best boy" > book.txt

grep 在指定文件里查找特定字符

wc 统计文件的行数

cp 复制命令
cp -r dir1 dir2 递归复制命令(复制子目录信息)

mv 移动文件和文件名
rm 删除文件和目录
rm -rf *  删除所有类容(包括目录和文件)r递归f强制

ln 建立符号链接
ln -s源目标
ln -s /etc/inittab inittab      inittab指向实际文件/etc/inittab
more 显示文件类容,带分页 空格下一页   pageup和shift上一页
less 显示文件类容,带分页
grep 在文本中查询类容 grep -n "zhanqiong" aaa.java
l 管道命令:在Linux和unix系统中 | 就是管道命令:把上一个命令的结果将给 | 的后面的命令处理 ls -l /etc/ | more

cat命令用法:

cat    file1 file2  file3 ...

echo "text through stdin" | cat - file.txt

cat -s file          #压缩连续的空白行

cat file  | tr -s "\n"   #移除空白行

cat -T file.py     #将制表符显示为^|

cat -n lines.txt  #显示行号

find 搜索文件及目录
在Linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是一件容易的事,而find可以解决上述问题
1在特定的目录下搜索并显示指定名称的的文件和目录
find / -name man:意思是说从根目录开始搜索名称为man的文件和目录

find/home -size +10k:查找/home目录下大小为10k的文件

find . -iname "example*" #不关心大小写

find . \( -name "*.txt" -o -name "*.pdf" \)  -print #匹配多个条件中的一个

find . ! -name "*.txt"        #反选

find . -type d -print     #只列出所有的目录

find . -type f   -print     #只列出文件

find .  -type  l -print     #只列出符号链接

find . -maxdepth 1 - type f -print     #列出当前目录下的所有普遍文件

find . -mindepth 2 -type f -print       #列出深度距离当前目录至少两个子目录的所有文件

根据文件时间进行搜素

-atime:访问时间(小时)

-mtime:修改时间

-ctime:变化时间(权限和所有权)

-amin:访问时间(分钟)

-mmin

-cmin

find . -type f -atime -7 -print:打印出在最近7天内被访问过的文件

find . -type f -atime 7 -print:打印出恰好在7天内被访问过的文件

find . -type f -atime +7 -print:打印出超过7天访问过的文件

基于文件大小的搜素

find . -type f  -size +2k  大于2k的文件

find . -type f -size 2k   等于2k的文件

find . -type f -size -2k  小于2k的文件

删除匹配的文件

find . -type f  -name "*.swp" -delete  #删除当前目录下所有的.swp文件

基于文件权限和所有权的匹配

find . -type f  -name  "*.php" !  -perm 644 -print

find . -type f  -user zhanqiong -print

xargs命令

cat  example.txt | xargs    #将多行输入转换成单行输出

cat  example.txt | xargs -n 3 #将单行输入转换为多行输出

echo "splitXsplitXsplitXsplitX" | xargs -d X -n 2

结果

     split split

      split split

tr转换(加密)

echo  "1234" | tr "0-9" "9876543210"

tr 删除字符

echo "hello 123 world 456" | tr -d "0-9"

校验和核实

md5sum file1 file2 file3 file4  > file.md5

md5sum -c file.md5  #检查数据完整性

切割文件

split -b 10k data.file -d -a 4  #以数字为后缀,后缀长度为4

生成测试文件:
dd if=/dev/zero of=junk.data bs=1M count=1 #创建一个1MB大小的文件junk.data(/dev/zero是一个字符设备,它会不断返回0值字节)

文本文件的交集与差集

comm A.txt B.txt

comm A.txt B.txt -1 -2:打印出交集

cat A.txt B.txt -2 -3:打印出A对B的差集

cat A.txt B.txt -1 -3:打印出B对A的差集

用grep在文本中搜索文本

grep match_pattern filename

重定向命令:

ls -l > a.txt列表的内容写入文件a.txt中(覆盖写)grep -n "zhanqiong" aaa.java > bbb.bak
ls -al >> a.txt列表的内容追加到文件a.txt的末尾
从文件中输入信息database_programe<database_data

wget命令

wget是linux最常用的下载命令,一般的使用方法是:wget+空格+要下载文件的url路径

简单说一下c参数,这个非常常见,可以断点续传,如果不小心终止了,可以继续使用命令接着下载

wget -c http://localhost/check/syc

在Linux中的每一个用户必须属于一个组,不能独立于组外

所有者:一般为文件的创建者,谁创建了这个文件,就天然的成为该文件的所有者
用ls   -ahl命令可以看到文件的所有者
可以用chown 用户名 文件名    来修改文件的所有者

文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用 ls  -ahl命令可以看到文件的所有组
用chgrp 组名 文件名    来修改文件所在组

其他组:除开文件的所有者和所在组,系统的其他用户都是文件的其他组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
添加组:groupadd policeman
查看linux所有组的信息:vi /etc/group 或者 cat /etc/group
查看linux所有用户的信息 vi /etc/passwd   或者 cat /etc/passswd
创建用户并同时指定该用户的组 useradd -g 组名 用户名
改变某个用户所在的组: usermod -g 组名 用户名
也可以
usermod -d 目录名 用户名  改变该用户登陆的初始目录

如何修改文件的访问权限的问题(让别的用户进入自己的主目录)
chmod 111 along(只能是along,或root修改,)

-rw-r--r--
-文件类型'-'普通的类型
rw-文件的所有者对该文件具有的权限可读(r 4),可写(w 2),可执行(x 1)
r--文件所在组(其他用户)对该文件的权限
r--其他组的用户的用户对该文件的权限

改变权限的命令
chmod 改变文件和目录的权限
chmod 755 abc:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
chmod a+r abc:给所有的用户增加读的权限 (a表示所有用户,g表示所属组用户,u表示数组,o表示其他用户)(r 读权限  w写权限  x执行权限)

备份压缩命令:包括gzip,bzip 两种压缩命令

仅打包,不压缩

tar -cvf   /home/koubei.tar  /home/koubei

打包后,以gzip压缩

tar -zcvf /home/koubei.tar.gz  /home/koubei

打包后,以bzip2压缩

tar -jcvf /home/koubei.tar.bz2 /home/koubei

JAVAEE 开发java 程序
jdk的安装步骤
1.把mypackage.iso挂载到Linux操作系统上
   选择 虚拟机--->设置--->CD-ROM-->选择镜像文件
   mount /mnt/cdrom/  (umount /mnt/cdrom/卸载文件)
2.把安装文件拷贝到 /home
    cp 文件 /home
3.cd /home[切换目录到/home]
4.安装 ./j2sdk.bin &
5.etc/profile[环境配置文件]#注释
6.配置jdk
  JAVA_HOME=/home/j2sdk1.4.2_07
  PATH=$PATH:/home/j2sdk1.4.2_07/bin
  CLASSPATH=.:/home/j2sdk1.4.2_07/jre/lib/rt.jar
  export JAVA_HOME PATH CLASSPATH

eclipse安装
1.把mypackage.iso挂载到Linux操作系统上
   选择 虚拟机--->设置--->CD-ROM-->选择镜像文件
   mount /mnt/cdrom/  (umount /mnt/cdrom/   卸载文件)
2.把安装文件拷贝到 /home
    cp 文件 /home
3.cd /home[切换目录到/home]
 解压缩: tar -zxvf ???.tar.gz
4.启动eclipse[进入图形界面]启动一个终端

myeclipse安装
1.把mypackage.iso挂载到Linux操作系统上
   选择 虚拟机--->设置--->CD-ROM-->选择镜像文件
   mount /mnt/cdrom/  (umount /mnt/cdrom/卸载文件)
2.把安装文件拷贝到 /home
    cp 文件 /home
3.cd /home[切换目录到/home]

tomcat 安装
1.把mypackage.iso挂载到Linux操作系统上
   选择 虚拟机--->设置--->CD-ROM-->选择镜像文件
   mount /mnt/cdrom/  (umount /mnt/cdrom/卸载文件)
2.把安装文件拷贝到 /home
    cp 文件 /home
3.cd /home[切换目录到/home]
4.安装

怎么把文件做镜像文件
安装winIso 新建--->拖拽

硬盘分为两种scsi(sdx)和ide(hdx)

linux分区
分为基本分区和扩展分区
主分区+扩展分区<=4
扩展分区不能直接使用,需要划分为逻辑分区
查看Linux分区具体情况 fdisk -l
查看某个目录是在哪个分区 df [目录全路径]
查看磁盘使用情况  df [参数] df -l (df -h)

umount /boot/   卸载boot 此时boot目录将不再有任何东西
mount /dev/sda1   /test/将磁盘下的东西挂载到test目录下

linux的安装有两种方式
1.独立安装
2.虚拟机安装
    a.安装虚拟机
    b.安装linux
linux 安装时分区是关键
    /boot 分区 100M
    swap 交换分区 一般是物理内存的2倍但是不要大于256m
        /    跟分区   尽可能的大

windows 下的批处理文件.bat 将快捷方式--->C:\Documents and Settings\Administrator\「开始」菜单\程序

在linux中安装samba服务器后windows用户可以轻松访问linux下的东西

shell(如果发现进入log 后按q)
查看本机中装了哪些shell脚本   ls -l /bin/*sh
查看目前使用的是那种shell       env[该命令可以显示当前操作系统的环境变量]
shell修改    chsh  -s   输入新的shell  如:/bin/csh

命令补全功能    按两次tab键

希望知道或是使用最近执行的命令  history(记录800条)
history 5:此项说明会显示最近使用过的5个命令
!5:此项说明执行历史编号为5的命令
!ls:此项说明执行最后一次已"ls"开头的命令

linux/unix的世界就是网络世界TCP/IP
TCP/IP详解(ping www.baidu.com 查看公网的ip,平且是否畅通    tracert www.baidu.com 查看访问百度中间经历了多少路由(linux traceroute))
在windows下查看ip 情况 ipconfig    在linux/unix下查看ifconfig

查看自己的网卡:ping 127.0.0.1

子网:子网之间是通过路由器连接的  192.168.1.xxx

linux环境下的网络环境的配置
1.用root身份登录setup (空格自动分配,tab键手动分配)然后运行/etc/rc.d/init.d/network restart
2 ifconfig eth0 x.x.x.x对网卡进行设置
  ifconfig eth0  network x.x.x.x对子网掩码设置
  对广播地址和DNS采用默认的
3 修改/etc/sysconfig/network-scripts/ifcfg-eth0 各个属性然后运行/etc/rc.d/init.d/network restart(可以看出在liunx中每个设备都是一个文件)

rpm包的名称格式:
apache-1.3.23-11.i386.rpm
"apache"软件名称
"1.3.23-11"软件的版本号,主板本和此版本
"i386"软件所运行的硬件平台
"rpm"文件扩展名,代表rpm包

rpm常用命令
rpm -qa:查询所安装的所有的rpm软件包
    rpm -qa | more
    rpm -qa | grep x
    rpm -q mysql
rpm -q软件包名:查询软件包是否安装
    rpm -q xinetd
    rpm -q foo
    rpm -q xinetd file bash
rpm -qi软件包名:查询软件包信息
    rpm -qi file
rpm -ql软件包名:查询软件包的文件
    rpm -ql file
    rpm ql jdk
rpm -qf文件全路径名 查询文件所属的软件包
    rpm -qf /etc/passwd
    rpm -qf /root/install.log
rpm -qp包文件名 查询包的信息对这个软件包的介绍
    rpm -qp jdk-1_5_0-linux-i586.rpm

安装rpm包
rpm -i rpm包全路径名称:安装包到当前系统
rpm -ivh rpm包全路径名称:安装包到当前系统
    i=install
    v=verbose提示
    h=hash进度条

升级rpm包
    rpm -U rpm包全路径名
    

samba(在linux中安装samba可以实现Windows和Linux文件共享)
a:看看是不是已经安装了samba
    rpm -q samba
b:如果有就卸载
    rpm -e samba
    rpm -e --nodeps samba(删除依赖关系)
c:把自己的安装文件挂载到linux下
        mount /mnt/cdrom
d:复制rpm文件到/home目录
        cp /mnt/cdrom sam*  /home
e:开始安装 rpm -ivh rpm包全路径名称

使用:创建一个用户useradd xiaoming
      将/etc/passwd用户放到samba用户组中 cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
      给samba用户设置密码
    smbpasswd xiaoming
      启动samba服务器
    service smb start
    service smb stop
    service smb restart    

(windows 下查看网络信息netstat -an)

任务调度的使用
1.设置任务
    crontab -e
  1>每隔一定时间去执行 date > /home/mydate 每天凌晨让系统两点半去执行date >> /home/mydate2    
      30(分钟) 2(小时) *(天) *(月) *(星期) date >> /home/mydate2
  2>希望每一分钟去执行
      * * * * * date >> /home/mydate2
2.怎样去调度多个任务
  1>在crontab -e 中直接写
      * * * * * date >> /home/mydate2
      * * * * 2 cp /home/mydate2  /root
  2>可以把所有的任务写入到一个可执行文件中(即shell编程)然后把sh文件放到crontab中
    vi mytask.sh
    date >> /home/mydate3
     cp /home/mydate3 /home/xiaohong
    修改mytask.sh的权限chmod 744 mytask.sh
    crontab -e
        * * * * * /root/mytaks.sh
    you have new mail in /var/spool/mail/root
3如何终止任务
    crontab -r 终止任务
    crontab -l 列出当前有那些调读任务

4需要将crond设置为系统启动后自动启动的服务,可以在/etc/rc.d/rc.local 中,在末尾加上 service crond start
如果还需要在系统启动十加载其他服务,可以继续加上其他服务的启动命令。 比如: service mysqld start

    

linux进程(1好进程是所有进程的老祖宗)
1每一个进程都有进程号
2每一个进程都有父进程,一个父进程可以复制多个子进程
3进程以两种方式从在前台和后台
4系统的服务都是以后台进程的方式从在

显示进程
ps -a:显示当前终端所有进程的信息
ps -u:以用户的格式显示进程的信息
ps -x:显示后台进程运行的参数
一般用 ps -aux

停止进程
kill 进程号(kill -9 进程号)

动态显示进程(退出按q)
1.监视特定用户
    top:输入此命令,按回车键,查看执行的进程
    u:回车,输入用户名
2.终止指定的进程
    top:输入此命令,按回车键,查看执行的进程
    k:进程号
3.指定进程更新的时间
    top  -d 10:指定系统更新进程的时间为10秒

负载均衡:三个数加起来处理3>0.6 则说明负载很重需要注意
zombie:僵尸进程数(进程虽然终止,但是没有通知父进程,仍然占用cpu资源)

设置系统时间 date 032412232011.43(月月日日时时分分年年.秒秒)

查看月历  cal 4 2002(cal 2010)

netstat:显示网络统计信息的命令(netstat -an安一定的顺序排序)(netstat -anp | more   显示进程号)
ping:检测主机连接命令

traceroute www.baidu.com  :显示数据包经过历程的命令
route:查看本机路由情况    

mysql数据库的安装
1>把安装文件拷贝到 /home下
2>解压缩 tar -zxvf 文件名.tar.gz
3>
    groupadd mysql    (创建一个mysql组)
    useradd -g mysql mysql    (创建mysql用户并把他放到mysql组中)
    scripts/mysql_install_db --user=mysql    (初始化数据库添加了mysql 的用户)(进入mysql主目录)
    chown -R root .        (修改 文件的 所有者     .当前文件及文件夹下的用户改为root)
    chown -R mysql data    (修改data文件夹的所有者)
    chgrp -R mysql .    (改变用户组)
    启动mysql    bin/mysqld_safe --user=mysql &
如何进入mysql
    cd bin
    ./mysql -u root -p
    (退出来就是quit)

配置环境变量(env)后可以在任一目录登录到mysql

在每一个用户下都有一个.bash_profile文件,该文件下存放每个用户的用户变量

cd /usr/lib可以在这里添加所需的包

抱歉!评论已关闭.