linux 整理
ls 命令
list,列出目录下的内容.
-
-llong,显示详细信息. -
-aall,显示全部文件,包括隐藏文件.
cd 命令
Change Directory,切换工作目录.
-
cd 切换到HOME目录.
-
cd / 切换到根目录.
pwd 命令
Print Work Directory,输出当前工作目录.
特殊路径符
-
. 表示当前目录.
-
.. 表示上一级目录.
-
~ 表示HOME目录.
mkdir 命令
Make Directory,创建文件夹.
- -p,parent,自动创建不存在的父目录
touch 命令
创建文件.
cat 命令
查看文件内容.
more 命令
查看文件内容,支持翻页.
按空格翻页,按 q 退出.
cp 命令
copy,复制文件文件夹.
第一个参数表示被复制的文件/文件夹,第二个参数表示要新建的文件/文件夹.
- -r,recursion,表示递归,复制文件夹时使用.
mv 命令
move,移动文件/文件夹.
第一个参数表示被移动的文件/文件夹,第二个参数表示移动到的位置.
rm 命令
remove,删除文件/文件夹.
-
-r,recursion,表示递归,删除文件夹时使用.
-
-f,force,强制删除(不弹出确认信息),普通用户删除不会弹出确认信息,只有 root 用户会有.
which 命令
查找命令的程序文件地址.
find 命令
查找文件.
按文件名查找.
语法:find 起始路径 -name “文件名”.
按文件大小查找.
语法:find 起始路径 -size +|-n[kMG].
-
+,- 表示大于小于.
-
n 表示常数.
-
k 表示 kb,M 表示 MB,G 表示 GB.
例如
-
find /work -size -10k,查找小于 10kb 的文件.
-
find /work -size +1G,查找大于 1G 的文件.
grep 命令
在文件中通过关键字过滤文件行.
语法:grep "关键字" 文件路径
wc 命令
Word Count,统计文件的行数、单词数量等.
-
-c,统计字节数量.
-
-m,统计字符数量.
-
-l,lines,统计行数.
-
-w,words,统计单词数量.
如果不加选项,依次输出行数,单词数,字节数量.
管道符
|,将管道符左边命令的结果,作为管道符右边命令的输入.
echo 命令
输出内容
可以用飘号包裹输出的内容,飘号中的内容会被当成命令执行,输出飘号中命令输出的结果.
echo `pwd`.
重定向符
-
>,将左边的结果覆盖写入右边的文件.
-
>>,将左边的结果追加写入右边的文件.
tail 命令
查看文件尾部内容.
-
-[num],查看尾部多少行的内容.
-
-f,follow,持续追踪修改.
head 命令
查看文件头部内容.
- -[num],查看头部多少行的内容.
date 命令
输出当前时间.
+ 格式化输出.
例如: date +"%Y-%m-%d %H:%M:%S"
vim 编辑器
有三个模式,命令模式,输入模式和底线命令模式.
初始在命令模式,按 i 切换到输入模式,按 : 切换到底线命令模式,在输入模式或底线命令模式按 esc 切换到命令模式.
在底线命令模式输入 wq 保存并退出.
su 命令
Switch User,切换用户.
语法:su [-] [用户名]
-
- 表示是否在切换用户后加载环境变量.
-
用户名参数省略表示切换到 root.
输出 exit 或按 ctrl+d 回退到上一个用户.
从普通用户切换到 root 用户需要输入密码,从 root 用户切换到普通用户无需密码.
sudo 命令
Super User Do,为某条命令暂时赋予 root 用户权限.
不是所有用户都有权利使用 sudo 命令,需要为普通用户配置 sudo 权限.
用户和用户组管理
groupadd 命令
添加用户组.
语法:sudo groupadd 用户组名.
groupdel 命令
删除用户组.
语法:sudo groupdel 用户组名.
useradd 命令
创建用户.
语法:sudo useradd [-g -d] 用户名.
-
-g git,指定用户的组,如果不指定 -g,会创建同名用户组加入;如果已存在同名用户组,必须指定 -g.
-
-d,home-dir,指定用户的 HOME 目录,如果不指定,默认在 /home/用户名.
userdel 命令
删除用户.
语法:sudo userdel [-r] 用户名.
- -r,remove,删除用户对应的 HOME 目录.
id 命令
查看用户信息.
usermod -aG 命令
User Modify,将指定用户加入指定用户组.
语法:sudo usermod -aG 用户名 用户组名.
一个用户可以属于多个用户组.
gzip 命令
压缩文件.
-
-d,--decompress,解压文件,是 gunzip 命令的等价形式.
-
-k,--keep,保留原文件.
-
-f,--force,如果输出文件已存在,直接覆盖不提示.
-
-r,--recursive,压缩目录下的所有文件.
tar 命令
Tape ARchiver,用于打包文件/文件夹.
语法:tar [选项] [归档文件名] [要操作的文件/文件夹列表].
操作模式:
-
-c,--create 打包.
-
-x,--extract 解包.
-
-t,--list 列出归档文件中的内容(不解包).
压缩选项:
- -z,--gzip.
其他选项:
-
-f,--file,指定归档文件名,f 后必须紧跟归档文件名.
-
-p,--preserve-permissions,保留文件权限.
-
-A,--catenate,将另一个 tar 归档追加到当前归档,只能操作未压缩的 tar 文件.
ln 命令
link,创建软链接(类似快捷方式).
语法 ln -s 参数1 参数2.
-
参数1 表示被链接的文件/文件夹.
-
参数2 表示要链接去的目的地.
链接完成之后,可以通过参数2访问参数1.
权限信息
总共十位.
第一位:
-
-表示文件. -
-ddirectory,表示文件夹. -
-lsymbolic link,表示软链接.
剩下九位,前三位表示所属用户权限,中间三位表示所属用户组权限,后三位表示其他用户权限.
权限的三位分别是 rwx,分别表示:
-
rread,可读. -
wwrite,可写. -
xexecute,可执行.
如果对应位为 - 表示没有对应的权限.
权限可以使用数字表示,权限的三位可以用三位二进制表达,然后转成十进制拼接.
例如 r-x--xr-x,r-x 为 5,--x 为 1,r-x 为 5,因此权限为 515.
chmod 命令
change mod,修改文件权限.
语法:chmod [选项] [u/g/o/a] [+/-/=] [r/w/x] 文件.
-
-Rrecursive,对文件夹内所有内容执行相同操作. -
u表示 user,g表示 group,o表示 others,a表示 all. -
+/-表示添加/移除权限,=表示精确设置权限.
chown 命令
change owner,修改文件/文件夹所属的用户或用户组.
语法:sudo chown [选项] [用户] [:] [用户组] 文件或文件夹.
-Rrecursive,对文件夹内所有内容执行相同操作.
shell 脚本
shell 脚本均以 #!/bin/bash 开头.
编写完 shell 脚本后,需要赋予其可执行权限.
shell 语法
定义变量
变量名=值,注意等号两边不能有空格.
撤销变量
unset 变量名.
read
读入数据.
-
-p,prompt,指定读入的提示词.
-
-t,timeout,指定读入的等待时间(s),超过时间不再等待.
算数运算
$(()).
例如,输出 a+b:
#!/bin/bash
read a b
echo $((a+b))
条件判断
[ condition ] 注意内容要与括号有空格.
字符串比较: =.
整数比较:
-
-eq等于. -
-ne不等于. -
-lt严格小于. -
-le小于等于. -
-gt严格大于. -
-ge大于等于.
if 语句
if [ condition1 ]
then
...
elif [ condition2 ]
then
...
else
...
fi
case 语句
case $变量名 in
"值1")
...
;;
"值2")
...
;;
#都不符合
*)
...
;;
esac
从命令行读入数据
-
$1第一个参数 -
$*全部参数,将全部参数当成一个参数对待. -
$@全部参数,将全部参数当成多个参数对待. -
$#参数个数
for 循环
for 变量 in 值1 值2 ...
do
...
done
for ((变量;循环条件;变化))
do
...
done
while 循环
while [ condition ]
do
...
done
自定义函数
语法:函数名(){...}.
调用:函数名 参数1 参数2 ...
传参和命令行传参一致,return 只能返回0~255的整数,一般不使用.
可以通过命令替换 $() 捕获函数内输出的内容.
例如,计算 a+b:
#!/bin/bash
add(){
echo $(($1+$2))
}
read a b
res=$(add $a $b)
echo "$res"
下载命令
sudo apt-get install ... .
打开终端快捷键
ctrl+alt+t.
关闭终端快捷键
ctrl+d.
查看 ubuntu 版本信息
uname -a.
ping 命令
检查与目标主机是否连通.
wget 命令
从网络上下载内容.
语法:wget [选项] URL.
-
-O,--output-document,将下载内容保存为指定文件名. -
-P,--directory-prefix,将文件保存到指定目录.
git 命令
git init 命令
初始化仓库.
git add 命令
添加文件到暂存区.
git commit 命令
提交暂存区文件到版本库.
-mmessege,附带版本的信息说明.
Makefile
由若干条规则组成,形式如下:
目标: 依赖1 依赖2 ...
命令
例如,将 main.c 编译成 out.
out: main.c
gcc main.c -o out
自动变量
-
$@目标文件名. -
$<第一个依赖文件名. -
$^所有依赖.
模板
#编译器
CC=gcc
#目标可执行文件名
TARGET=out
#所有.c文件
SRCS=main.c add.c sub.c
#对应的.o文件
OBJS=$(SRCS:.c=.o)
#生成可执行文件
$(TARGET): $(OBJS)
$(CC) $^ -o $@
#编译每个.c为.o
%.o: %.c
$(CC) -c $< -o $@
#删除所有生成的文件
clean:
rm -f $(OBJS) $(TARGET)
#声明伪目标
.PHONY: clean
输入 make 执行,输入 make clean 执行 clean.
crontab 命令
cron table,设置定时任务.
-
-eedit,编辑当前用户的 crontab 文件. -
-llist,列出所有定时任务. -
-rromove,删除当前用户所有定时任务.
crontab 命令格式如下:
分 时 日 月 周 要执行的命令
特殊符号:
-
*表示所有可能的值. -
-表示范围. -
/表示步长,例如在分字段使用*/15表示每隔 15 分钟执行一次.

浙公网安备 33010602011771号