linux常用命令
这些命令基本上是Linux课程上记录下的,比较分散。
基本命令
#查看当前所在目录 $ pwd
Ctrl+a |
将光标移至输入行头,相当于Home 键 |
Ctrl+e |
将光标移至输入行末,相当于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
#帮助命令 help/man/info
文件压缩
常用命令
1 2 3 4 5 6 7 8
| - zip: - 打包 :zip something.zip something (目录请加 -r 参数) - 解包:unzip something.zip - 指定路径:-d 参数 - tar: - 打包:tar -cf something.tar something - 解包:tar -xf something.tar - 指定路径:-C 参数
|
#zip压缩 zip -r -q -o shiyanlou.zip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| `-r` 参数表示递归打包包含子目录的全部内容,
`-q` 参数表示为安静模式,即不向屏幕输出信息,
`-o`表示输出文件,需在其后紧跟打包输出文件名。
`-e`加密
-【1-9】设置压缩级别
#`du` 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小
#unzip解压
`-d`解压到指定目录
`-l`不解压,仅查看压缩包内容
`-O`指定编码类型
|
#tar打包
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
| -t 查看
-z gz压缩 -xz解压缩
| 压缩文件格式 | 参数 | | ------------ | ---- | | `*.tar.gz` | `-z` | | `*.tar.xz` | `-J` | | `*tar.bz2` | `-j` |
tar -P -cf shiyanlou.tar
`-P` 保留绝对路径符
`-c` 表示创建一个 tar 包文件
`-f` 用于指定创建的文件名,注意文件名必须紧跟在 `-f` 参数之后
`-v` 参数以可视的的方式输出打包的文件
`-x`解包一个文件
`-C`解包至已存在的目录下
`-t`只查看不解包
`-p -h`保留文件属性和跟随链接
|
#gzip仅压缩不打包
文件操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #touch更改时间戳,可用于创建一个新文件
#mkdir创建空目录 -p同时创建父目录或多级目录
#cp复制文件 格式 cp【文件】【目标目录】 -r/-R递归复制
#rm删除文件 -f强制删除 -r连带目录删除
#mv移动(剪切)文件 格式 mv【文件】【目标目录】
重命名 格式 mv【旧名】【新名】
#whereis 搜索二进制文件
#locate 查询mlocate检索信息,需uodatedb
#which 判断是否安装了某命令
#find 【path】【option】【action】
|
参数 |
说明 |
-atime |
最后访问时间 |
-ctime |
最后修改文件内容的时间 |
-mtime |
最后修改文件属性的时间 |
-newer file |
列出比file要新的文件名 |
-name |
指定名字 |
-mtime n
:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n
:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n
:列出在 n 天之内(包含 n 天本身)被修改过的文件
-size
:根据文件大小来查询
-exec
:对搜索到的文件执行命令
-ok
:同-exec,命令执行前询问
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 37 38
|
ls -lS 按大小降序排列 ls -l | sort -n -k5 按大小升序
ls -lrt 按时间升序
ls -lnt 按时间降序
ls -l | sort -k9 按文件名升序(这是ls的默认输出方式)
ls -lr 按文件名降序 ls -l | sort -rk9 按文件名降序 ls -l -d */ 只显示目录
ls -l |grep -v "^d" 只显示文件
ls -a 显示所有文件包括隐藏文件
ls -dl dirname 显示目录完整属性
ls -asSh 显示所有文件大小
cut行内分割
echo不接受标准输入
cat接受标准输入
xargs 将接收到的内容作为后面命令的参数
grep管道仅对接收标准输入的命令有用,可用xargs转换
|
磁盘操作
1 2 3
| #df 查看磁盘容量 -h带单位
#du 查看目录或文件容量 -h带单位 -d查看目录深度 【0-9】查看下几级命令
|
数据处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 标准输出(/dev/stdout)重定向>或>>
cat Documents/test.c hello.c >somefile 2>&1
重定向错误信息(0,1,2分别是输入、输出、错误文件描述符,3-8可自行使用,存于/dev/fd中)
黑洞:/dev/null
|
进程管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #top 查看实时进程状态
#ps 静态查看进程信息
ps aux 罗列所有信息
-l显示与这次登录bash相关的进程信息
#pstree查看当前活跃进程的树形结构
#kill -9 关闭进程
#nice以更改过的优先序来执行程序
#renice修改进程的优先级
|
用户权限
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
| 虚拟用户https://codeantenna.com/a/cL5bRd8RtK
/etc/group包含用户组信息
usermod -u 2005 user 修改UID
$ chmod go-rw iphone11 加减赋值:gou分别为group other user +增加权限 -减少权限
#修改用户家目录:修改/etc/passwd内容
|
Linux实验平台挑战五
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
| deluser user --remove-home
usermod -u 2000 guest1
groupadd guest
usermod -g guest guest1
修改/etc/passwd guest1的家目录
https://www.cnblogs.com/cnsong/p/14272328.html配置ftp
guest_enable=YES \ guest_username=ftp \ user_config_dir=/etc/vsftpd/vuser_conf \ pasv_enable=YES \ pasv_min_port=40000 \ pasv_max_port=40080 pasv_promiscuous=YES allow_writeable_chroot=YES
|
软件包安装和管理(ubuntu下)
1 2 3 4 5 6 7 8 9 10 11 12 13
| #source ~/.zshrc 更新命令代码补全
#sudo apt-get dist-upgrade 升级并解决依赖关系
-f 修复依赖关系的安装
#sudo apt-cache search softname 搜索本地库中是否有某软件
#dpkg -L packname 查看deb包信息
-I查看deb包信息
-i使用dpkg安装
|
日志管理系统
vim的使用
http://marz.is-programmer.com/posts/20001.html
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
| u撤回
ctrl+r重做
:w 目录 复制到目录处并同时修改
:set nu 设定行号
:N 移动至第行
N| 移动到行内第几个字符
Nx 向右删除几个字符,向前删除
:50,100s/kernel/KERNEL/g 替换50-100行所有kernel
nyy 复制n行
$移到行尾
G 移到文末
p下一行粘贴
:r 文件 将文件内容复制到本文末
|
shell流程控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| echo $? 上一条指令是否执行成功 成功显示0 不成功显示非0
取值符号$ $a=$b
-n 判断变量非空
-z判断变量为空
如果变量可能为空,需要加双引号“$a”
-a an
-o or
test xxx ==【xxx】
test -e "$1"判断是否存在文件
|
#分支结构
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 37 38 39 40 41 42 43 44 45 46 47 48 49
| if command(测试命令成功与否) ; then command; elif ………………; fi
case $var in
value1)
commands;;
…………
*)
commands;;
esac
for var in valuelist
do
commands
done
select var in menu...
do
commands
done
|
#函数定义
1 2 3 4 5
| #! /bin/bash
函数定义要求在调用前
调用前用.命令载入内存,直接把函数当成命令使用,修改命令后要重新载入。也可以用source
|
程序编译和工具链
网页下载工具
1 2
| #curl -O [url] 从url保存文件(原名)
|