Linux常用命令
一、目录管理
1、--- ls 查看目录下文件
eg: ls -a 查看全部目录,包含隐藏目录
eg: ls -l 查看当前目录详细列表
eg: ls -lt 查看当前目录详细列表,按照时间顺序排序,最近修改的文件在前面
2、--- cd 切换目录
eg:cd .. 切换到上级目录,linux 中的一个点表示当前路径,两个点表示当前路径的上级路径;
eg:cd ~ 切换到主目录
eg:cd /user/dd/ 切换到某个绝对路径,*linux中以 / 开头的路径表示绝对路径*
eg:cd dat/pc/ 切换到当前路径下某个相对路径,linux中不以 / 开头的表示相对路径
3、--- pwd 当前工作目录
eg:pwd 查看当前工作目录完整路径
4、--- mkdir 建立文件夹
eg:mkdir doc 建立文件夹
5、--- rmdir 删除文件夹
若删除非空文件夹,需要使用 rm -rf doc
二、文件操作
1、--- cp 复制文件
eg: cp xx.doc /folder/ddd.doc 复制文件xx.doc 到 /folder/ddd.doc
2、--- mv 移动文件
eg:mv xxx.doc folder/ddd.doc 将文件移动到新目录并更改文件名
3、--- rm 删除文件
eg: rm -rf folder 删除folder中全部文件
4、--- echo 打印内容 ,可以写入或追加文件
eg: echo "hello world " > tt.txt 将一行字符串写入到文件
eg: echo "hello hi" >> tt.txt 将一行字符串追加到文件
5、--- du 查看文件大小
eg: du -sh folder 查看folder 目录全部文件大小 -s 表求和, -h表human
6、---wc 统计文件行数、单词数、字节数
eg: wc -lwc xxx.txt 统计文件行数、单词数、字节数
7、--- chmod 修改文件或目录权限
eg: chmod 777 tt.txt 让全部用户有读、写、执行的权限
8、--- cat 拼接文件
eg: cat aa.txt bb.txt > cc.txt 拼接两个文件aa 和bb 中的内容并写入到cc
9、--- find 查找文件位置
eg:find ~ -name abc.txt 在主目录下查找名为abc.txt文件路径
10、--- head(tail) 查看文件前(后)n行
eg:head -n 100 xx.txt 查看xx.txt文件前100行
eg:tail -n 100 -f bb.doc 查看bb.doc后100行 ,并动态刷新
11、--- cut 截取文件某些列
--- 可指定分割方式 -d 自定义分割方式
-b 按字节分割
-c 按字符分割
-f 指定取第几列
eg: cut -d " " -f 2 dd.txt 对文件dd.txt按空格分割,取第2列
12、---sort 文本排序
eg: sort -t'-' -k 2 -n dd.txt 指定分隔符为“-” ,按照第二轮排序,按数字大小排序
13、--- grep 文本搜索工具
--- global search regular expression and print out the line 全面搜索正则表达式并把行打印出来
eg: grep -ir "abs" ./ 在当前路径下递归查找具有“abc” 字符串的文件,忽略“abc”大小写
eg: cat dd.doc | grep "abs" 输出dd.doc 中含有"abs"字符串的行
14、--- sed 文本编辑工具
eg:sed -i '1d' dd.doc 删除文件中的第1行
eg:sed -n '50,100p' dd.doc > dd1.doc 截取文件第50-100行
eg: cat dd.doc | sed 's/ /\t/g' > dd1.doc 将文件中的空格替换为\t
15、--- awk 文本分析工具
eg: cat dd.doc | awk -F't' '{print NF}' 查看文件每行有多少列,以'\t'分割
eg: cat dd.doc | awk -F'\t' '{print 1 ,2}' 获取文件第一和第二列,以'\t'分割
eg: cat dd.doc | awk -F'\t' '{print $NF}' 获取文件最后一列, 以 '\t' 分割
三、文件压缩
1、--- zip压缩
eg:zip -r ./dd.zip 压缩当前文件夹成dd.zip
eg: unzip dd.zip 解压
eg:zip -r -P password youzipfilename.zip yousourcediledir 压缩加密码
2、--- tar 压缩
eg:tar -czf dd.tar.gz dd/ 压缩文件夹
eg:tar -xzvf dd.tar.gz 解压
四、文件传输
1、scp 跨机器拷贝
eg:scp user@10.12.16.65:/home/user/dd.txt dd.txt 从其他机器copy到当前机器
eg:scp dd.txt user@10.12.16.65:/home/user/dd.txt 从当前机器copy到其他机器
2、--- nc 网络通信工具
eg:nc -l 2222 > file 在240机器上操作
nc 10.11.4.240 2222 < fie 在43机器上操作
eg:nc -l 9995 | tar xfvz -
tar czf - | nc ip 9995 传输当前目录
3、 --- rz /sz 与本地机器互传文件
rz 接收文件(receive zmodem)
sz 发送文件到windows上(send zmodem)
五、进程管理
1、--- ps 查看进程信息 process status
eg:ps -u ali 查看当前ali用户全部进行信息
eg:ps -alf | grep python 查看当前所有和python有关的进程
2、--- kill 杀死进程
eg:kill -9 1122 杀死进程号为1122的进程
eg:kill -9 $(ps -ef | grep ali) 杀死某个用户的所有进程
eg:ps -ef | grep ali03 | grep -v ;grep' | awk '{print $2}' |xargs kill -9 杀死某个用户所有进程
ps -ef 打印出正在运行的进程信息;
grep ali 查找进程信息带有ali03关键字的进程
grep -v'grep' 去掉grep自身进程的信息
awk'{print$2}' 取得进程号
xargs kill -9 杀死进程
3、--- top 查看进程占用资源情况
eg:top 循环滚动显示当前活跃的进程占用资源情况 , ctrl + c 退出
4、--- & 后台执行符合
eg:python tt.py & 在一个新进程中执行脚本
5、--- nohup 不挂断执行命令
nohup放在命令开始表示即使用户退出登录,这个命令依旧继续执行不挂断
eg:nohup python t.py & 在后台不挂断执行命令,日志输出写入nohup.out文件,可用 tail -f nohup.out 监视日志
六、资源管理
1、--- df 查看磁盘使用情况
eg:df -m -h 查看系统磁盘使用情况
2、--- free 查看cpu使用情况
eg:free -m -h
3、--- ifconfig 查看机器ip
4、--- nvidia -smi 查看GPU使用情况
5、--- uname 查看操作系统信息
eg:uname -a 查看全部系统信息
七、linux管道和输入输出流
1、--- | 管道连接符
|可以连接两个命令,将前一个命令的输出作为后一个命令的输入
eg:ls | grep ".md" 找到当前目录下名字中包含“.md”字符的文件
eg:cat input.txt | python mapper.py |sort -t 1| python reducer.py >output.txt #用Linux管道模拟测试mapreduce程序
2、--- <和>和>>符号 输入和输出流重定向
利用<符号可以将文件内容作为命令的输入,利用>和>>可以将输出流不打印到屏幕而是写入或追加到文件中
eg:python test.py <input.txt 1>output.txt 2>error.txt # input.txt作为test.py的输入,标准输出到output,错误输出到error
3、--- tee 读取标准输入并保存成文件
eg:ls | tee output..txt #获取标准输入流,结果打印到屏幕并输出到output.txt文件中
vim 用法
eg: vim helloworld.py 创建/打开文件
eg:按i/a 进入编辑模式
eg:按Esc退出编辑模式,进入命令模式
eg:输入 :wq 保存退出
eg:输入 :q! 强制退出 不保存
eg:输入:set number 显示行号,可以新建 ~/.vimrc 写入该命令永久有效
eg:输入:/re 查找匹配 re的字符串高亮显示,再输入:noh取消高亮, 输入/再按Enter查找下一处匹配
eg:输入:vsp xxx.py 横向视窗分割(visual split)并打开 xxx.py文件, Ctrl+W在不同窗口间切换
eg:vimdiff aa.txt bb.txt 逐行比较两个文件
eg: 按Esc+g回到第一行,按Esc+Shift+g跳转到最后一行
eg:按shift+4移动到行尾,shift+6移动到行首
eg:多行注释方法, Ctrl + V 进入Block Visualization, 上下键选中多行,输入大写I,输入#,然后按两下Esc
eg:多行删除方法, Shift +V 进入 Line Visualization, 上下键选中多行,然后按Delete键删除
linux 配置
---- source 依次执行文件中命令, 可用 . 代替
eg:source .bashrc #使得.bashrc中的修改立即生效
(1),/etc/profile用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。
(2),/etc/bashrc这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。
(3),~/.bash_profile用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.
(4),~/.bashrc作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效。另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.
(5),/etc/hosts 域名配置文件
注:~/.bash_profile 是交互式、login 方式进入 bash 运行的,意思是只有用户登录时才会生效。~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件