Linux常用命令笔记
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)文件
-
unrar e xxx.rar #解压rar文件到当前目录
-
unrar e xxx.rar ./tmp #解压rar文件到tmp目录
-
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或clear
cd什么都不加,会自动去到用户目录(等价于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/group
which+命令 查看命令所在目录
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 目录 解压到指定目录,需要加-C
du -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.c
chmod 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检查环境变量
- 查看当前的环境变量
env
- 查看进程运行时的环境变量:
# 该命令输出的环境变量会显示到一行, 因为不同环境变量之间是以"\0"分割的.
cat /proc/$PID/environ
# 通常将"\0"替换为"\n"(假设进程pid为444)
cat /proc/444/environ | tr '\0' '\n'
添加环境变量
export PATH=/home/edu/pack_tools:$PATH
Linux烤文件三种方式:
- ftp
- scp
- samba
scp
scp localFile root@192.168.0.252:/home/root/ #将本地文件localFile拷贝到远程服务器192.168.0.252的/home/root/目录下.
- 注意点
- 当操作一样ip的两台设备时, 第二次scp操作时会提示错误, 此时要清理scp连接文件或编辑scp连接文件, 去掉已保存的ip.
vi ~/.ssh/known_hosts # 或直接rm ~/.ssh/known_hosts
sudo ./myhttp start启动myhttp
sudo ./myhttp stop 结束程序
:vsp 文件
分屏显示
编译过程:
a).预处理:头文件展开,屏蔽注释,宏定义替换,条件编译;不做语法检查;gcc -E hello.c -o hello.i
b).编译:将上一步翻译后的文件,进一步进行翻译,进行语法检查,编译成汇编代码;(计算需分配的内存空间)
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 --切换到root
iptables -F --关闭防火墙
chkconfig iptables off -- 设置开机不启动防火墙
setenforce 0 -- 关闭安全Linux
Linux其他技巧
-
ipcs -m 查看共享内存, key值编号0x0000的是系统核心的共享内存, 无法删除.
-
shell脚本a=1不能加空格, 否则会将a当命令, =和1当参数.
-
重启网卡
ifconfig eth0 down / ifconfig eth0 up
查看实时刷新的日志文件
tail -f -n 10 file_name # 查看最后10行日志
tail -f file_name # 查看日志末尾, 默认也是10行
查看实时刷新的16进制文件
hexdump file_name