Linux常用命令总结
Linux发展史,安装方法,各种发行版本,以及内核版本在这里就不赘述了,主要针对常用命令总结。
Windows连接Linux的方式
- putty是一个比较灵活的小工具,它可以连接到远程Linux的字符界面进行操作。
- xshell一款免费的Linux远程连接工具,操作简便,人性化。
- SecureCRT可以用来连接字符界面,也可以用来上传。
- winscp用来上传文件或软件,快捷方便。
- FTP上传比较方安全,可以在Linux系统内控制权限。
- Samba,使用此工具共享目录,Linux可以直接访问Windows的共享文件夹。
JDK安装
安装最新的JDK,直接在oracle官网下载就可以了。
下载jdk
例如:
下载包名: jdk-7-linux-i586.rpm
安装:rpm –ivh jdk-7-linux-i586.rpm
默认安装路径:/usr/java
jdk配置环境变量
$ vi /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
测试是否安装成功:
[root@localhost]# java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)
修改主机名
查看主机名:
$ hostname 或者 echo $HOSTNAME
执行hostname命令,格式hostname+主机名
$ hostname czl
修改/etc/hosts文件
vi /etc/hosts
127.0.0.1 czl localhost
修改/etc/sysconfig/network文件
vi /etc/sysconfig/network
HOSTNAME=czl
重启电脑:
reboot
帮助命令
whatis:概述命令的作用
$ whatis echo
man 或 –help 详述命令的作用,包括这种 参数的作用
$ man ps 或者 ps –help
man –k files 查看文件的作用
$ man –k /etc/hosts
info:查看命令的作用
$ info grep
几个小命令
查看之前输入的命令
$ history
查看用户ID情况
$ id root
清屏命令
$ clear 或者 reset
显示当前目录的绝对路径
$ pwd
切换用户命令
$ su -root //切换到root用户
$ su -l czl //切换用户,相当于重新登录
$ su root //切换用户,但不切换环境
用户命令
查看当前登录用户
$ who
显示已经登录用户的详细信息
$ w
查看当前登录的用户是谁
$ whoami
查看用户信息
$ finger --使用此命令首先需要安装finger
修改密码
修改用户登录口令
# passwd czl --在root权限下修改密码
修改工作组的口令
`# gpasswd root·
查看或设置环境变量
env:查看所有环境变量
echo 查看单个环境变量
echo $HOME
export 设置环境变量:
export HISTSIZE=1000
在文件中设置环境变量
用root用户在/etc/profile中设置全局环境变量,如加入如下行:
export CATALINA_HOME=/usr/local
针对各用户也可在/home/username/.bash_profile
设针对用户的环境变量,如在/home/oracle/.bash_profile
中加入如下行:
export ORACLE_BASE=/u01/app/oracle
使文件中的环境变量生效命令:source file
source /etc/profile
ls命令–列出目录内容
- ls -1 每列仅显示一个文件或目录名称。
- ls -a 或–all下所有文件和目录。
- ls -r 以相反顺序显示文件或目录(英文)。
- ls -s 或–size显示文件和目录的大小,以区块为单位。
- ls -sh 人性化显示目录文件的大小
- ls -d 显示指定目录的信息
- ls -R 递归显示目录中的内容
- ls –d a* 查看当前文件夹内所有以a开头的文件或目录
- ls /etc |grep d$ 显示/etc下所有以d结尾的文件或目录
- ls –X /etc将显示结果按扩展名来排列
- ls -S /etc将显示结果按大小来
排列
wc命令
- wc file 输出文件的行数 、字节数和单词数
- wc -l file 输出文件的行数
- wc -c file 输出文件的字节数
- wc -w file 输出文件的单词数
- wc –L file 输出文件最长行的长度
- ls|wc –l统计当前目录下有多少普通文件和目录
- ps|wc –l统计当前有多少个进程
cd命令–切换目录
- cd /etc 切换到/etc目录下
- cd /切换到根目录下
- cd .. 切换到上级目录
- cd . 切换到当前目录
- cd ~ 切换到用户宿主目录下
- cd 同上
- cd - 切换到上次切换的目录下
cp命令–拷贝文件或目录的命令
- cp –ru ./* /bak/20160710 把当前目录下的所有文件和目录拷贝到备份文件夹下(recursive,update)
- cp –r a/ b/ 把a目录下文件拷贝到b目录下覆盖有提示
- cp –fr a/ b/覆盖无提示
- cp –l file1 file2 以file2为名建立一个file1的硬链接
- cp –s files file2 建立软链接
- cp –br a/ b/覆盖前备份
mkdir and rmdir
mkdir 创建目录命令,如在根目录下创建/a/b目录
$ mkdir -p /a/b
$ rmdir --用于删除空目录
$ rmdir abc* --删除以abc开头的空目录
$ rmdir –pv /a/b/c --删除子目录时,如果父目录为空也删除
文件处理命令
mv 移动文件或目录命令
rm 删除文件或目录,例如,强制删除/opt下的test目录
$ rm -fR test
touch
创建文件命令
head and tail
查看文件前100行
$ head -100 *.conf
查看文件后100行
$ tail -100 *.conf
动态地查看文件的后100行
$ tail -100f *.conf
find命令
$ find -name "*.d" //在当前目录下查找以 .d结尾的文件。
$ find -name \*.d //意义同上,如果不用引号特殊字符要用\转译
$ find /etc /home -name "*.d" //在/etc和/home两个目录内搜索以 .d结尾的文件。
$ find /etc /home -name "*.d" 2>/dev/null //因为权限不够可能会输出错误信息,用 2>/dev/null可以把错误信息过滤掉
$ find / -iname "*.jpg" 2>/dev/null //-iname 表示被收索的名字忽略大小写。
$ find /etc -user oracle -name "ora*" //查看/etc目录下,oracle用户的,以ora开发的文件
$ find /etc -group oinstall -name "ora*" //查看/etc目录下,oinstall组的,以ora开发的文件
$ find /etc -atime 2 //查找/etc下两天前访问过的文件
$ find /etc -mtime 1 //查找/etc下一天前修改过的文件
$ find /etc -ctime 1 //查找/etc下一天前创建的文件
$ find / -empty //查找空文件或目录
grep命令–Linux下的行过滤工具
$ cat|grep entry -B 10 termcap //输出termcap文件中匹配字符串entry 前的10行
$ more|grep entry -A 10 termcap //输出termcap文件中匹配字符串entry 后的10行
$ cat|grep entries -n termcap //输出termcap文件的同时打出行号
# cat|grep a -v termcap //反向查找,搜索出termcap文件中不包含字符串a的内容
$ ls |grep ^g //查找以g开头的行
$ ls -a|grep b$ //查找以b结尾的行
搜索命令
$ whereis ftp ----查看ftp文件位置
$ type ls ----查看命令属性
$ which echo ----在环境变量$PATH指定的路径中查找文件,可指定多个文件
$ tail 10f filename |grep 'hello' ----动态查找file中含有hello的字符内容
$ locate inittab ----快速查询inittab文件
vi命令参数
- vi –R 以只读方式打开
- vi + 启动后跳到结尾处
- vi +5 启动后跳到文本的第五行
- vi –version 查看版本号
- vi –h 帮助信息
vi光标移动
- ctrl+f 向前滚动一屏
- ctrl+b 向后滚动一屏
- ctrl+d 向前滚动1/2屏
- ctrl+u 向后滚动1/2屏
- G 到最后一行([count]G 到第count行)
vi搜索
- /{string} 向前搜索字符串
- ?{string} 向后搜索字符串
- / 向前搜索上次搜索过的字符串
- ? 向后搜索上次搜索过的字符串
- n 向前重复上次搜索
- N 向后重复向后搜索
vi编辑
- i 在当前位置之前插入
- I 在当前位置行首插入
- u 撤销最后一次操作
- U 撤销本行操作
- a 在当前位置之后插入
- A 在当前位置行尾插入
- o 在当前行下一行插入空行
- O 在当前行上一行插入空行
- r 修改单个字符
- cw 修改整个单词
- cc 修改整行(把当前行删除后进行插入)
- R 进行替换模式
- [count]dd删除一行或count行
- dw 删除单词
- {count}yy 复制一行或者count行
- {count}yw 复制一个单词或者count个单词
- p 粘贴(put)到光标之后
- P 粘贴(put)到光标之前
- ZZ 保存并退出
- :wq 保存并退出
- :w! 强行保存
- :q! 放弃修改退出
vi设置
- :set nu设置行号
- :set nonu去除行号
- :set ic搜索忽略大小写
- :!{command} 执行shell命令
常用关机命令
- shutdown now 马上关机
- shutdown -h 10 10分钟后自动关机
- halt 关机后关掉电源
- poweroff 马上关机
- reboot 重启系统
- shutdown -r now 马上重启
- shutdown -r 10 过10分钟后重启
- shutdown -r 19:45 19:45分重启
- init 0 关机
- init 1 重启
tar命令
tar -xvf a.tar 解压a.tar包。其中-x为解压参数;-v显示解压过程;-f: 使用档案名字,这个参数是必须的,而且必须放在最后。
tar -zxvf a.tar.gz 解压a.tar.gz包。-z参数为解压tar.gz包专用的参数,以下同
tar -zcvf a.tar.gz *.jpg 把本文件下的所有以.jpg结尾的文件打成a.tar.gz包。其中-c为 打包命令
tar -rf a.tar c 把c文件追加到a.tar包中。-r为表示追加的参数
- tar -cjf a.tar.bz2 *.jpg 把*.jpg打包成a.tar.bz2。-j 表示tar.bz2包
gzip命令
- gzip用来处理后缀为gz的文件
- gizp filename 将文件压缩,产生filename.gz文件,源文件被删除。
- gzip -r dir/将dir下面的所有文件压缩,加上后缀gz.每个文件单独压缩。
- gzip -t filename.gz 检测压缩文件的完整性
- gzip -d filename.gz 解压,把原包删除
- gzip -1(-9) filename 将filename用最快(最好)的方法压缩
bzip2命令
- bzip2用来处理以.bz2结尾的文件
- bzip2 filename 打包成filename.bz2文件,原文件删除
- bzip2 -k filename 打包文件,保留源文件
- bzip2 -t filename.bz2 检测压缩文件filename.bz2的完整性
- bzip2 -d filename.bz2解压,删除源文件(-k保留)
- bzip2 -1(-9) filename 用最快(最好)方式压缩
unzip命令
$ unzip
解压以.zip结尾的压缩包。
du命令
- du -sh 指定目录或文件的大小,如果后面没有文件或目录,则表示当前目录的大小。
- du -m 表示以m为单位显示文件夹下所有文件的大小
- du -k 以k为单位,意义同上
df命令
- df -a 显示所有文件系统的磁盘使用情况
- df -k 以字节为单位显示
- df -m 以兆为单位显示
- df -h 以易读的方式显示
- df -T 列出文件类型
ps工具–查看进程的工具
- ps a 显示现行终端机下的所有程序,包括其他用户的程序
- ps c 类似ps a,不包括路径
- ps -e 显示所有程序
- ps -au 显示更详细的资讯
- ps -aux 显示所有包含其他使用者的行程
- ps aux |grep usr 查看和usr相关的进程
kill命令
- kill命令用于终止一个进程,这个命令通常与ps,top配合使用,先用ps查看进程情况,后kill掉无用进程。
- kill 8963 杀掉pid号为8963的进程
- kill -9 9332 强行杀掉9332进程
- killall <进程名> 命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
crontab
- crontab -e 编辑该用户的crontab
- crontab -l 列出该用户的crontab。
- crontab -r 删除该用户的crontab。
- crontab -u <用户名称> 指定要设定crontab的用户名称。
例如:
9 22 * * * rm -f /opt/a ----表示每天9点22分删除/opt下的a文件
查看日历
$ cal //查看当月日历
$ cal 8 2016 //查看2016年8月日历
$ cal -3 //本月,上月和下月的日历
$ cal -y 100 //公元后100年的日历
$ cal -m //把周一当作一周的第一天
$ cal -j //显示指定月的每一天是一年中的第几天
查看硬盘信息
$ fdisk -l
$ fdisk /dev/sda1 -l ----查看sda1分区情况
查看CPU和内存信息
$ cat /proc/cpuinfo ----查看CPU状况
$ cat /proc/meminfo ----查看内存信息(也可使用free -m / top查看)
基本网络配置命令
$ ifconfig eth0 //显示指定接口eth0的详细信息
$ ifconfig -a //显示所有网络接口的详细信息
$ route //查看网关
$ route |grep default //显示主机的默认网关
$ traceroute ip //测试与其他主机的网络连接路径
$ netstat -rn
rpm包
根据不同的系统,已编译好的二进制安装文件。采用rpm的系统有redhat,redflag,suse,centos等
rpm包的格式:rpm包名-主版本号-子版本号-软件支撑的平台.rpm 如:krb5-devel-1.6.2-14.fc8.i386.rpm
- rpm包的安装命令:rpm -ivh xxx.rpm
- rpm包的卸载命令:rpm -e xxx xxx指包名,如:krb5
- rpm升级命令:rpm -Uvh xxx.rpm
- rpm -ivh –nodeps xxx.rpm表示强制安装,不考虑软件之间的依赖关系
- rpm -ivh –force xxx.rpm覆盖安装,若已经安装了该软件表,覆盖之,重新安装。
- rpm -ivh –replacefiles xxx.rpm忽略冲突错误
- rpm -Uvh –oldpackage –force xxx.rpm升级到旧版本的软件包
- rpm -ivh http://gdlc.cublog.cn/xxx.rpm网络安装
- rpm -qa xxx.rpm 查看rpm包是否安装的命令
- rpm -ql libtalloc查看libtalloc-2.0.1-7.el5.i386.rpm包安装到那个目录
- rpm -qf /etc/inittab 查看包含inittab文件的软件包
rpm包的验证
验证软件表是通过比较从软件包安装的文件和软件包中的原始文件信息来进行的,除了其他一些东西,验证注意是比较文件的尺寸,MD5校验码,文件权限,属组和用户的
- rpm -V initscripts 验证initscripts包是否被改动过
- rpm -Va 输出所有软件包被改动的文件
- rpm -Vf libtalloc-2.0.1-7.el5.i386.rpm 根据rpm包查看rpm库是否被损坏
源码包的安装
- 解压:
$ tar –xvf xxx.tar
$ tar -zxvf xxx.tar.gz
$ tar -jzvf xxx.tar.gz2
- 编译安装:
$ ./configure prefix=/usr/local
$ make(编译)
$ make install(安装)