linux学习笔记之常用命令
总结了学习linux时的一些笔记,重新排版。
基础
文件命名规则:
1.除/以外,所有的字符都合法
2.有些字符最好不用,如空格符, 制表符, 退格符和字符@#$&()-等
3.避免使用.作为普通文件名的第一个字符(避免被隐藏)
4.大小写敏感,严格区分大小写
命令格式:命令 -选项 参数
说明:
- 当有多个选项时,可以写在一起
- .和..分别代表当前目录和当前目录的父目录(上一级目录)
按键 | 功能 |
---|---|
Ctrl+c | 终止指令 |
Ctrl+d | 退出shell |
Ctrl+a | 光标移至行首 |
Ctrl+e | 光标移至行末 |
转义符\可保留本意
用户管理 | 命令 |
---|---|
改变用户 | su - 用户名 |
添加用户 | useradd 用户名 |
设置用户密码 | passwd 用户名 |
由命令所在的路径可判断命令的权限:
权限 | 路径 |
---|---|
root | /sbin ,/usr/sbin |
all user | /bin,/usr/bin |
文件处理命令
ls
功能:显示目录文件
路径:/bin/ls
语法:ls 选项[-ald] [文件或目录]
- -a 显示所有文件,包括隐藏文件(all)
- -d 查看目录属性(directory)(一般配合l,即-ld连用查看某个目录的属性)
- -l 详细信息显示(long)
例子:drwxr-xr-x 2 root root 4096 12-01 20:52 bin
d | rwxr-xr-x | 2 | root root | 4096 | 12-01 20:52 | bin |
---|---|---|---|---|---|---|
文件类型,常见文件类型有: d:目录 directory -: 二进制文件 l: 软链接文件 link |
代表权限( r-read 读, w-write 写, x-execute 执行), 所有者 u(user, owner) 权限 rwx, 所有组 g(group) 权限 r-x, 其他人 o(other) | 硬链接数 | 管理者是root,管理组是root | 文件大小(不准确),linux一般用数据块大小来做储存文件大小的单位,即数据块是最小储存单位 | 创建时间或最后修改时间 | 文件名 |
cd
功能:切换目录
路径:shell内置命令
权限:所有用户
语法:cd [目录]
例子:1
2
3
4// 切换到根目录
cd /
// 回到上一级目录
cd ..
pwd
功能:显示当前所在的工作目录
路径:/bin/pwd
语法:pwd
touch
功能:创建空文件
路径:/bin/touch
语法:touch [文件名]
例子:touch newfile
mkdir
功能:创建新目录
路径:/bin/mkdir
语法:mkdir [目录名]
例子:mkdir newdir
cp
功能:复制文件或目录
路径:/bin/cp
语法:cp -R [源文件或目录][目的目录]
- -R 复制目录
- -p 拷贝之后不改变时间值
例子:1
2
3
4// 将文件file1, file2复制到目录dir1
cp file1 file2 dir1
// 将目录dir1下的所有文件复制到目录dir2下
cp -R dir1 dir2
mv
功能:移动文件, 更名
路径:/bin/mv
语法:mv [源文件或目录][目的目录]
例子:1
2
3
4
5
6// 将当前目录下文件file1更名为file3
mv file1 file3
// 将文件file2移动到目录dir2下
mv file2 dir2
// 改名和移动可同时操作
mv /dir1/file1 /dir2/file2
rm
功能:删除文件
路径:/bin/rm
语法:rm -r [文件或目录]
- -r 删除目录
- -f 强制删除(避开询问)
例子:1
2
3
4// 删除文件file1
rm file1
// 删除目录dir1
rm -r dir1
cat
功能:显示文件内容(显示大文件的话不完整)
路径:/bin/cat
语法:cat [文件名]
例子:cat /etc/issue
more
功能:分页显示文件内容(可以完整显示文件)
路径:/bin/more
语法:more [文件名]
命令 | 功能 |
---|---|
(空格)或 f | 显示下一页 |
(Enter) | 显示下一行 |
q 或 Q | 退出 |
例子:more /etc/services
head
功能:查看文件前几行
路径:/bin/head
语法:head -num [文件名]
- -num 显示文件的前num行
例子:head -20 etc/services
tail
功能:查看文件后几行
路径: bin/tail
语法:tail -num [文件名]
- -num 显示文件后num行
- -f 动态显示文件内容
例子:tail -30 /etc/services
ln
功能:产生链接文件
路径:/bin/ln
语法:ln -s [源文件][目标文件]
- -s 创建软链接
例子:1
2
3
4// 创建文件/etc/issue的软链接/issue.soft
ln -s /etc/issue/issue.soft
// 创建文件/etc/issue的硬链接/issue.hard
ln /etc/issue/issue.hard
链接类型 | 等价理解 | 特性 |
---|---|---|
软链接 | 类似于快捷方式 | 文件很小,若源文件消失,软链接失效。 |
硬链接 | cp -p + 同步更新 | 与源文件有相同的inode,不能跨文件系统(不能跨系统文件分区),若源文件消失,硬链接不变。 |
权限处理命令
chmod
功能:改变文件或目录权限
路径:/bin/chmod
语法:1
2
3chmod u + r
chmod g - w
chmod o = x
关于权限值:
u-所有者, g-所属组, o-其他人
rwx: 可写可读可执行
r-4, w-2, x-1(重点掌握)
例如:rwxr-xr– 等价于 754, 752 等价于 rwxr-x-w-
例子:1
2
3
4// 赋予文件file1所属组写权限
chmod g+w file1
// 设定目录dir1为所有用户具有全部权限
chmod 777 dir1
对于权限的理解:
对文件:
r(可以查看文件内容)cat, more, head, tail
w(可以修改文件内容)echo, vi
x(可以执行文件)命令, 脚本
对目录:
r(可以列出目录中的内容)ls
w(可以在目录中创建, 删除文件)touch, mkdir, rm
x(可以进入目录)cd
chown
功能:改变文件或目录的所有者
路径:/bin/chown
语法:chown [用户][文件或目录]
例子:1
2// 改变文件file1的所有者为nobody
chown nobody file1
chgrp
功能:改变文件或目录的所属组
路径:/bin/chgrp
语法:chgrp [用户组][文件或目录]
例子:1
2// 改变文件file1的所属组为adm
chgrp adm file1
umask
功能:显示, 设置文件的缺省权限
路径:/bin/umask
语法:umask -S
- -S 以rwx形式显示新建文件或目录缺省权限
例子:umask
直观写法:umask -S
假如umask得到0022
0-特殊权限位
022-用户权限位,权限掩码值
777 - 022 = 755
755表示权限
改变默认权限:umask 权限掩码值
Linux权限规则:
缺省创建的文件不能授予可执行x权限
文件搜索命令
which
功能:显示系统命令所在目录
路径:/usr/bin/which
语法:which [命令名称]
例子:which ls
find
功能:查找文件或目录
路径:/usr/bin/find
语法:find [搜索路径] [搜寻关键字]
例子:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36// 在目录/etc中查找文件init,注:*,匹配任意字符,若查找init开头的文件则init*; ?,匹配单个字符,若查找带有init的七个字母的文件则init???
find /etc -name init
// 在根目录下查找大于100MB的文件,以数据块为单位512字节,注:大于+,小于-
find / -size +204800
// 在根目录下查找所有者为sanlee的文件
find /home -user samlee
// 120分钟以内被修改的文件
find /etc -mmin -120
/*时间:
- 1.天 ctime, atime, mtime
- 2.分钟 cmin, amin, mmin
- c-change改变,表示文件属性被修改过,所有者, 所属组, 权限
- a-access访问
- m-modify修改,表示文件内容被修改过
- -之内,+超过
*/
// 在/etc下查找大于80MB小于100MB的文件,注:连接符-a表示and逻辑与,-o表示or逻辑或
find /etc -size +163840 -a -size -204800
// 在/etc下查找inittab文件并显示其详细信息
find /etc -name inittab -exec ls -l {} \;
// 在/etc下查找用户名为samlee的文件并删除
find /etc -user samlee -exec rm -rf {} \;
// find .... -exec 命令 {} \;(若用-ok代替-exec则会询问确认)
// 在/etc下查找软链接文件(f二进制文件, l软链接文件, d目录)
find /etc -type l
// 在当前目录寻找i节点为16的文件
find . -inum 16
locate
功能:寻找文件或目录(在updatedb数据库里寻找,速度快)
路径:/usr/bin/locate
语法:locate [搜索关键字]
例子:1
2// 列出所有跟file相关的文件
locate file
updatedb
功能:建立整个系统目录文件的数据库
路径:/usr/bin/updatedb
例子:updatedb
grep
功能:在文件中搜寻字符匹配的行并输出
路径:/usr/bin/grep
语法:grep [指定字母][源文件]
例子:grep ftp /etc/services
帮助命令:
man
功能:获取帮助信息(遵循more的指令来换行换页和退出)
路径:/usr/bin/man
语法:man [命令或配置文件]
例子:1
2
3
4// 查看ls命令的帮助信息
man ls
// 查看配置文件services的帮助信息
man services
若命令与配置文件同名则优先查看命令的帮助,通过man 5 […]来查看,即帮助有很多种,第五种为配置文件帮助。
info
功能:获取帮助信息(与man功能完全相同,只是呈现方式不同)
路径:/usr/bin/info
语法:info [任何关键字]
例子:1
2// 查看ls指令的帮助信息
info ls
whatis和apropos
功能:获得索引的简短说明信息
路径:/usr/bin/whatis /usr/bin/apropos
语法:whatis [任何关键字]
apropos [任何关键字]
例子:1
2
3whatis ls
//相当于man -k
apropos fstab
注:与locate类似,需要用makewhatis指令建立whatis和apropos搜索使用的数据库(例子:makewhatis)
help
功能:查看shell内置命令的帮助
压缩解压命令:(.gz,.tar.gz,.zip,.bz2)
gzip
功能:压缩文件
路径:/bin/gzip
语法:gzip 选项[文件]
压缩后文件格式:.gz
1.只能压缩文件,不能压缩目录
2.不保留原文件
gunzip
功能:解压缩.gz的压缩文件(同gzip -d)
路径:/bin/gunzip
语法:gunzip 选项[压缩文件]
例子:gunzip file1.gz
tar
功能:打包目录
路径:/bin/tar
压缩语法:tar 选项 [目录]
- -c 产生tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
压缩后文件格式:.tar.gz
例子:1
2// 将目录dir1压缩成一个打包并压缩的文件
tar -zcvf dir.tar.gz dir1
注:老系统不支持打包压缩一起进行
解压缩语法:tar 选项 [压缩文件]
- -x 解包.tar文件
- -v 显示详细信息
- -f 指定解压文件
- -z 解压缩
例子:1
2// 将dir1解压到当前目录下
tar -zxvf dir1.tar.gz
file指令
功能:判断文件类型
语法:file [文件名]
zip
(默认的win和linux通用格式)
功能:压缩文件或目录(保留原文件)
路径:/usr/bin/zip
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
- -r 压缩目录
压缩后文件格式:.zip
例子:1
2
3
4// 压缩文件
zip services.zip /etc/services
// 压缩目录
zip -r test.zip /test
unzip
功能:解压.zip的压缩文件
路径:/usr/bin/unzip
语法:unzip [压缩文件]
例子:1
2// 解压文件
unzip test.zip
bzip2
功能:压缩文件
路径:/usr/bin/bzip2
语法:bzip2 选项[-k] [文件]
- -k 产生压缩文件后保留文件
压缩后文件格式:.bz2
例子:bzip2 -k file1
bunzip2
功能:解压缩
路径:/usr/bin/bunzip2
语法:bunzip2 选项[-k] [压缩文件]
- -k 解压缩后保留文件
例子:bunzip2 -k file1.bz2
网络通信指令:
write
功能:向另一个用户发信息,以ctrl+D作为结束(实时)
路径:/usr/bin/write
语法:write <用户>
例子:write samlee
wall
功能:向所有用户广播信息
路径:/usr/bin/wall
语法:wall [message] [文件名]
例子:wall Happy new year!
ping
功能:测试网络连通性
路径:/usr/sbin/ping
语法:ping 选项 IP地址
- -c [num] pingnum次(类似windows的ping)
- -s [num] 用num大小的数据包来测试(num不能大于65507)
例子:ping 192.168.1.1
用ifconfig可查看本机IP地址
ifconfig
功能:查看网络设置信息
路径:/usr/sbin/ifconfig
语法:ifconfig 选项[-a] [网卡设备标识]
- -a 显示所有网卡信息
例子:1
2
3
4
5
6// 显示所有网卡信息
ifconfig -a
// 查看关键网卡信息
ifconfig eth0
// 临时改变IP地址为192.168.9.6,若不写入配置文件,则仅在此会话中生效
ifconfig eth0 192.168.9.6
系统关机命令:
shutdown
功能:关机
路径:/usr/sbin/shutdown
语法:shutdown
例子:1
2// 马上关机
shutdown -h now
reboot
功能:重启系统
路径:/usr/sbin/reboot
语法:reboot
例子:reboot
shell应用技巧:
小技巧:
1.命令补全
输入文件名起始的若干个字母后,按
2.清空屏幕
clear指令,或 ctrl + L
3.快速删除
ctrl + U 可以快速删除当前命令行光标前的所有内容
4.命令历史
history 指令:列出敲过的所有指令
上下箭头键可以查找以前执行过的命令
大技巧:
1.命令别名
定义别名例子:1
2
3alias copy=cp
// 带选项时要加双引号
alisa xrm="rm -f"
删除别名:unalias copy
2.输入/输出重定向
shell对于每一个进程预先定义三个文件描述字(0,1,2)
0(STDIN) 标准输入
1(STDOUT) 标准输出
2(STDERR) 标准错误输出
>
或>>
输出重定向
例子:1
2
3
4// tmp的内容输出到文件中,并替代原内容
ls -l /tmp > /tmp.msg
// data输出到文件内,并追加在原内容后面
date >> /tmp.msg
<
输入重定向
例子:1
2// 把文件作为输入端
wall < /etc/motd
2>
错误输出重定向
例子:1
2// 错误信息输出到文件/bak.error内
cp -R /usr /backup/usr.bak 2> /bak.error
3.管道
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:命令1|命令2|命令3……|命令n
例子:1
2ls -l /etc | more
ls -l /etc | grep init
4.命令连接符
符号 | 功能 |
---|---|
; | 用;间隔的各命令按顺序依次执行 |
&& |
前后命令的执行存在逻辑与关系,前面的命令执行成功后,它后面的命令才被执行。 |
|| | 前后命令的执行存在逻辑或关系,若前面的命令执行成功,则后面不执行;若前面的命令执行失败,则后面才会执行。 |
5.命令替换符
命令替换:将一个命令的输出作为另一个命令的参数
格式:命令1 `命令2`(注意不是单引号,而是键盘按键1旁边的替换符)
例子:ls -l `which touch`