Linux常用指令
未完待续
指令格式:指令 -选项 参数
.代表当前目录
..代表当前目录的父目录
终止命令:Ctrl+C
文件处理命令
· ls
显示目录文件
-list
命令所在路径:/bin/ls
执行权限:所有用户
语法:ls [-ald][文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示,包括权限
-d 查看目录属性
-i 节点,inode,文件的数字标识,每个文件必须有i节点,但是不是一个i节点只对应一个文件,硬链接和源文件有相同i节点
ex: $ls -ld /test 查看目录详细信息
ex: drwxr-xr-x 2 root root 4096 12-01 20:52 bin
①d:文件类型
d:目录directory
-:二进制文件
l:软连接文件link
②rwx:
r:读权限,read
w:写权限,write
x:执行,execute
第一类用户:所有者u(user,owner)
所有者可以转让
第二类用户:所属组g(group)
对组授权相当于对组内所有用户授权
第三类用户:其他人o(others)
③2-硬链接数
④root:所有者
⑤root:所属组
⑥4096:文件大小
不是准确的数值
大小通常用数据块block表示,一个数据块是512字节,存储数据的最小单位
⑦12-01 20:52:创建时间或最后修改时间
⑧bin:文件名或目录名
· cd
切换目录
-changed directory
命令所在路径:shell内置命令
执行权限:所有用户
语法:cd [目录]
ex: $cd / 切换回根目录
$cd .. 回到上一级目录
· pwd
显示当前所在的工作目录
-print working directiory
命令所在路径:/bin/pwd
执行权限:所有用户
ex: $pwd
/etc/rc5.d
· touch
创建空文件
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
ex: $touch newfile
·mkdir
创建新目录
-make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
语法:mkdir [目录名]
ex: $mkdir newdir
· cp
复制文件或目录
-copy
命令所在路径:/bin/cp
执行权限:所有用户
语法:cp -R [源文件或目录] [目的目录]
cp -R [复制目录]
ex: $cp file1 file2 dir1 将文件file1、file2复制到目录dir1
$cp -R dir1 dir2 将dir1下的所有文件及子目录复制到dir2
· mv
移动文件、更名
-move
命令所在路径:/bin/mv
执行权限:所有用户
语法:mv [源文件或目录] [目的目录]
ex: $mv file1 file3 将当前目录下文件file1更名为file3
$mv file2 dir2 将文件file2移动到目录dir2下
· rm
删除文件,rmdir,删除空目录
-remove
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm -r [文件或目录]
-r 删除目录,会层级确认文件
rm -rf file 不确认,直接删除目录
ex: $rm file3 删除文件3
$rm -r dir1 删除目录dir1
· cat
显示文件内容,不能完整显示较长文件
-concatenate and display files
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
ex: $cat /etc/issue
· more
分页显示文件内容
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
空格或f 显示下一页
Enter 显示下一行
q/Q 退出
ex: $more /etc/services
· head
查看文件的前几行
命令所在路径:/bin/head
执行权限:所有用户
语法:head -num [文件名]
-num 显示文件的前num行
ex: $head -20 /etc/services
· tail
查看文件的后几行
命令所在路径:/bin/tail
执行权限:所有用户
语法:tail -num [文件名]
-num 显示文件的后num行
-f 动态显示文件内容,比如说动态显示日志文件
ex: $tail -30 /etc/services
· ln
产生链接文件
-link
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [源文件] [目标文件]
-s 创建软连接
ex: $ln -s /etc/issue /issue.soft 创建文件/etc/issue的软连接/issue.soft
$ln /etc/issue /issue.hard 创建文件/etc/issue的硬链接/issue.hard
软链接:文件权限都是lrwxrwxrwx --> 指向源文件,时间值是创建软链接文件的时间值,类似于快捷方式,可以跨文件系统生成
硬链接:类似于拷贝=cp -p +同步更新,不过时间值不同,与源文件i节点相同,不能跨文件系统(分区),无效的跨设备连接
(拷贝时cp -p时间值不发生改变)
权限管理命令
· chmod
改变文件或目录权限
-change the premissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] [mode=421] [文件或目录]
用户分三种类型:u,g,o
r-4 读权限 可以查看文件内容 可以列出目录中的内容,可以cat,more,head,tail
w-2 写权限 可以修改文件内容 可以在目录中创建、删除文件,有写权限不代表有删除权限,可以echo,vi,删除文件必须要求目录有w权限
x-1 执行权限 可以执行文件 可以进入目录,命令,脚本可执行
目录的r权限:可以ls
目录的w权限:可以创建,删除权限,可以touch,mkdir,rm
目录的x权限:可以进入目录,cd,通常目录都有rx权限
rwxr-xr-- 754
ex: $chmod g+w file1 赋予文件file1所属组写权限
$chmod 777 dir1 设定目录dir1为所有用户具有全部权限
· chown
改变文件或目录的所有者
-change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
语法:chown [用户] [文件或目录]
ex: $chown nobody file1 改变文件file1的所有者为nobody(系统自带账号)
更改的用户必须是系统中存在的用户
添加用户:#useradd 用户名
#passwd 用户名
· chgrp
改变文件或目录的所属组
-change file group ownership
命令所在路径:/bin/chgrp
执行权限:所有用户
语法:chgrp [用户组] [文件或目录]
ex: $chgrp adm file1 改变文件file1的所属组为adm
· umask
显示、设置文件的缺省权限(touch之后即是默认权限),不建议改变
linux基本权限规则:缺省创建的文件不能授予可执行权限,基本安全机制
命令所在路径:/bin/umask
执行权限:所有用户
语法:umask [-S]
-S 以rwx形式显示新建文件或目录缺省权限,否则是数字形式
ex: $umask
0022
0-特殊权限位
022-用户权限位,权限掩码值(777-022)
更改的时候要用掩码值
$umask 027
$umask -S
u=rwx,g=rx,o=
文件搜索命令
· whereis
显示文件所在目录,帮助文档的位置
语法:which [名称]
· which
显示系统命令所在目录,绝对路径(命令也是文件),同时显示别名目录
命令所在路径:/usr/bin/which
执行权限:所有目录
语法:which [命令名称]
ex: $which ls
alias ls='ls --color=tty'(用颜色标记)
/bin/ls
· find
查找文件或目录,尽量不要在根目录下查找,速度慢,占用大量系统资源,尽量缩小查找范围
命令所在路径:/usr/bin/find
执行权限:所有用户
语法:find [搜索路径] [搜寻关键字]
-name 根据文件名进行查找
*匹配任意字符,包括0个字符(init* 以init开头的文件)
?匹配单个字符(init??? 查找init开头的7个字符的文件)
-size 根据文件大小查找,block数据块,512字节,根据数据块写文件大小,100MB=102400KB=204800block
大于:+ $find / -size +204800
小于:-
等于:$find / -size 204800
-user 根据文件所有者查找
ex: $find /home -user samlee
-type 根据文件类型查找
f 二进制文件
l 软链接文件
d 目录
-inum 根据i节点查找
根据i节点查找(假设说要删除特殊文件名,比如说a b或者-abc,删除时系统会默认指令$rm a b 系统会认为要删除a和b两个文件,虽然可以用转义字符,$rm -- -abc rm "a b"删除但是不方便可以用i节点删除
$find . -inum 16
$find . -inum 16 -exec rm {} \;可以删除i节点为16的文件
-ctime/atime/mtime/cmin/amin/mmin
根据时间查找ctime、atime、mtime(按天为单位查找);cmin、amin、mmin(按分钟为单位查找,用得多)
c-change 改变,文件属性被修改(ls-l)
a-access 访问
m-modify 修改,文件内容被修改
-之内 -1:一天之内
+超过
ex: $find /etc -mmin -120 在120分钟内被改过的文件
连接符-a and 逻辑与
-o or 逻辑或,只要满足一个条件就可以
连接符-exec 可以在查找之后直接进行处理
$find .....-exec 命令 { } \;
{}:表示前面find查询到的结果
\:转义符,符号命令使用本身的含义,\rm testfile 即实现命令本身含义,(rm alias rm='rm -i',会默认询问,如果用转义符就不再询问)
ex: $find /home -user samlee -exec rm -rf {} \;查找samlee创建的所有文件并不确认删除
$find /etc -name inittab -ok rm {} \;查找文件并确认删除,防止删除重要文件
ex: $find /etc -name init 在目录/etc中查找文件init(和Windows不同,Windows会查找所有包含的文件)
$find / -size +204800 在根目录下查找大于100MB的文件
$find / -user sam 在根目录下查找所有者为sam的文件
$find /etc -ctime -l 在/etc下查找24小时内被修改过属性的文件和目录
$find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
$find /etc -name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息
· locate
寻找文件或目录,linux特有命令,速度比find快,但是有的可能locate找不到,locate配合updatedb检索,如果文件数据库未更新可能locate找不到
-list files in databases
命令所在路径:/usr/bin/locate
执行权限:所有用户
语法:locate [搜索关键字]
ex: $locate file 列出所有和file相关的文件
· updatedb
建立整个系统目录文件的数据库,可以定期更新数据库
-update the slocate database
命令所在路径:/usr/bin/updatedb
执行权限:updatedb
ex: #updatedb
· grep
在文件中搜寻字串匹配的行并输出
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep [指定子串] [源文件]
ex: #grep ftp /etc/services
帮助命令
· man
获得帮助信息,只能是配置文件的名称会优先查看命令的帮助,第一种是命令的帮助,第五种是配置文件,如man 5 passwd 即查看配置文件的帮助
-manual
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [命令或配置文件]
ex: $man ls 查看ls命令的帮助信息
· info
获得帮助信息
-information
命令所在路径:/usr/bin/info
执行权限:所有用户
语法:info [任何关键字]
ex: $info ls 查看ls指令的帮助信息
· whatis
获得索引的简短说明信息
-search the whatis database for strings
命令所在路径:/usr/bin/whatis apropos
/usr/sbin/makewhatis
执行权限:所有用户
语法:whatis apropos [任何关键字]
ex: $whatis ls
$apropos fstab 相当于man -k
#makewhatis 建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database没有建立
--help
查看帮助信息
$ls --help
apropos
查看配置文件信息
$apropos fstab
类似man -k 不过会较多
help查看shell内置命令的帮助,其他的方式不行
压缩解压命令
· gzip
压缩文件,不能压缩目录,不保留原文件,压缩后文件格式:.gz
-GNU zip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip [选项] [文件]
· gunzip
解压缩.或gzip -d,解压gz的压缩文件
-GNU unzip
命令所在路径:/bin/gunzip
执行权限:所有用户
语法:gunzip [选项] [压缩文件]
ex: $gunzip file1.gz
· tar
打包目录
命令所在路径:/bin/tar
执行权限:所有目录
语法:tar [c/v/f] [目录]
(压缩语法)
-c (create)产生.tar打包文件
-v 显示详细信息
-f 必要选项,制定压缩后的文件名
-z 打包同时压缩
(解压缩语法)
-x 解包.tar文件
-v 显示详细信息
-f 制定解压文件
-z 解压缩
可以用file 判断文件类型
ex: $tar -zcvf dir.tar.gz dir1 将目录dir1压缩成一个打包并压缩的文件,有的Linux可能不支持打包同时压缩
$tar -zxvf dir1.tar.gz
· zip
压缩文件或目录,Windows和Linux共同支持的文件格式,保留原文件,压缩后文件格式.zip
命令所在路径:/usr/bin/zip
执行权限:所有用户
语法:zip [选项] [压缩后文件名称] [文件或目录]
-r 压缩目录
ex: $zip services.zip /etc/services 压缩文件
$zip -r test.zip /test 压缩目录
· unzip
解压.zip的压缩文件
命令所在路径:/usr/bin/unzip
执行权限:所有用户
ex: $unzip test.zip
· bzip2
压缩文件,压缩后文件格式.bz2
命令所在路径:/usr/bin/bzip2
执行权限:所有用户
语法:bzip2 [选项] [文件]
-k 产生压缩文件后保留原文件
$bzip2 -k file1
· bunzip2
解压缩
命令所在路径:/usr/bin/bunzip2
执行权限:所有用户
语法:bunzip [选项] [压缩文件]
-k 解压缩后保留原文件
ex: $bunzip2 -k file1.bz2
网络通信指令
· write
向另外一个用户发信息,以Ctrl+D作为结束,实时
指令所在路径:/usr/bin/write
执行权限:所有用户
语法:write <用户名>
ex: $write webmaster
· wall
向所有用户广播信息
-write all
命令所在路径:/usr/bin/wall
执行权限:所有用户
语法:wall [message] [文件名]
ex: $wall Happy New Year!
· ping
测试网络连通性,只要不按Ctrl+C终止会一直Ping下去,但是不是可以得到网络包就证明正常,要注意丢包率和延时情况。指定次数:Ping -c 3 ip(3次)
命令所在路径:/usr/sbin/ping
执行权限:root
语法:ping [选项] [IP地址]
-c 次数
-s 改变大小
ex: #ping 192.168.1.1
· ifconfig
查看网络设置信息
命令所在路径:/usr/sbin/ifconfig
执行权限:root
语法:ifconfig [选项] [网卡设备标识]
-a 显示所有网卡信息
ex: #ifconfig -a
改变ip地址:ifconfig eth0 +ip,但是命令行更改只是在此次会话中生效,重启之后不会发生变化。
系统关机命令
· shutdown
关机
命令所在路径:/usr/sbin/shutdown
执行权限:root
语法:shutdown
ex: #shutdown -h now(现在关机,最好不要在服务器中使用,如果要使用最好先广播,再延时关机)
· reboot
重启系统
命令所在路径:/usr/sbin/reboot
执行权限:root
ex: #root
小技巧
shell 种类
/bin/bash,Linux默认
/bin/sh,较老的系统
clear清屏(Ctrl + L)
Ctrl+U删除命令行光标之前所有的字符
histroy 显示所有命令,!+命令序号,可以执行过去执行的命令
查看别名信息:alias
删除别名:unalias copy
ex: alias copy=cp
alias xrm="rm -r"
输入输出重定向
0 STDIN 标准输入,standard in
1 STDOUT 标准输出,standard out
2 STDERR 标准错误输出,standard error
输出重定向(0> 0>>):ls -l /tmp > /tmp.msg(覆盖写)
data >> /tmp.msg(追加写)
输入重定向(1< 1<<):wall < /etc/motd(从文件导入内容)
错误重定向:cp -R /usr/backup/usr.bak 2> /bak.error(如果出错就把错误信息存到bak.error文件中,2>表示储存错误信息,如果未出错,错误日志为空,2表示错误)
管道:将一个命令的输出传送给另一个,命令,作为另一个命令的输入。
使用方法:命令1|命令2|命令n
ls -l /etc | more (分页浏览前面命令的执行结果)
ls -l /etc | grep init | wc -l(查看/etc下包含init的行数,wc:行数)
命令链接符:
; 依次执行:pwd ; ls ; date(系统计划任务,可以让命令后台自动执行,可以编译并执行)
&& 逻辑与:command1 && command2(成功 执行/失败 不执行)
write Mary < /home/samlee/love.txt && rm /home/samlee/love.txt
|| 逻辑或:第一个成功第二个不执行,第一个不成功才执行第二个
命令替换:将一个命令的输出作为另一个命令的参数
格式:命令1 `命令2`
ex: ls -l `which touch`
新建
新建文件夹
[root@localhost /]# mkdir 文件夹名
新建文本文件
[root@localhost /]# vim 文件名
(或者用nano,vi等文本编辑器打开也可)
删除
删除文件
[root@localhost /]# rm -f 文件名
删除文件夹(向下递归删除)
[root@localhost /]# rm -r 文件夹名
连接服务器
[root@localhost /]# ssh 用户名@x.x.x.x
向服务器上传文件
[root@localhost /]# scp 本地文件路径 用户名@x.x.x.x:目录名
从服务器上下载文件
[root@localhost /]# scp 用户名@x.x.x.x:目录名 本地文件路径
用户操作
添加用户
这里写代码片