
Linux 常用命令
记录常用的操作,命令更细致的使用可以对命令使用 –help查看
文件和目录操作
- mkdir :创建目录
- -p(–parents):递归创建多级目录(eg:mkdir -p /data/logs/nginx)
- ls :显示目录内文件
- -a(–all):显示隐藏文件
- -lh(–human-readable):-l以长格式显示详细信息(权限、大小、时间等),-h文件大小显示为kb,mb等人类可读形式
- -t :按修改时间排序(新在前)
- -S :按文件大小排序(大在前)
- -r :对当前排序反向
- rm :删除
- -r(–recursive):递归删除
- -f(–force):强制操作,不提示
- -v(–verbose):显示操作过程
- cp [source] [target]:复制目录/文件
- -r(–recursive):递归复制
- -f(–force):强制操作,不提示
- -v(–verbose):显示操作过程
- ln [源文件] [链接文件路径] (硬链接只能对文件建立)
- -s :建立软连接,可对文件/目录
- -f :强制覆盖
- -v :显示详细操作过程
- mv [cur] [tar]:移动目录/文件,或重命名(移动文件:位置不变表现为重命名;移动目录:目标目录不存在则表现为重命名,否则成为目标目录的子目录)
- -f(–force):强制操作,不提示
- -n(–no-clobber):不覆盖已有文件
- -v(–verbose):显示操作过程
- chmod :修改文件权限
- 使用10个字符标识权限
- 第一个字符声明文件类型:-普通文件,d目录,l链接,p命名管道文件等
- 第2-4,5-7,8-10个字符分别声明文件所有者权限(user),所属组权限(group),其他用户权限(others)
- 权限为rwx,分别表示可读,可写,可执行(不具备相应权限用-表示,如rw-表示具有读写权限)
- 也可以使用数字简写(r=4,w=2,x=1),比如chmod 777 file 使得所有用户对文件均具有读、写、执行权限
- +-= :增加/删除/等于 右边权限(eg:chmod u+x a.txt)
- chown [options] [用户][:用户组] [file] :更改文件所属用户/用户组
- : 分隔用户和用户组(如chown :group2 test.txt,只更改用户组)
- -R :递归更改
- pwd :显示当前路径
文件查看与编辑
touch :创建空文件
cat :查看文件全部内容(默认输出到终端,可以>覆盖写到其他文件,或者>>追加写到其他文件)
head/tail :显示文件的前/后10行
- -n num :显示前/后num行(如果是-n +num,则表示从第num行开始打印到末尾)
- -f :实时查看文件追加内容
sed ‘s/old_text/new_text/g’ filename :用于对文本进行批量删除/替换
- 默认不会修改文本,会把修改后文本输出到终端/重定向的文件
- 字符串前缀s表示为替换,把文本所有old_text替换为new_text
- 字符串后缀g表示全局替换:默认每行只会替换第一次匹配,g会替换所有匹配
- 比如把win文本转为linux文本(需要把win换行符),命令为’s//g’,即把,即删除
- 字符串前缀s表示为替换,把文本所有old_text替换为new_text
- -i(–in-place) :直接修改目标文本
- 默认不会修改文本,会把修改后文本输出到终端/重定向的文件
grep [-o] [模式] [file] :文本搜索/过滤(grep,Global Regular Expression Print)
- 模式一般是指定的搜索文本,或者正则表达式
- 若模式以-开头(忽略包裹的”“),需要使用 – 与 -o 的选项分隔 :grep [-o] – [模式]
- file为grep处理的文本(逐行处理),也可通过管道 | 处理上一个命令的输出(管道|可将左侧输出作为右侧的输入)
- 常用参数
- -i :忽略大小写
- -v :反转,显示不符合条件的
- -n :显示匹配文本的行号
- -w/-x :精准匹配指定单词(由字母,数字,下划线组成,其他符号为分隔符)/指定行
- -F :将模式视为字符串而不是正则表达式
- -E :使用扩展正则表达式,无需
- 模式一般是指定的搜索文本,或者正则表达式
压缩与解压
- tar :归档文件
- 常见参数
- -c(–create) :创建新的归档文件
- -x(–extract) :提取归档文件
- -v(–verbose) :显示详细操作过程
- -f(–file) :指定归档文件名称
- -t(–list) :列出归档文件内容
- -z(–gzip) :使用gzip压缩归档文件
- -j(–bzip2) :使用bzip2压缩归档文件
- -J(–xz) :使用xz压缩归档文件
- -C(–directory=DIR) :指定提取文件目录
- –remove-files :归档后删除源文件
- 常用组合命令
- tar -cvf [归档文件路径] [被归档目录/文件路径]
- 归档文件路径一般以tar结尾,如果使用了-z/-j等压缩工具,会增加提示后缀.gz、.bz2、.xz等
- 被归档路径如果是 . 则表示归档当前目录所有文件
- tar –remove-files -cvf :成功归档后会删除被归档文件(rm在-cvf前)
- -C [path] :会先跳转到path目录,再打包指定路径文件(避免打包时包含了绝对路径)
- tar -xvf [归档文件路径] -C [指定提取路径]
- 不使用-C指定提取路径,则默认提取到当前所在目录
- 提取无需指定解压格式
- tar -tvf [归档文件路径] :查看归档文件详情属性(权限,大小等)
- tar -cvf [归档文件路径] [被归档目录/文件路径]
- 常见参数
- zip -r [压缩文件路径] [被压缩文件路径]
- -r :递归压缩
- 不使用,则只有第一层的文件和目录
- 解压当前目录所有文件时(即 .),必须-r
- -e :对压缩包设置密码
- -v :显示详细操作过程
- -r :递归压缩
- unzip [压缩文件路径] -d [解压至路径]
- -l/-v :显示压缩包文件(-v更详细)
- -o :解压时不提示直接覆盖
进程管理
- ps(process status) :查看进程信息
- 常用参数
- a :显示所有终端上的所有进程
- x :显示后台进程
- u/-u :以用户友好形式显示当前用户的所有进程
- U/-u [user] :显示指定用户的所有进程
- -p :显示指定pid的进程
- –sort=[+/-][排序选项(%cpu、%mem)]
- 常用组合命令
- aux :显示所有用户的所有进程
- ux -u [user] :显示指定用户的所有进程
- 常用参数
- top :实时显示进程
- -u [user] :指定用户
- -p [pid] :指定进程
- kill [-o] [pid]
- kill -l :可查看不同数字对应的信号
- -9 :强制终止进程
- -15 :请求进程终止(默认)
- pkill -f [关键字] :删除匹配关键字的所有进程
网络命令
ifconfig :查看网络接口配置
wget [-o]
:下载网络文件 - -O [新文件名] :设定下载文件的名称(如果文件名带路径,则要求路径必须存在)
- -P [目录] :指定下载文件保存目录(不能和-O同时使用,会失效)
- -r :递归下载
- -l [num] :限制递归下载深度
- -c :启用断点续传(已下载部分不会重新下)
- -nc :不覆盖已存在的同名文件
- -b :后台运行
- -o [日志文件]:指定输出日志(后台运行默认输出到wget-log)
curl(Client for URLs) :用于执行网络请求,支持多种协议
- -v :显示信息通信过程
- -i :输出http响应头(-I 则是只获取响应头)
- -X [request] :指定http请求方法(GET,POST等)
- -d [data]:请求体
- -H [header] :请求头(一个-H添加一对key-value)
netstat :显示网络连接/端口占用的信息(network statistics,网络统计)
- 常用组合 :netstat -tulnp
- -t :显示tcp连接
- -u :显示udp连接
- -l :显示监听端口
- -n :以数字显示显示
- -p :显示进程名称和pid
- 常用组合 :netstat -tulnp
其他常用命令
- ehco
- 输出字符串的形式
- 单引号’’ :不会解析变量和转义
- 双引号”“以及不带引号 :可以解析变量(使用$,可输出环境变量)和转义反斜杠
- 常用参数
- -e :开启反斜杠转义(默认关闭)
- -n :文本末尾不换行
- 输出字符串的形式
- date +[target-format]:输出指定时间格式(eg:date +“%Y-%m”)
- 时间格式常用参数(常用组合:“+%F %T”,即date +“%Y-%m-%d %H:%M:%S”)
- Y/y :四位/两位年份
- m/d :两位月份/日期
- H/M/S :两位时/分/秒
- F/T :完整日期/时间(即对应%Y-%m-%d和%H:%M:%S)
- s :时间戳(秒数)
- Z :时区名称
- w :星期几(数字)
- -d 指定日期 :date -d [target-time] +[target-format]
- target-time 可以使用 @[时间戳] 指定,eg:date -d “@1704038400”
- 时间格式常用参数(常用组合:“+%F %T”,即date +“%Y-%m-%d %H:%M:%S”)
- export [环境变量名]:导出环境变量(当前进程及子进程均可访问)
