linux常用命令整理
一、ls命令
就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等
常用参数搭配:
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来(可以直接写成 ll)
实例:
ll name* #列出当前目录中所有以“name”开头的目录的详细内容
二、cd命令
cd /root/Docements # 切换到目录/root/Docements
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
三、rm命令
-f : #就是force的意思,忽略不存在的文件,不会出现警告消息
-i : #互动模式,在删除前会询问用户是否操作
-r : #递归删除,最常用于目录删除,它是一个非常危险的参数 #举例
rm -i file # 删除文件file,在删除之前会询问是否进行该操作
rm -fr dir # 强制删除目录dir中的所有文件
四、cp命令
- -a :将文件的特性一起复制
- -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
- -r :递归持续复制,用于目录的复制行为
cp /home/Test.java #将home路径下的Test.java文件复制到当前目录下
cp -r dir1 dir2 #-r表示递归,将dir1代表的文件夹及里面的文件复制到dir2路径那里
cp -r mysql /usr/local/mysql #把mysql文件夹所有文件复制到/usr/local/mysql目录下,没有会自动创建目录
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中
五、mv命令
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
- -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件已经存在,就会询问是否覆盖
- -u :若目标文件已经存在,且比目标文件新,才会更新
mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
mv file1 file2 # 把文件file1重命名为file2
六、mkdir命令
-m --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p --parents 递归创建目录
-v, --verbose 每次创建新目录都显示信息
mkdir abc #创建一个空目录
mkdir -p test/test1 #递归创建多个目录
mkdir -v hao #创建新目录都显示信息
mkdir -m 777 pc #创建权限为777的目录
7、pwd命令
pwd #查看当前路径
pwd -P #查看软链接的实际路径
8、find命令
-name 按照文件名查找文件 -perm 按文件权限查找文件 -user 按文件属主查找文件 -group 按照文件所属的组来查找文件。 -amin n 查找系统中最后N分钟访问的文件 -atime n 查找系统中最后n*24小时访问的文件 -mmin n 查找系统中最后N分钟被改变文件数据的文件 -mtime n 查找系统中最后n*24小时被改变文件数据的文件
find ./ -name '*.log' # 在当前目录查找 以.log结尾的文件。 ". "代表当前目录 find /opt -perm 777 #查找/opt目录下 权限为 777的文件 -xargs #find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。 find / -name mysql|xargs rm -rf #找到所有文件名为mysql文件,并全部删除。
9、tar命令
只能使用下面的某一个选项来指定tar要执行的动作。可以通过在选项后面跟一个或多个修饰符来改变该选项的行为
-c 创建归档文件
-u 将file-list中的文件添加到归档文件
-x 从归档文件中提取file-list并把它写入磁盘
修饰符
-f filename 使用filename来指出要创建或从中提取的归档文件的文件名
-j 在创建归档文件或从归档文件中提取文件时,使用bzip2方式来进行压缩和解压缩
-z 在创建归档文件或从归档文件中提取文件时,使用gzip方式来进行压缩和解压缩
-v 显示所有过程
-t 列出归档文件中的目录
tar -cvf demo.tar a b c #将a b c打包成一个名为demo.tar的归档文件,并显示打包的文件
tar -xvf demo.tar #解压名为demo.tar的归档文件到本目录,并显示解压的文件
tar -zcvf demo.tar.gz a b c #将a b c 三文件用gzip的方式打包并压缩成demo.tar.gz
tar -zxvf demo.tar.gz #用gunzip的的方式解压demo.tar.gz文件
tar -jcvf demo.tar.bz2 a b c #将a b c三文件用bzip2的方式压缩并打包为demo.tar.bz2
tar -jxvf demo.tar.bz2 #将demo.tar.bz2用bunzip2的方式解压缩到当前目录
tar -cvf jpg.tar *.jpg #将目录里所有jpg文件打包成tar.jpg
10、ps命令
ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
命令参数:
-A 显示所有进程
a 显示所有进程
- e 显示环境变量
- f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程
ps -A #显示所有进程信息
ps -u root #显示指定用户信息
ps -ef # 显示所有进程信息,连同命令行
ps -ef |grep java #显示java 进程是否存在
#grep命令是查找,中间的|是管道命令 是指ps命令与grep同时执行
ps -aux |grep java #显示java 进程是否存在
#上面两个其实没有多大区别只是:aux可以查看进程的CPU占用率和内存占用率。ef可以查看进程的父进程ID和完整的COMMAND命令
11、top命令
top显示系统当前的进程和其他状况,是一个动态显示过程,显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
常用参数:
-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数
-d 指定每两次屏幕信息刷新之间的时间间隔。
top #每隔5秒显式所有进程的资源占用情况(默认是5秒)
top -d 2 #每隔2秒显式所有进程的资源占用情况
top -c #每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789 #每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 #每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
12、kill命令
发送指定的信号到相应进程。
常见参数
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
kill -15 pid #让进程正常退出 。 既然信号 15 是退出进程的正确方式,那它也应该是最常用的方式,因而我们可以省略参数 -15。
kill -9 pid #当进程出现了异常状况,不能通过信号15正常退出时,我们就需要通过非常的手段直接终结掉进程。所谓的非常手段就是传递信号 9 给目标进程!
kill -15 $(ps -ef | grep peidalinux) #杀死指定进程
#不是特殊情况,建议有15就可以了,慎用9哦
13、chmod命令
用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
常用参数:
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
三种基本权限
R 读 数值表示为4
W 写 数值表示为2
X 可执行 数值表示为1
如图所示,dump.rdb文件的权限为-rw-r--r--
-rw-r--r--一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为4+2=6
第五六七个字符“r--”表示当前所属组的权限。 所以用数值表示为4
第八九十个字符“r--”表示其他用户权限。 所以用数值表示为4
所以操作此文件的权限用数值表示为644
更改权限
sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名
例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765
sudo chmod u+x g+w o+r filename
上面的例子可以用数值表示
sudo chmod 765 filename
14、grep命令
强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索
grep太强大了,我这里就举几个常见的。
ps -ef|grep svn #查找指定进程
grep -n 'li' nginx.conf #在nginx.conf查找包含"li"的行,同时显示行号
grep 'linux' test.txt test2.txt #从多个文件中查找关键词
15、vim命令
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
16、cat命令
cat主要有三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
-b对非空输出行号
-n输出所有行号
cat -n nginx.conf #查看文件并显示行号
cat -n log2012.log log2013.log #把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
cat -b log2012.log log2013.log log.log #把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
17、more命令
功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
命令参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-s 把连续的多个空行显示为一行
常用操作命令:
Enter 向下n行,需要定义。默认为1行
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
ls -l | more -5 #在所列出文件目录详细信息,借助管道使每次显示5行 按空格键显示下五行,enter向下1行。具体看上面参数。
more +3 text.txt #显示文件中从第3行起的内容
18、less命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
19、tail命令
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
常用参数:
-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
tail -f ping.log #循环读取逐渐增加的文件内容
这个可以用来看正式服报错日志
20、chown命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符
-c 显示更改的部分的信息
-R 处理指定目录及子目录
chown mail:mail log2012.log #改变拥有者和群组
chown root: log2012.log #改变文件拥有者和群组
chown :mail log2012.log #改变文件群组
chown -R -v root:mail test6 #改变指定目录以及其子目录下的所有文件的拥有者和群组
参考
想的太多,做的太少,中间的落差就是烦恼,要么去做,要么别想 中尉【12】