01.课程回顾

链接

ln 1.txt aaa.txt  硬链接

(两个相互独立 删除一个另外一个还在)

ln -s 1.txt aaa.txt软连接 (后面的是快捷方式)

硬链接只能是文件,软连接可以是文件夹

grep aaa 1.txt

tar -cvzf xxx.tar.gz *

tar -xvzf xxx.tar.gz

tar -cvjf xxx.tar.bz2 *

tar -xvjf xxx.tar.bz2 -C ./

为了兼容windows的zip:

zip -r aaa *

unzip -d ./ aaa.zip

*硬链接与软链接的区别

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接

02常用命令 whoami、exit、su

查看当前谁在用:whoami

查看登陆记录:who

查看登陆记录:w: w显示的信息更详细一点

退出登录:exit

sudo命令的作用:

切换用户 sudo su root

sudo su

sudo su -

加 – 就会去到你用户所在目录

03 groupadd、groupdel、usermod(了解)

创建一个用户(系统默认创建一个用户组,这个用户组的名字和用户的名字是一样的)

查看用户组信息: cat /etc/group,看用户组名,用户组id  就好比QQ群

groupadd abc

sudo groupadd abc

sudo groupdel abc

修改用户所在组:usermod

查看用户信息: cat /etc/passwd  (←这个不是查看密码 是查看用户信息)

问题来了…1000这个号是哪个组呢?

04 删除用户组补充

组里没有人才能删,所以如果想删除应该先把用户换个组

05 useradd、passwd、userdel_rec

添加用户:

useradd -d(指定主目录) /home/abc  abc -m(如果abc不存在自动创建)

useradd -d(指定主目录) /home/abc  abc -m -g mike

sudo userdel hello (目录没有删除掉)

sudo userdel abc -r (连同目录一起删除)

sudo password abc

06 chmod(非常重要)

sudo last

有两种方式:一种是好理解,但是麻烦

一种是不好理解,但是简单

一、字母法:

ll 先查看一下:

chmod g+x 1.c

chmod g-x 1.c (在group组里面减去x(可执行))

第二种方式:

chmod o=rwx 1.c

二、数字法:

rwx

---

000 0代表没有任何权限

r—

100 4 代表有读权限

-w-

010 2 代表有写权限

--w

001 1 代表有执行权限

rw-

110 6 代表有读写权限

这种方法…

600 分别代表 用户 用户组 和 其他

6代表4+2

chmod 600 1.c

chmod 124 1.c第一个只有可执行 第二只有写 第三个只有读

******

chmod 777 1.c

******

文件夹权限说明:

chmod u-x ./abc

x:没有此权限,不允许用户进入

r:没有这个权限,无法查看文件夹的内容

w:没有这个权限,无法新建(就算 vi 1.c了也没法往里写东西)或删除文件

07_常用命令:chown、chgrp

sudo chown aaa 1.c (change own 改变文件所有者)

sudo chgrp root 1.c

08_常用命令:ps、top、kill_rec

查看日期

cal      (calender)

cal -y

date

ps

ps -aux

显示其他用户启动的进程(a)

查看系统中属于自己的进程(x)

启动这个进程的用户和它启动的时间(u)

-9 强力杀进程

top命令

区别于 ps -aux动态的显示

9.复习上面的内容..

10_常用命令:&、jobs、fg

举例:

直接运行hello是在前台运行

./hello & 加上这个取地址号以后就在后台运行着了

PID:4318在后台运行着

怎么让一个在运行着的程序切换到后台?

Ctrl + Z

jobs查看后台运行的进程

fg 3 把第三个调用到前台

fg 2

11_常用命令:字符图形切换、df、du

reboot   立即重启

shutdown -r now  给用户提示,重启

检测目录所占磁盘空间:du

du是查看某个目录的大小

df是检测磁盘的空间

如果是在ubuntu平台,软件的安装而可以通过互联网在线安装,更加方便快捷:

sudo apt-get update

sudo apt-get install xxx

sudo apt-get remove xxx

12_常用命令:ifconfig、ping

ifconfig 相当于Windows下的ipconfig

ping

13_课堂答疑:ping作用

ping代表我去你的路上是通的 但是你去我的路上不一定是通的

14_vi最基本的操作

  1. gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序。
  2. vim 是 vi的升级版本 敲vi和vim都一样的 都是调用的vim

退出保存的方式, 按一下ESC 然后两个大写的Z (可以按两次shift+z)

15_vi的插入模式和退出

:q! 代表退出不保存

:wq 保存退出

vi hello.c +5 打开并且在第五行

几个命令:

a  光标插入

I  在当前位置插入

o  光标位置下方开启新行

O 光标位置上方开启新行

I 光标所在行首插入文字

A 光标所在行尾插入文字

:wq 保存退出

:w 保存退出

:w 另存为

16_vi的配置 (这个可能需要重新看一下)

F9: 侧栏

\p< 头文件

\im 生成一个main函数

\ip 生成一个printf

ctrl+n 显示历史写的代码

1、 安装vim

sudo apt-get install vim

2、 安装ctags

sudo apt-get install ctags

3、 配置vim

1)     把文件夹<vim_configure>拷贝到虚拟机任意目录

2)     进入此文件夹,sudo运行copu_con.sh脚本

cd vim_configure

./copy_con.sh

拷贝成功后,出现copy successful

(如提示没有权限:请使用:chmod u+x copu+con.sh增加执行权限

17_vi其它常用命令

set指令 设置行号:

18_windows和linux相互远程操作

19_linux相互远程操作

windows远程登陆linux需要借助软件 xshell

1)     远程登录前 需要测试一下网络是否ping通

2)     使用软件连接

linux互相连

ssh -l username hostip

20_web服务器的搭建

20_web服务器的搭建

21_网页版helloworld 

后缀名一定是.cgi

C语言基础 (2) linux命令的更多相关文章

  1. C语言编程实现Linux命令——who

    C语言编程实现Linux命令--who 实践分析过程 who命令是查询当前登录的每个用户,它的输出包括用户名.终端类型.登录日期及远程主机,在Linux系统中输入who命令输出如下: 我们先man一下 ...

  2. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  3. Linux基础-1.Linux命令及获取帮助

    1.Linux命令的格式 1)了解Linux命令的语法格式: 命令 [选项] [参数] 2)掌握命令格式中命令.选项.参数的具体的含义 a)命令:告诉Linux(UNIX)操作系统做(执行)什么 b) ...

  4. 基础的linux命令(一)

    我练习使用的 Linux 系统是 CentOS 7 它是通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统. 首先你需要一台Linux虚拟机,如果没有,也没关系,点这里 一.命令格 ...

  5. 【Linux基础】Linux命令date 日期时间

    1.显示到纳秒 date +%F.%H:%M:%S.%N --:38.740127086 date +%Y-%m-%d.%H:%M:%S.%N2019-04-25.00:28:24.060756673 ...

  6. 林克的小本本之——记一些基础的linux命令

    查看shell cat /etc/shells 查看系统支持的shell echo $SHELL 查看目前正在使用的shell 快捷键 Ctrl+a 跳到行首 Ctrl+e 跳到行尾 Ctrl+u 删 ...

  7. 基础的Linux命令(二)

    本文介绍两大类命令,都是最基础的部分 系统状态监测命令 工作目录切换命令 一.系统状态监测命令 1. ifconfig 命令 用于获取网卡配置与网络状态等信息 如下图:inet后面是 IP 地址,et ...

  8. oracle-SQL语言基础-事务控制命令命令

    事务控制命令命令 COMMITROLLBACKSAVEPOINTSET TRANSACTION 当第一条可执行的SQL语句开始执行,数据库事务就开始.随着下面任一事件发生,数据库事务结束:执行COMM ...

  9. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

随机推荐

  1. php基础-----常量const和define的区别

    1.常量是一个简单的标识符,在脚本运行期间,值不可改变,默认大小写敏感. 答:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比def ...

  2. 哪里获取ZBrush简体中文版?

    ZBrush®精简版(ZBrush简体中文版)ZBrushCore发布已经有一段日子了,相信不少人早已迫不及待地开始尝试了,不知道你们的体验如何?毋庸置疑的是,ZBrushCore专为刚接触3D并希望 ...

  3. mysql定时清理binlog

    一.没有主从同步的情况下清理日志 mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY) ...

  4. 凸多边形 HRBUST - 1429 计算几何_凸包_未调完

    任选一个点作为起始点,将其他点按与该点连线的极角排序,二分查询点在哪两个射线之间, 并特别判断一下边界即可. Code: #include <cstdio> #include <al ...

  5. (4)pyspark---dataframe清理

    1.交叉表(crosstab): pandas中也有,常和pivot_table比较. 查看家庭ID与评分的交叉表: 2.处理缺失值:fillna withColumn:新增一列数据 cast : 用 ...

  6. C语言基本语法——结构体、联合和枚举

    一.结构体 1.什么是结构体 2.结构体语法格式 3.结构体所占内存空间 4.结构体成员赋值 二.联合 1.什么是联合 2.联合语法格式 三.枚举 1.什么是枚举 2.枚举语法格式 一.结构体 1.什 ...

  7. C语言基本语法——数组

    一.一维数组 1.什么是数组 2.数组语法 3.下标 4.初始化 5.数组名和数组首地址 二.一维数组的应用 1.数组的赋值与拷贝 2.数组的正反遍历 3.随机数 4.数组乱序 5.数组的重复 三.二 ...

  8. H5知识点

    一.总体变化 1.H5文档结构 <!DOCTYPE html> <html> <head> <title>  这是标题  </title> ...

  9. DML语句(添加、更新和删除记录)

       a.添加记录(一次插入一行记录)     insert into 表名(字段名,字段名...)     values (字段值,字段值...)       insert into person ...

  10. maven打包可运行的jar包(包含依赖工程)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...