linux 基本操作命令(一切皆文件)
一、对目录进行的操作命令(目录大小一般都是4096)
命令的使用格式:
命令名 [选项] [源操作对象] [目标操作对象]
ls----列出目录下的内容(默认是当前目录)
ls-a查看所有文件(包含隐藏文件)(linux下以.开头的文件是隐藏文件,默认不显示)
. 代表当前目录
.. 代表当前目录的上一层目录
ls -l查看当前目录下文件的详细信息
-普通文件 d目录文件 $链接数(目录项个数)
ls -t(-lt) 按时间进行排序
ls -r(-lr) 对当前的排序进行逆序
ll-S按文件大小排序
ll -t按时间排序
第一组rwx表示文件拥有者对文件的权限
第二组rwx表示文件拥有者同组用户对文件的权限
第三组rwx表示其他用户对文件的权限
chmod修改一个文件/目录的权限
chomd -r减去读权限(针对三种用户)
chomd u-r去掉文件拥有者的读权限(不能cat)
chomd g-r去掉同组用户的读权限
chomd o-r去掉其他用户的读权限
chomd 777 用八进制表示权限
对于文件来说,读权限意味着能查看文件内容
写权限意味着能修改文件内容
执行权限 一个文件能否执行的必要条件,不是充分条件
文件需要同时具备可执行权限,并且文件格式满足系统的可执行要求才能执行
对目录来说,读权限意味着能查看目录中包含哪些内容
写权限意味着能给目录中新增或删除内容
执行权限意味着能否cd到当前目录中
whereis能帮我们找到某个指令对应的可执行程序的位置
man查看命令手册,q退出
man fopen查看
man 2 read查看
man -a read 查看
(linux每个用户登录成功后默认的当前所在目录是在自己的家目录)
pwd----显示当前所在绝对路径
mkdir 创建目录
mkdir tmp(创建tmp)
mkdir ./tmp/abc(创建abc,前提是tmp存在)
mkdir -p 从上往下递归创建目录
rmdir删除空目录,不为空删除不了
rmdir -p 递归删除(从最内层往外删除 空目录)
rm----默认删除普通文件
rm -r 进入目录删除目录,提示信息(y ,n)
rm -rf忽略提示信息,直接删除(是否删除?)
cd----修改当前所在路径,进入其他目录。
cd ~ 回到当前用户家目录
cd - 上一次所在路径
mv----剪切 移动文件到指定位置
mv text workspace/(把text移动到workspace中)
mv workspace/text/ ./tmp (把移动过去的text改名称为tmp)
mv -i 若目标文件已经存在,询问是否覆盖
mv -f 忽略提示信息,直接覆盖
mv ./work ./text 把work改为text(前提是text不存在,若text存在,则将work复制到text中)
cp----拷贝(无法直接命令)
cp -r(递归拷贝)拷贝所有内容
linux下的目录结构:
linux下的目录结构是一个树型结构
交换分区 (挂载)
/ 根目录
/home /etc (配置文件) /dev /proc /mnt
/home/rong/
绝对路径:/home/rong/aaa.txt 起始查找路径是根目录(以根目录为起始路径)
相对路径:../rong/aaa.txt 起始查找路径是当前目录(以当前路径为起始路径)
二、 对文件进行的操作命令
touch----可以创建一个不存在的文件,若文件已经存在,不创建,刷新文件的时间属性。
touch aa.txt
touch -t(-d) 指定时间日期来刷新文件时间
touch -d "2018-06-10 00:00:00" aa.txt
touch -r bb.txt aa.txt 以bb.txt 来刷新aa.txt的时间
cat----打印一个文件中的内容到终端显示器上
cat -n 打印某一行
tac----倒序打印文件中的内容(按行逆序)
more----分页显示文件中的内容
按空格显示下一页
按 b 向上翻页
less----分页显示,检索,将匹配的字符高亮显示。
找完后按 n,继续向下检索。不会循环匹配。
string 继续向上检索
/string 继续向下检索
q 退出
head----默认打印一个文件的前十行
head -n(-n2或者-2) 打印前n行
tail----默认打印文件的最后十行
tail -f 动态刷新(循环打印文件最后一行内容 ) contrl + c 退出
echo 向界面打印字符串
echo “askjjop” >>aa.txt 将字符串写入aa.txt
三、对文件的压缩相关命令
zip----压缩
zip text.zip aa.txt bb.txt(小文件压缩后内存变大,大文件变小)zip后紧跟压缩包名称,再加要压缩的文件
unzip----解压 unzip text.zip
gzip----直接压缩,后不用跟压缩包名称,自动生成(.gz格式)不能用unzip解压
gunzip----解压
bzip2----压缩,比zip压缩的更小(自己添加名称)
bunzip2----解压
zip cmd.zip cmd/可以压缩目录
gzip cmd 不能压缩目录
bzip2 cmd 不能压缩目录
tar-----打包
tar -c 对一个文件或目录进行打包操作
tar -v 显示打包的详细信息
tar -f 必须放最后(因为后必须跟压缩包名称)
tar -cvz (tar -cvzf cmd.tar.gz cmd) 进行gz格式压缩(打包并压缩)
tar -x----解包 (tar -xvzf cmd.tar.gz 解包解压)
tar -cvjf----打包的同时以bzip2格式进行压缩
tar -xvjf----解压
四、 匹配查找命令
grep----匹配命令(字符串在前,文件在后),只显示含搜索的字符串的一行(在文件内容中匹配包含指定字符串的一行)
grep -i忽略大小写进入匹配
grep -v反向匹配,不含查找的字符串的一行
grep "O\{2,\}" 包含两个O或多个O的一行
grep -R (跟指定目录)递归在指定目录下的所有文件中进行匹配
find----找文件
find -name 以文件名来查找
find ./ -name "hellow.txt"(一定指定在哪个目录)
find ./ -name "hellow*"(模糊查找)
find -time 以时间来查找
find ./ -mmin -40找40分钟以内的文件(mmin修改时间,amin最后一次状态访问时间,cmin最后一次状态修改时间)
find ./ -mmin +40分钟以前的文件
min指分钟,time指天数 find ./ -mtime -1指一天以内的文件
find -size 以大小来找文件(默认是字节)
find ./ -size -40M(+40M) 找40M以内(外)的文件
find -type 按文件类型查找
标准输入(键盘) 标准输出(显示器) 标准错误(显示器)
五、其他操作命令
data----显示当前系统时间
data +%s----时间格式 显示时间戳(1970-01-01 00:00:00到现在经历的秒数)
data +"%F"(“%Y-%m-%d”)(年-月-日格式)(或直接data +"%F")
data +"%T"("%H:%M:%S") 时:分:秒
data -s 修改时间(有权限问题)"2018-09-13 19:34:34"
su----切换用户(su -root)用exit退出
cal ----查看日历(当月)
cal -3只能显示三个月
cal -y全年
cal -j按当年中的第几天来显示日历
bc----计算器
echo ----打印字符串
halt-----关机命令
shutdown -h now----关机(延时)
reboot----重启
ctrl+c 让当前程序停掉
ctrl+d 输入停止
六、根目录下每个目录的分类意义:
/bin :
bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序( bin是binary - -二进制的简称),多是系统中重要的系统文件。
/etc :
etc目录存放着各种系统管理和配置文件,其中包括了用户信息文件/etc/passwd,系统初始化文件/etc/rc等。linux正是*这些文件才得以正常地运行。
/etc/rc.d :
启动的配置文件和脚本
/lib :
标准程序设计库,/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。又叫动态链接共享库,作用类似windows里的.dll文件。 这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
/lib/modules :
目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。
/mnt :
mnt目录是系统管理员临时安装( mount )文件系统的安装点。程序并不自动支持安装到/mnt 。/mnt 下面可以分为许多子目录,如/mnt/ext 可能是使用ext2文件系统的软驱,/mnt/cdrom 光驱等等。
/root :
系统管理员的主目录(特权阶级)
/usr :
最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
/boot :
/boot目录存放引导加载器(bootstrap loader)使用的文件,如lilo,核心映像也经常放在这里, 而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在ide硬盘的前1024柱面内。
/dev :
dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。 比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。
/home :
用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lost+found :
这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc :
虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/sbin :
sbin目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
/tmp :
公用的临时文件存储点, /tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用/var/tmp/来代替/tmp ,因为前者可能拥有一个更大的磁盘空间。
/var :
某些大文件的溢出区,比方说各种服务的日志文件。
七、
VS:VS是一个集成开发环境(IDE)
1、代码编辑器
2、编译器:源代码文件编程可执行程序
3、调试器
4、工程管理工具:描述代码之间的依赖关系(先编译谁后编译谁,谁编译谁不编译,怎么编译用什么编译)