linux常用命令记录

开个帖子记录一些工作学习过程中时不时就要用到linux相关的命令, 算是个备忘录

1. 文件操作

$iconv -f [src] -t [dst] [file] -o [outfile] 编码格式转换

$chmod [1+2+4] [filename] 文件权限管理

$chown [user]:[group] [filename] 文件所有

$cp [src] [dst] 拷贝 $mv [src] [dst] 移动/重命名文件 $rm -rf [file/dir] 递归删除,失败不报错(无法恢复,root下慎用)

$zip -rv [filename.zip] [target] zip压缩

$unzip [filename.zip] -d [dir] zip解压 $tar -xzvf [file] [path] tar解压

$tar -czvf [packname.tar] [file/dir] tar压缩

#aix环境对于.tar.gz的包可能解压有问题,要先gunzip把.tar.gz转成.tar

$rpm -ivh xxx.rpm --nodeps --force 强制安装rpm包,不检查依赖

$update-alternatives --display --config --set --remove-all --install [link] [name] [path] [level]

$ln -s [path] [link] 软连接

2. 网络

$ifconfig -a  网卡信息

$netstat -tunlp  网络状况

$tcpdump  [-i interface] [src/dst] [port] [-w xxx.cap] 抓包

$traceroute [ip] 查看到指定IP的路由过程

$route 查看路由表

$ip route 查看路由表

$ip route add [ip/mask] via [gateway] 添加路由规则

$ip address 查看网卡信息

3. 服务

$service [serviceName] restart  重启服务

$systemctl start [serviceName].service 启动服务

$systemctl start sshd.service 启用ssh

$systemctl start firewalld 启用防火墙

$systemctl status firewalld 查看防火墙服务状态

$systemctl stop firewalld 停止防火墙

$systemctl disable firewalld 禁用防火墙 $smbpasswd
-a [userName] 配置samba
/etc/samba/

4. 系统管理

$su [username] 切换用户

$vi /etc/sudoers.d 修改用户权限
$vi
/etc/profile
$export PATH
= $PATH:[CommandPath] 添加环境变量

$ntpdate [ip] 与指定IP进行时间同步

$vi /etc/crontab 修改定时任务

5. 查找

$find [path] -type [f/l] -name [name] 在给定的dir目录中遍历查找给定文件

$xargs -d [char] -I {}

$grep -p [regax]
$which [command]  定位程序

$pwd 查看当前所在目录

$pwdx [pid] 查看指定进程的运行目录

6. 内存,磁盘与文件信息

$memstat

$free -h  内存信息

$df -hl  磁盘信息

$du -h  目录中文件信息

$ipcs -m 共享内存信息

$ipcrm -m [shmid] 删除共享内存

$file 文件信息

$nm -D 符号

$objdump [-a/-f] [.a/file] 符号

$ldd 链接信息

$readelf -d 链接信息

$md5sum [filename] 计算md5

$tail -fn [lineCnt] [filename] 查看文件内容

$htop -p [pid] 查看指定进程的详细运行状况(可以看到CPU绑定关系

$grep -rn "content" 在当前目录递归查找所有文件, 将包含content内容的文件的匹配行,文件名及行号打印出来

$grep -rl "content" 在当前目录递归查找所有文件, 将包含content内容的文件名打印出来

10. 其它常用的命令

$shutdown now  立即关机

$reboot  重启

$tree  显示当前目录结构

$ls -al

$man -s [page] [command]  帮助手册

$last 查看近期登陆信息

$alias 'xxxx' 自定义命令

$scp -r [usr]@[ip]:[src] [dest]

-ctrl a 光标移动至命令行行首

-ctrl e 光标移动至命令行行尾

11. VIM

-v visual模式
-vx 删除当前选中内容
-vd 剪切
-vp 粘贴至光标后 
-vP 粘贴至光标前

-gg 跳转至文件顶部
-G 跳转至文件底部
-yy 拷贝当前行 -yyy 拷贝当前行 + 之后3行 -o 在下一行insert -O 在上一行insert
-dd 删除当前行
-x 删除当前字符
-u 撤销

-$ 光标移动至当前行首
-^ 光标移动至当前行首非空字符
-0 光标移动至当前行尾
-A 在当前行尾插入
-L 切至当前屏幕最底行 -H 切至当前屏幕最顶行 -M 切至当前屏幕中间行 -Cww 切buffer

:[linenumber] 跳转到指定行

 12. git

$git clone [url] 下载远程代码

$git config [-global] user.name "tsing" 设置[当前项目/全局]用户名

$git config [-global] user.email "public_tsing@163.com" 设置[当前项目/全局]邮箱

$git branch -a 查看当前全部分支

$git branch -d [branch_name] 删除本地分支

$git branch -vv 查看本地分支对应关系

$git checkout [local_branch] 切本地分支

$git checkout -b [local_branch] [origin/remote_branch] 以远程分支为基础,将本地分支切至该分支

$git pull origin 以当前分支对应的远程分支为基础,更新当前分支

$git add [file] 添加要commit的文件

$git rm [file] 在分支中删除文件

$git commit 将变更提交至本地分支

$git push origin local_branch:remote_branch 以远程服务器为目标,将本地分支推送到对应的远程分支上

$git checkout . 将当前分支所有的更改丢弃

13.GDB

$gdb (-tui) [exe] 调试可执行程序(带源代码界面)

$ulimit -a

$ulimit -c unlimited 不限制core文件生成大小
$gdb [exe] [core] 调试core文件
-r 运行程序
ctrl
+ c 暂停
-c 继续运行程序
-bt 查看堆栈
-n 单步执行
-s 单步进入
-layout (src/asm/regs) 显示可视化窗口(源代码/汇编/寄存器)

ctrl + l 刷新窗口

ctrl + x; a 关闭layout

-b [location] (if [cond]) 下断点(条件断点)

-info b [n] 查看断点信息

-delete [n] 删除断点

-p [obj] 查看变量

-dir [path] 添加源代码搜索路径

-thread apply all bt 展示所有线程的堆栈信息

 14.linux常用软件

$apt install net-tools

$apt install tree

$apt install cmake

$apt install pstack

$apt install build-essential

$apt install vim

$apt install linux-tools-common

$apt install gdb

$apt install systemctl

$apt install tcpdump

 

posted @ 2020-04-14 10:31  public_tsing  阅读(254)  评论(0编辑  收藏  举报