Linux命令
基本命令
文件夹创建与删除
- mkdir 创建文件夹
- mkdir a/b/c -p递归创建多层文件夹(必须加参数p)
- rmdir 删除空文件夹
- rm -r 删除文件夹
- rm -f 删除文件夹(没有提示,强制删除)
rm -i 删除文件夹(有提示)
- mv name1 name2 更改文件夹名称
- tar -zxvf /.../...gz 解压gz文件到当前目录(文件路径含空格要用单引号引起来,或者在空格前使用转义字符\)
history 查看历史命令
- file 查看文件类型
- ctrl+shift+t 打开(新建)一个终端
- alt+数字在终端间切换
- 复制文件后,可按快捷键鼠标滚轮粘贴
- tar只做打包和解包,不做压缩
tar -czvf 压缩包名字(....tar.gz) 需要压缩的文件 压缩+打包(参数c调用create创建压缩包、z调用gzip工具进行压缩、v显示进度、f文件,该参数放最后,前面三个参数顺序任意)
- tar -xzvf 压缩包名字(没有指定路径时,默认解压到当前路径)
tar -xzvf 压缩包名字 -C 目录名字 解压到指定目录
tar -cjvf 操作(....tar.bz2)文件
sudo passwd 修改当前用户密码
vi命令:
a(光标后插入) i(当前位置插入) o(当前行下开启一行插入)都可进入编辑状态 A当行尾进行插入 I行首插入 shift+o在上面插入一行 :set nu开启左边行号 :set nonu 关闭左边行号 :set list显示制表符、换行符 :set nolist关闭制表符、换行符显示cd ~切换到当前用户的主目录
cd -切换回上一个目录linux优势:多用户管理\网络处理方面\免费
Linux目录: /bin目录:命令,工具; /etc目录:配置文件; /lib目录:库; /sbin目录:管理员命令; /home目录:用户目录; /home/用户:用户主目录; /usr/include:头文件; /dev设备文件Linux文件分类:
-开头为普通文件; L开头为link文件; d开头为目录文件; c开头代表设备字符文件; b开头代表设备文件;Linux文件权限:
用户分类:文件所有者(文件创建者)\用户组(类似QQ群)\其他命令:
保留命令界面,因为命令更快. 格式:命令+空格+[-参数] linux中,点开头的文件是隐藏文件;ls --help打开帮助;
man ls打开man手册; 有重名时需要指定章节: man 3 printf指定查询第三章中printf手册;ls命令:
-l list列表方式显示 -a all所有 -h 人性化显示(要和l配合)ls 可以和通配符搭配:
例如:ls te* 显示以te开头的文件l====>ls等同
ll===>ls -l等同ls+路径,可查看其他路径(没有路径时默认当前路径)
ls可以和通配符配合显示符合要求的文件
mkdir cmd 新建一个名叫cmd的目录 touch 如果文件不存在,就新建,如果存在,则把文件改变为当前时间.可以修改时间戳 使用通配符当普通字符时,用\进行转义.重定向:
# > 覆盖内容ls -l > test.txt #将输出保存到test.txt# >> 追加内容date >> time.txt #将当前时间追加到time.txt中
cat 文件 显示文本文件(一次性全显示)
more命令(分页)显示文本内容 也可以用vi分页查看文本内容借助管道来过滤搜索:
ls /bin/ | grep ls 取命令中含ls的命令 ls /usr/lib/ | grep stdio.h 取库函数中含stdio.h的管道:一端的输出(写)作为另外一端的输入(读)
ls /bin/ -l | more
分页显示bin目录下命令清屏:
ctrl+l或clearcd什么都不加,会自动去到用户目录(等价于cd ~)
cd -切换到上一次路径tree命令显示目录树结构
tree 目录 -L 2 显示目录树2层ln 源文件 链接文件 硬链接创建(只能普通文件可以,文件夹不可以)主要用作备份文件,不占内存.
ln -s 源文件 链接文件 软连接创建硬链接主要作用
1\备份文件,防止误删. 2\硬链接作用给同一个文件起N个名字,实际只有一份文件存在硬盘 3\除非把所有文件删除,否则,文件一直存在1\软链接:解决在默认库找不到库文件的问题
2\软链接跨目录源文件需要绝对路径,否则软链接只会在当前目录查找 3\源文件删除,则软链接没有意义小技巧:
ctrl+alt+t 新建终端 ctrl+shift+t以标签样式新建终端 alt+数字 切换终端 ctrl+shift+"加号"终端字体变大 ctrl+"减号"终端字体变小 滚轮中键按下粘贴拷贝:
cp -r 拷贝文件夹 cp -v 显示进度 mv 同级目录相当于改名file 查看文件类型
file /etc/groupwhich+命令 查看命令所在目录
tar只负责打包和解包,要和压缩命令配合使用进行压缩
gzip\bzip2只负责压缩.tar.gz格式:需要tar和gzip配合使用
压缩: tar -cvzf xxx.tar.gz 需要压缩的文件(f一定要放后面,c(创建)v(进度)z(指定调用gzip工具压缩)顺序随意)解压:
tar -xzvf xxx.tar.gz 解压到当前目录(z可省略) tar -zxvf xxx.tar.gz -C 目录 解压到指定目录,需要加-C压缩(bz2压缩率更高):
tar -cvjf xxx.tar.bz2 需要压缩的文件(f一定要放后面,c(创建)v(进度)j(指定调用bzip2工具压缩)顺序随意) tar -xjvf xxx.tar.bz2 解压到当前目录(j可省略) tar -jxvf xxx.tar.bz2 -C 目录 解压到指定目录,需要加-Cdu -h 查看所有文件(含文件夹)大小
du -sh xxx 查看xxx文件夹总大小 du -sh 查看当前目录总大小压缩(zip)不能用于压缩软链接,否则软链接变成硬链接了.
zip -r xxx(.zip) 需要压缩的文件 zip -r dYSM.zip $(ls | grep .dYSM) 将当期目录下dYSM文件打成压缩包dYSM.zip unzip xxx.zip -d 目录 解压到指定目录 -n 解压缩时不要覆盖原有的文件. -o 不必先询问用户, unzip执行后覆盖原有文件.whoami显示当前登录用户
exit退出当前用户,回到上一个用户 sudo让当前用户提升为管理员,输入的密码为当前用户的密码 su root 以管理员方式,切换到管理员,这里要输入管理员密码 sudo passwd root 给管理员root改密码,输入当前用户密码 sudo su root切换到管理员 sudo su edu 切换到edu 切换到管理员 sudo su sudo su -(加-会切换到用户主目录) sudo su root sudo su - root查看用户\用户组(用户名和用户组名字,不要以纯数字起名)
cat /etc/passwd 查看用户信息edu:x:1000:1000:edu,,,:/home/edu:/bin/bash用户名 前面一个数字是用户ID,第二个数字是用户组ID cat /etc/group 查看用户组edu:x:1000:用户组的名字 数字表示用户组ID
添加和删除用户组
sudo groupdel abc 删除abc用户组 sudo groupadd abc 添加abc用户组 sudo usermod -g abc edu 更改edu到abc组 如果用户组已经包含成员,不能删除新建用户:
1\一个用户有一个主目录 2\默认新建用户,如果不指定组,自动新建一个用户组,名字和用户名字一样 sudo useradd mike -d /home/mike -m创建一个用户mike指定主目录为/home/mike(-m指主目录不存在时则创建主目录) 删除用户: 用户删除时,随该用户创建的组也会删除 sudo userdel mike -r(-r指同时删除用户主目录) sudo useradd mike -d /home/mike -m -g edu (-g指定mike所属的组为edu)新建用户是无管理员权限的
last:查询用户登录情况chmod u-w 1.c
chmod u+w 1.c chmod g-w 1.c chmod u-r,g-rw,o-x 1.cchmod 777 abc/ -R(-R表示子文件一起变权限)
对于文件夹:
x:没有则不能进入 w:没有则不能在内部新建文件 r:没有则不能在文件夹内部查看文件信息sudo chown mike 1.txt
将1.txt所有者改为mike sudo chgrp root 1.txt 将1.txt所属的组改为root查看进程状态:
程序:放在硬盘上的文件 进程:程序运行的状态 ps -aux(-可以省略) 显示详细的进程信息 ps -aux | grep subl 显示含subl的进程 kill+pid 结束该pid的进程kill其他用户的进程,可能需要加sudo
sudo kill -9 4417(-9表示强制结束) 强制结束4417进程kill -l查看kill信号信息
top动态显示进程 按大写P则按CPU占用排序 按大写M则按内存占用排序 按Q退出ctrl+z让前台进程转到后台休眠
jobs查看后台休眠进程 fg+数字,将后台休眠进程调到前台 fg将后台进程调到前台运行(最近休眠的那个进程)./demo &自动在后台运行(无法使用ctrl+c结束)
alt+ctrl+F2/F7切换字符界面/图形界面
Linux使用公共账号或公共目录创建多用户进行远程Linux编程.
开远程需要先安装SSH服务器 windows远程连接Linux需要专门的软件 Linux和Unix自带远程连接 Linux远程连接命令: ssh -l edu ip Linux烤文件三种方式: ftp scp samba(最好用)sudo ./myhttp start启动myhttp
sudo ./myhttp stop 结束程序:vsp 文件
分屏显示编译过程:
a).预处理:头文件展开,屏蔽注释,宏定义替换,条件编译;不做语法检查;gcc -E hello.c -o hello.ib).编译:将上一步翻译后的文件,进一步进行翻译,进行语法检查,编译成汇编代码;(计算需分配的内存空间)
c).汇编:将汇编代码生成目标文件,但还不能执行
d).链接:链接动态库和静态库ldd 可执行文件,查看可执行文件的库(Linux)
depend可用该软件查看windows文件依赖的库IDE,集成开发环境
Qt Creator VS 三大功能: 1).编辑器功能 2).做图形界面开发,GUI VS,MFC框架(MFC是C++写的),在这个框架上可快速写界面. Qt的框架就叫Qt(也是C++写的) 3).终端运行功能查看Linux代码工具sublime
source insight(windows看代码神器)关闭防火墙
su - root --切换到rootiptables -F --关闭防火墙chkconfig iptables off -- 设置开机不启动防火墙setenforce 0 -- 关闭安全Linux
Linux其他技巧
- ipcs -m 查看共享内存, key值编号0x0000的是系统核心的共享内存, 无法删除.
- shell脚本a=1不能加空格, 否则会将a当命令, =和1当参数.