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
posted @ 2018-12-09 14:59  技术不支持  阅读(422)  评论(0编辑  收藏  举报