linux常用命令总结
常用命令
系统命令
登陆与登出
telnet 主机IP——telnet 192.168.0.23
login: 用户名
passwd:密码
退出系统
exit:不同shell相互交换退出
ctrl+D:结束终端输入
ctrl+c:工作一半输出还要继续工作
修改密码
passwd(6-8个字符)
old passwd: 原密码
new passwd:新密码
confirm passwd:确认密码
目录命令
改变当前工作目录
cd:改变当前工作目录。后面可以是绝对路径也可以是相对路径
cd ~ :回到用户主目录
cd 目录名:改变当前目录到指定的目录
cd .. :改变当前目录到上一极目录
cd . :回到当前目录
显示当前工作目录
pwd:显示当前工作目录
列出指定目录下的文件和子目录
ls:列出指定目录下的文件和子目录
ls –a 列出目录下的所有子目录,文件,隐藏文件(以.开头的文件)
ls –R 从当前目录开始列出所有的子目录结构,文件;并一层一层地往下显示
ls –t 以修改时间为序来列出文件、子目录、
ls –l 以长列表的形式列出文件,子目录信息 也就是他们的属性
ls –F 列出文件,子目录及文件类型(*—可执行文件,@—软链接文件,/:目录,无:普通文件)
权限控制
文件:r—打开文件来查看内容,如cat,more命令就需要读权限
w—可以更改文件内容,如cp,vi命令要求有写权限
x—可以执行这个文件(必须是可执行文件*.sh)
目录:r—查看目录的内容,文件和子目录。如ls要求有读权限
w—可以在该目录中创建,删除,移动子目录或文件。如touch,rm,rmdir,cp,mkdir要求有写权限
x—你是否能进入这个目录cd
修改权限:
chmod u/g/o +/- r/w/x 文件或目录名
chmod nnn[为数字] 文件/目录名
chmod u+r,g-w,o=x file1, chmod 655 file
普通文件常用权限:644;目录常用的权限是:755
创建目录
创建目录:mkdir
mkdir dir1 dir2 dir3 在当前目录中创建3个目录他们为同级目录
mkdir dir9/dir4 在当前目录中dir9目录创建一个目录dir4,但是dir9目录必须存在
mkdir ~/dir5 在用户主目录下创建dir5
mkdir –p dir6/dir7/dir8 在当前目录中创建一个目录结构
dir6存在不存在都可以
文件命令
创建文件
创建文件:touch
touch 文件名
文件存在,则更新该文件的最后一次修改时间
文件不存在,则创建一个新的空文件
拷贝文件/目录
拷贝文件/目录:c
cp sourcefile objectfile 拷贝源文件为目标文件
目标文件不存在则新建目标文件。把原文件的内容放到新建文件中
目标文件存在则用原文件的内容覆盖目标文件的内容
cp –i sourcefile objectfile 拷贝文件,但若目标已存在,则询问是否覆盖
如果是y则目标文件中放的是源文件的内容
如果是n则目标文件中的内容还是原来的内容
cp –r sourcedir objectdir 拷贝源目录到目标目录
目标目录是否存在则它的拷贝内容是不一样的?
目标目录存在:源目录为目标目录的子目录
cp –r wfx1 wfx2
wfx2存在目录结构为:wfx2
wfx1
目标目录不存在:目标目录和源目录同级
wfx2不存在则为wfx1 wfx2
移动文件/目录
移动文件/目录:mv 源文件,源目录都不存在
mv sourcefile objectfile 源文件内容覆盖目标文件,
目标文件不存在,则源文件改名为目标文件(mv –i 则覆盖时询问)
mv sourcedir objectdir 目标目录存在则源目录移动到目标目录中成为子目录。
目标目录不存在,则把源目录的名字改为目标目录的名字
删除文件/目录
删除文件/目录:rm rmdir rm –r
rm file:删除文件,rm –i file询问是否删除文件
rm file1 file2 file3 删除多个文件
rmdir dir:删除目录,但dir必须是空目录
rm –r dir1:删除非空目录,会删除目录中所有的内容。这里会询问我们要不要删除
rm –rf dir3:删除非空目录,会删除目录中所有的内容,不询问我们到底要不要删除。
创建链接文件
创建链接文件:ln
ln –s 被指向的源文件建立的链接文件:建立软链接
首先我们修改任何一个文件内容,另一个文件的内容也相应修改
删除源文件以后。链接文件就不可以在操作。我们把安装文件给删除了。快捷方式就没有用了
删除链接文件不会影响到源文件。源文件还可以操作
ln 被指向的源文件建立的链接文件:建立硬链接
首先我们要是修改任何一个文件中的内容,另一个文件也会相应的修改。删除源文件不会影响链接文件,删除链接文件不会影响源文件
软链接:abc(l:表示是软链接文件)→abc.txt(普通文件),abc文件中有abc.txt的inode号,abc指向abc.txt,就向windows中的快捷方式一样,2个是不同的文件
硬链接:abc与abc.txt都指向同一个inode的文件块,是同一个文件
帮助命令
帮助命令:man 命令名;man
空格:向后翻屏,b:向前翻屏,回车:向后滚动一行,/字符串:查找字符串
特殊字符
*:通配0或多个字符ls d*
?:通配一个字符ls d?.txt
[]:通配一个范围中的任何一个字符ls [b-f]b*
;:命令的结束符,一次可执行多条命令cd;pwd
>:输出重定向,将命令的执行结果重新输出到非标准输出,如文件。cal 2 2002 > file1
<:输入重定向,不从我们键盘的标准输入,cat <file1 >file2
>>:以追加方式将命令的执行结果输出到非标准设备cal 7 2002>>calfile
|:将前一个命令的的执行结果作为后一个命令的输入cat /etc/passwd | more
查找
文件查找
文件查找:find
find path –name filename :按文件名查找
find path – user0 username :按文件的拥有者查找user0为root用户user1为soft用户
find path –atime +10/-10 :按文件的访问时间来查找(+表示超过 –表示不足)
find path –mtime +/-days :按文件的访问时间来查找
find path –type f/d :按文件的类型来查找f:查找文件;d:查找目录
find path –perm 644/755 : 按文件的权限查找
用户查找
who:查看当前在线用户的详细信息
用户名终端号登陆时间登陆机器的本地IP
who am I 总是自己,即登陆时的自己
用户名终端号登陆时间登陆机器的本地IP
whoami 只查看用户名
w:查看当前在线用户的更详细的信息
USER(用户名) TTY(终端号)FROM(本地IP)LOGIN(登陆time) IDLE JCPU) PCPU( 累计使用cpu时间) WHAT(执行命令)
过滤文件和目录
grep 在命令结果或文件中进行过滤
grep root /etc/passwd 在这个文件中找出有root的行
ls –al | grep -i ‘sep 1’ 这里是忽略大小写
xargs:它是分隔开的意思,ls f* | rm 这样的写法是错误的。我们找到这些文件要一个一个删除。因此ls f* | xargs rm 才是正确的
grep –i 忽略大小写grep –v 反向过滤去掉有grep这个单词的那一行
统计文件或执行结果
wc: 字符数,行数,单词数
wc –c 统计字符数ls –l | grep init | wc -c
wc –w 统计单词数
wc –l 统计行数
进程
启动或创建进程
ps :列出当前终端启动的进程
ps –ef :列出当前系统中运行的进程,详细列表列出
uid(用户Id) pid(进程Id) ppid(父进程Id) c(标志位) stime(进程启动时间)tty(终端号)time(累计使用cpu的时间)cmd(进程执行的命令)
ps –ef | grep 用户名
终止或结束进程
Kill 进程号;ctrl+c 杀掉终止进程
Kill -9 进程号可以杀掉终止某些高级的进程
killall java
Sleep:创建休眠进程
Sleep 1000 &
[1](作业号)pid(进程号) sleep(休眠命令)
fg%n(作业号):将进程放到前台
bg%n :将进程放到后台
stop%n 暂停进程;ctrl+z 把这个进程给挂起
kill%n : 终止进程
网络命令
ftp:文件传输
ftp 192.168.0.250
lirui
123456
cd:改变远程服务器的当前目录
lcd:改变本地的当前目录
dir:查看远程机器的当前目录内容
get:从服务器上下载一个文件(mget 多个文件名)
put:从本地机器上传一个文件到服务器(mput)
hash:开关变量(on/off)设置传输大文件过程中,每传输2k字节显示一个#
prompt:开关变量,设置在传输多个文件时,是否给提示on /off
ls:查看远程当前目录内容
文件的查看
cat 不分屏查看文件内容;可以将多个文件连接成一个大文件
cat filename
cat file1 file2 > file3
cat /dev/null > ~/b.txt : b.txt存在,将这个文件清空; b.txt不存在,则创建一个空文件
more:分屏显示 more filename ls –al |more
空格:翻滚到下一屏,b:上一屏,f:下一屏,回车:下一行,/字符串
★tail -n(n是行数) 从尾行往上看
★head –n 从首行看
★默认为10行
文件编辑
文件编辑:vi
vi的三种模式:命令模式,输入模式,最后行模式
输入模式:i:在光标当前位置开始编辑
a:在当前位置之后编辑
o:在当前光标位置的下一行编辑 复制当前行 yy 粘贴 p 剪切 dd 其他操作 撤销 u 恢复 ctrl + r
光标移动:h:向左移动,l:向右移动,j:下移一行,k:上移一行
$:到行尾,^:到行首,G:到最后一行,nG,1G
文本操作:x:删除光标所在位置的一个字符
dw删除从标位置开始的一个单词
dd:删除光标所在的一行 5dd:就是删除5行 :5,10d把5到行给删除
r:替换光标所在的字符
cw:替换光标开始的一个单词
cc:替换光标所在行
C:替换从光标到行尾
yw:拷贝光标开始的一个词
yy:拷贝光标所在的一行
p:在当前光标所在的行的下方粘贴、
:1,2co3把1.2行拷贝一份防到3行后面
:4,5m6把4,5行移动到6行之后
文件操作:q!:强制退出,wq!:保存文件并退出ZZ
:set nu 显示行号 :set nonu 把行号给去掉 快速到达文件的最后一行 G 快速到达文件的第一行 gg 快速到达文件的某一行 10gg
系统初始化文件与环境变量
bsh:系统初始化文件/etc/.profile 用户初始化文件$HOME/.profile
csh:系统初始化文件/etc/.login 用户初始化文件:$HOME/.cshrc .login .logout
环境变量
bash/bsh: set 变量名=‘value’; export 变量名
csh:setenv 变量名value set 变量名=‘value’
echo $变量名
path:告诉系统在执行命令时,在哪个路径下找该命令的可执行文件。
set path=(… … …) set path=($path newpath)
which 命令名:显示当前执行的命令所在的路径
whereis 命令名:显示命令所在的各个路径
JAVA_HOME:java(jdk)的安装目录
CLASSPATH:Java 的类路
ORACLE_SID:访问oracle的id
MANPATH:帮助手册
shell脚本
Shell脚本的编写:
1.vi 文件名.sh
#!/bin/sh 说明命令的/bin/sh去执行下面的命令
pwd
cal
date
2.增加执行权限
Shell 脚本默认是没有执行权限的,所以使用chmod u+x 名字.sh
3.运行shell 脚本
./名字.sh 运行
系统调度计划
在特定时间调度系统中的某个程序执行,常常用于系统维护工作
crontab –l 查看当前系统中的调度计划
crontab –e 编辑当前系统中的调度计划
crontab -r 删除当前系统中的调度计划
一般计划程序都是用shell脚本编写的,编写内容如下:
15 16 12 * 3 a.sh
15:分钟0-59;16:小时0-23;12:日期1-28/29/30/31 *:月份1-12 3:星期1-7
a.sh在当前目录下编好的shell脚本
这个调度计划表示在每个月12号,并且那天是星期三的16:15分启动a.sh执行
其他命令
回显命令:echo
echo $WTO:显示变量值;echo “$WTO”:“”表示显示变量值;
echo ‘$WTO’ ‘’单引号括起的内容被作为字符串,显示$WTO
echo \$WTO \$转义符,这样$就代表本身这个符号结果为$WTO而不是WTO里的值
历史记录命令:History
set history=30 :设置系统自动保留前面的30条命令,设置系统自动保留的历史记录数
history :显示最近使用的命令,显示的命令个数由set history来决定
history n :显示最近使用的n个命令
!n 调用第n 条命令;!! 调用上一次执行的命令执行
替换命令:alias
alias 代替名被替代的命令
alias h history : h替代history命令; alias c clear c替代clear命令
alias home ‘cd;ls’ home 替代cd;ls命令组alias 列出已经建立了的替代的命令列表
unalias copy 取消建立的copy替代的命令
磁盘
df -h
查看端口
netstat -ntlp
lsof -i:80
ps -ef |grep tomcat